Package Exports
- alexa-speechlet
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (alexa-speechlet) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Alexa Speechlet
Speech Synthesis Markup generator that makes it easy to do all the things
To install:
npm install alexa-speechlet --save
example usage
const Speechlet = require("alexa-speechlet");
let speech = new Speechlet("Hi my name is Alexa.");
let ssml = speech.sentence("I have a secret to tell you")
.whisper("I'm not a real human")
.output();
// output:
// Hi my name is Alexa.I have a secret to tell you.<amazon:effect name="whispered">I'm not a real human</amazon:effect>
Remember to call output()
You must execute the output() method on the speechlet instance in order to get the markup string. output() will not wrap the output in <speak></speak> nodes. If you are working with alexa-sdk the sdk will do that for you in the final output. If you, however, do want the output markup to be wrapped with the 'speak' nodes then you can use outputWithRootNode(),
Methods
say(text)
text| {String} - What Alexa says
Adds text to the markup without adding any additional markup. It will spit out exactly what you enter as is.
sentence(text)
text| {String} - What Alexa says
Wraps your text with <s></s> tags.
let speechlet = new Speechlet().sentence("Hi, my name is Alexa");
// outputs:
// Hi, my name is Alexa.sayAs(text, options)
text| {String} - What Alexa saysoptions| {Object}options.interpretAsadds 'interpret-as' attr to the markup. Such as<say-as interpret-as="spell-out">
Wraps your text with <say-as> tags
let ssml = new Speechlet("I can count.").pause().sayAs("12345", {interpretAs: "digits"}).output();`
// outputs:
// I can count.<break strength="strong" /><say-as interpret-as="digits">12345</say-as>We also expose convenience methods for the sayAs method for each interpretation. For instance instead of calling speechlet.sayAs("12345", {interpretAs: "digits"}); you can do speechlet.sayAsDigits("12345");.
We do this for the following interpretations:
- characters
- spell-out
- cardinal
- ordinal
- digits
- fraction
- unit
- date
- time
- telephone
- address
- interjection
Note: The convenience fn are named sayAs + the capitalized version of the interpretation with dashes removed. So the convenience fn for "spell-out" would be sayAsSpellout(text)
See here for the Alexa documentation for say-as. If I am missing anything feel free to make a PR.
sayAsDate(text, format)
text| {String} - What Alexa saysformat| {String} - The format of the date Alexa will read it as. For example "mdy". Read the Alexa docs for explanation
Convenience for sayAs(text, {interpretAs: "date", format: "mdy"}). sayAsDate accepts an extra "format" param.
let ssml = new Speechlet().sayAsDate("September 22, 2015", "mdy").output();`
// outputs:
// <say-as interpret-as="date" format="mdy">September 22, 2015</say-as>pause(time)
time| {String} - The time value you want to pause
Adds <break> markup to your text