Skip to content
Speech Markdown grammar, parser, and formatters for use with JavaScript.
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
docs
src
tests
.editorconfig Add files Jun 19, 2019
.gitignore
.npmignore
.prettierrc
.travis.yml
CHANGELOG.md
CODE-OF-CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md Add sections with lang and voice Jul 8, 2019
index.ts
jest.config.js
package-lock.json
package.json
tsconfig.json Fix #8 Jul 4, 2019
tslint.json Change to Project structure and tsconfig Jun 21, 2019

README.md

TypeScript version Node.js version MIT

speechmarkdown-js

Speech Markdown grammar, parser, and formatters for use with JavaScript.

This project is a work-in-progress. All volunteers are appreciated!

Find the architecture here

Quick start

SSML - Amazon Alexa

Convert Speech Markdown to SSML for Amazon Alexa

const smd = require('speechmarkdown-js');

const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
    platform: 'amazon-alexa'
};

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 - Google Assistant

Convert Speech Markdown to SSML for Google Assistant

const smd = require('speechmarkdown-js');

const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
    platform: 'google-assistant'
};

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-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-js');

const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
    platform: 'amazon-alexa'
};

const speech = new smd.SpeechMarkdown(options);
const ssml = speech.toSSML(markdown);

Or in the methods toSSML and toText:

const smd = require('speechmarkdown-js');

const markdown = `Sample [3s] speech [250ms] markdown`;
const options = {
    platform: 'amazon-alexa'
};

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-alexa and google-assistant.

  • includeFormatterComment (boolean) - Adds an XML comment to the SSML output indicating the formatter used. Default is false.

  • includeSpeakTag (boolean) - Determines if the <speak> tag will be rendered in the SSML output. Default is true.

  • includeParagraphTag (boolean) - Determines if the <p> tag will be rendered in the SSML output. Default is false.

Working on this project?

Grammar

The biggest place we need help right now is with the completion of the grammar and formatters.

Short Format

  • break
  • emphasis - strong
  • emphasis - moderate
  • emphasis - none
  • emphasis - reduced
  • ipa
  • sub

Standard Format

  • address
  • audio
  • break (time)
  • break (strength)
  • characters / chars
  • date
  • emphasis
  • expletive / bleep
  • fraction
  • interjection
  • ipa
  • lang
  • lang (section)
  • number
  • ordinal
  • telephone / phone
  • pitch
  • rate
  • sub
  • time
  • unit
  • voice
  • voice (section)
  • volume / vol
  • whisper

Available scripts

  • clean - remove coverage data, Jest cache and transpiled files,
  • build - transpile TypeScript to ES5,
  • build:browser - creates single file ./dist.browser/speechmarkdown.js file for use in browser,
  • build:minify - creates single file ./dist.browser/speechmarkdown.min.js file for use in browser,
  • build:watch - interactive watch mode to automatically transpile source files,
  • lint - lint source files and tests,
  • test - run tests,
  • test:watch - interactive watch mode to automatically re-run tests

License

Licensed under the MIT. See the LICENSE file for details.

You can’t perform that action at this time.