npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

alexa-speech

v0.0.3

Published

Utility to simplify generating Speech Synthesis Markup Language (SSML) for use with Amazon Alexa

Readme

alexa-speech NPM version

Utilities to simplify generating Speech Synthesis Markup Language (SSML) for Amazon Alexa interface

Installation

$ npm install --save alexa-speech

Usage

The AlexaSpeech utility contains multiple functions to make producing SSML more simple and intuitive. The base is a Speech object which contains mutliple functions. Each function returns the object itself to allow for a simple append syntax using function chains. When all of your output has been collected, the render function assembles the SSML and returns it to the caller.

var AlexaSpeech = require('alexa-speech');

var speech = new AlexaSpeech.Speech();

speech.add("Hello, my name is Jenny! ")
      .pause(1)
      .add("You can call me at ")
      .telephone('8675309');

var SSML = speech.render();

// Output: <speak>Hello, my name is Jenny! <break time="1s"/>You can call me at <say-as interpret-as="telephone">8675309</say-as></speak>

Supported SSML

The list of SSML tags and attributes this library supports is currently incomplete.

Supported Tags

  • speak
  • break: time attribute supported
  • say-as: spell-out, cardinal, ordinal, digits, fraction, date (format not yet supported), time, telephone, address attributes supported

Unsupported Tags

  • audio
  • p
  • phoneme
  • s
  • w

Commentary

This utility was grown from the desire to generate SSML using functions rather than assembling XML within code. It was homegrown for my own use and is therefore limited in this early stage in several aspects, primarily in not guaranteeing safe XML. As you know, SSML is an XML syntax which your Alexa skill returns to be interpreted by a speech-enabled device. This library is simply a collection of convenience functions to produce SSML directly from the input which you give it. Therefore, if you pass data into one of these functions which will result in invalid XML (e.g., tag terminator, invalid characters, etc.), this utility will be more than happy to produce incomplete or invalid XML. There is also no type checking in regard to the type expected by Alexa. For example, this utility is more than happy to dump "Hello World" into a SSML tag that Alexa will try to interpret as a numeral.

With a little common sense applied, however, these functions should help make writing SSML outputs a little bit more intuitive to a JavaScript author.

Enjoy!

License

MIT © chris melnick