Nighttime Possum Meandering

    speechmarkdown-js
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.0 • Public • Published

    TypeScript version Node.js version MIT

    speechmarkdown-js

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

    Supported platforms:

    • amazon-alexa
    • amazon-polly
    • amazon-polly-neural
    • google-assistant
    • microsoft-azure
    • samsung-bixby

    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"
      • "amazon-polly"
      • "amazon-polly-neural"
      • "google-assistant"
      • "microsoft-azure"
      • "samsung-bixby"
    • 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.

    • preserveEmptyLines (boolean) - keep empty lines in markdown in SSML. Default is true.

    • escapeXmlSymbols (boolean) - Currently only for amazon-alexa. Escape XML text. Default is false.

    • voices (object) - give custom names to voices and use that in your markdown:

      {
        "platform": "amazon-alexa",
        "voices": {
          "Scott": {"voice": {"name": "Brian"}},
          "Sarah": {"voice": {"name": "Kendra"}}
        }
      }
      {
        "platform": "google-assistant",
        "voices": {
              "Brian": {"voice": {"gender": "male", "variant": 1, "language": "en-US"}},
              "Sarah": {"voice": {"gender": "female", "variant": 3, "language": "en-US"}},
            }
      }

    Working on this project?

    Grammar

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

    Short Format

    • [x] break
    • [x] emphasis - strong
    • [x] emphasis - moderate
    • [x] emphasis - none
    • [x] emphasis - reduced
    • [ ] ipa
    • [ ] sub

    Standard Format

    • [x] address
    • [x] audio
    • [x] break (time)
    • [x] break (strength)
    • [x] characters / chars
    • [x] date
    • [x] defaults (section)
    • [x] disappointed
    • [x] disappointed (section)
    • [x] dj (section)
    • [x] emphasis
    • [x] excited
    • [x] excited (section)
    • [x] expletive / bleep
    • [x] fraction
    • [x] interjection
    • [x] ipa
    • [x] lang
    • [x] lang (section)
    • [x] mark
    • [x] newscaster (section)
    • [x] number
    • [x] ordinal
    • [x] telephone / phone
    • [x] pitch
    • [x] rate
    • [x] sub
    • [x] time
    • [x] unit
    • [x] voice
    • [x] voice (section)
    • [x] volume / vol
    • [x] 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.

    Keywords

    none

    Install

    npm i speechmarkdown-js

    DownloadsWeekly Downloads

    235

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    430 kB

    Total Files

    54

    Last publish

    Collaborators

    • rmtuckerphx