speechmarkdown-amzn-polly-js
v1.9.1
Published
Speech Markdown parser and formatters in TypeScript. Updated suppport for Amazon Polly
Downloads
2
Readme
speechmarkdown-amzn-polly-js
This project adds speechmarkdown support for Amazon Polly, built on top of speechmarkdown-js
Initiated the migration of polly-only features since the project seemed to be dormant in the original git repository. Pull Request
Includes XML escaping by Garcia Guillaume Pull Request
Differences
Some tags from the original speechmarkdown-js library has been disabled due to the nature of how ssml is used in amazon polly.
- Removal of voice tag Voice is specified separately in the api call. Hence this solution is only for converting speechmarkdown to ssml, and assumes that the user is sure how the generated ssml will be used with a valid voice id.
MD support
Neural Only
- [x] newscaster (section)
Standard Only
- [x] emphasis
- [x] pitch
- [x] timbre
- [x] whisper
Both Standard and Neural
- [x] address
- [x] break (time)
- [x] break (strength)
- [x] cardinal
- [x] characters / chars
- [x] date
- [x] digits
- [x] drc
- [x] expletive / bleep
- [x] fraction
- [x] ipa
- [x] lang
- [x] lang (section)
- [x] mark
- [x] number
- [x] ordinal
- [x] telephone / phone
- [x] rate
- [x] sub
- [x] time
- [x] unit
- [x] volume / vol
Unsupported
- [ ] breath
- [ ] auto-breath
- [ ] x-sampa
- [ ] phonation
Quick start
SSML - Amazon Polly
Convert Speech Markdown to SSML for Amazon Alexa
const smd = require('speechmarkdown-polly-js');
const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
platform: 'amazon-polly'
};
const speech = new smd.SpeechMarkdown();
const ssml = speech.toSSML(markdown, options);
The resulting SSML is:
<speak>
Sample <break time="3s"/> speech <break time="250ms"/> markdown
</speak>
SSML - Amazon Polly Neural
Convert Speech Markdown to SSML for Amazon Alexa
const smd = require('speechmarkdown-polly-js');
const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
platform: 'amazon-polly-neural'
};
const speech = new smd.SpeechMarkdown();
const ssml = speech.toSSML(markdown, options);
The resulting SSML is:
<speak>
Sample <break time="3s"/> speech <break time="250ms"/> markdown
</speak>
Plain Text
Convert Speech Markdown to Plain Text
const smd = require('speechmarkdown-polly-js');
const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {};
const speech = new smd.SpeechMarkdown();
const text = speech.toText(markdown, options);
The resulting text is:
Sample speech markdown
More
Options
You can pass options
into the constructor:
const smd = require('speechmarkdown-polly-js');
const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
platform: 'amazon-polly'
};
const speech = new smd.SpeechMarkdown(options);
const ssml = speech.toSSML(markdown);
Or in the methods toSSML
and toText
:
const smd = require('speechmarkdown-polly-js');
const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
platform: 'amazon-polly'
};
const speech = new smd.SpeechMarkdown();
const ssml = speech.toSSML(markdown, options);
Available options are:
platform
(string) - Determines the formatter to use to render SSML. Valid values are:amazon-polly
andamazon-polly-neural
.includeFormatterComment
(boolean) - Adds an XML comment to the SSML output indicating the formatter used. Default isfalse
.includeSpeakTag
(boolean) - Determines if the<speak>
tag will be rendered in the SSML output. Default istrue
.includeParagraphTag
(boolean) - Determines if the<p>
tag will be rendered in the SSML output. Default isfalse
.
License
Licensed under the MIT. See the LICENSE file for details.