Socket
Socket
Sign inDemoInstall

tts-narrator

Package Overview
Dependencies
15
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

tts-narrator

Generate narration with Text-To-Speech technology


Version published
Maintainers
1
Weekly downloads
17
increased by70%

Weekly downloads

Readme

Source

tts-narrator

Generate narration with Text-To-Speech technology

Version Downloads/week CI

The input is a script file in YAML format. Example script files can be found under test/fixtures.

The script file is structured in this way:

  • settings: script settings
    • voice: voice settings at script level
  • chapters: array of chapter
    • each chapter can contain settings and multiple sections:
      • settings: chapter level voice settings that can override script level voice settings
      • sections: array of sections
        • each section can contain settings and multiple paragraphs:
          • settings: section level voice settings that can override upper level voice settings
          • paragraphs: array of paragraphs
            • each paragraph can contain settings and text:
              • settings: paragraph level voice settings that can override upper level voice settings
              • text: text content that needs to be converted into audio

The text field of a paragraph can be pure text, or an SSML fragment. Multi-line strings are supported.

It has command line flags --play and --no-play to control whether generated MP3s should be played back. This feature is supported by a dev dependency node-speaker. If you use it as a library in your project, and would like to have the play back capability, you need to install node-speaker as a dependency in your project.

When running on MacOS, to avoid illegal hardware instruction issue, try npm i speaker --mpg123-backend=openal

CLI

USAGE
  $ tts-narrator [FILE]

ARGUMENTS
  FILE  path to the script file (.yml)

OPTIONS
  -d, --debug                                  output debug information
  -h, --help                                   show CLI help

  -i, --interactive                            wait for key press before
                                               entering each section

  -k, --subscription-key=subscription-key      Azure Speech service subscription
                                               key

  -o, --overwrite                              always overwrite previously
                                               generated audio files

  -p, --[no-]play                              play generated audio

  -q, --quiet                                  output warn and error information
                                               only

  -r, --region=region                          region of the text-to-speech
                                               service

  -s, --service=azure                          text-to-speech service to use

  -v, --version                                show CLI version

  --chapters=chapters                          list of chapters to process,
                                               examples: "1-10,13,15", "4-"

  --dry-run                                    don't try to generate or play
                                               audio

  --sections=sections                          list of sections to process,
                                               examples: "1-10,13,15", "5-"

  --ssml                                       display generated SSML

  --subscription-key-env=subscription-key-env  Name of the environment variable
                                               that holds the subscription key

EXAMPLES
  tts-narrator myscript.yml --play --interactive --service azure 
  --subscription-key-env SUBSCRIPTION_KEY --region australiaeast
  tts-narrator ./test/fixtures/script3.yml -s azure --ssml -r australiaeast 
  --subscription-key-env=TTS_SUB_KEY  --no-play --interactive -d
  tts-narrator ./test/fixtures/script3.yml -s azure -r australiaeast 
  --subscription-key-env=TTS_SUB_KEY --quiet
  tts-narrator ./test/fixtures/script3.yml

API

tts-narrator

tts-narrator

Table of contents

Namespaces
Enumerations
Classes
Interfaces
Variables
Functions

Variables

scriptProcessorFlags

Const scriptProcessorFlags: Object

CLI flags that are required/used by the ScriptProcessor.

Type declaration
NameType
chaptersIOptionFlag<undefined | string>
debugIBooleanFlag<boolean>
dry-runIBooleanFlag<boolean>
interactiveIBooleanFlag<boolean>
overwriteIBooleanFlag<boolean>
playIBooleanFlag<boolean>
quietIBooleanFlag<boolean>
regionIOptionFlag<undefined | string>
sectionsIOptionFlag<undefined | string>
serviceIOptionFlag<undefined | string>
ssmlIBooleanFlag<boolean>
subscription-keyIOptionFlag<undefined | string>
subscription-key-envIOptionFlag<undefined | string>

Functions

getAudioFileDuration

getAudioFileDuration(filePath): Promise<number>

Parameters
NameType
filePathstring
Returns

Promise<number>


loadScript

loadScript(scriptFilePath): Promise<NarrationScript>

Parameters
NameType
scriptFilePathstring
Returns

Promise<NarrationScript>


playMp3File

playMp3File(filePath, infoLogger): Promise<void>

Parameters
NameType
filePathstring
infoLogger(msg: string) => void
Returns

Promise<void>


saveScript

saveScript(script): Promise<void>

Parameters
NameType
scriptNarrationScript
Returns

Promise<void>

saveScript(script, scriptFilePath): Promise<void>

Parameters
NameType
scriptScript
scriptFilePathstring
Returns

Promise<void>

Classes

tts-narrator / AzureTtsService

Class: AzureTtsService

Hierarchy
Table of contents
Constructors
Methods
Constructors
constructor

new AzureTtsService()

Inherited from

BaseTtsService.constructor

Methods
buildSpeakStartTag

Protected buildSpeakStartTag(voiceSettings): string

Parameters
NameType
voiceSettingsVoiceSettings
Returns

string

Overrides

BaseTtsService.buildSpeakStartTag


buildVoiceStartTag

Protected buildVoiceStartTag(voiceSettings): string

Parameters
NameType
voiceSettingsVoiceSettings
Returns

string

Inherited from

BaseTtsService.buildVoiceStartTag


generateAudio

generateAudio(ssml, options): Promise<any>

Parameters
NameType
ssmlstring
optionsAzureAudioGenerationOptions
Returns

Promise<any>

Overrides

BaseTtsService.generateAudio


generateSSML

generateSSML(paragraph): Promise<string>

Parameters
NameType
paragraphNarrationParagraph
Returns

Promise<string>

Inherited from

BaseTtsService.generateSSML


generateSsmlWithoutValidation

Protected generateSsmlWithoutValidation(paragraph): Object

Parameters
NameType
paragraphNarrationParagraph
Returns

Object

NameType
lineOffsetnumber
ssmlstring
Inherited from

BaseTtsService.generateSsmlWithoutValidation


validateXML

Protected validateXML(xml, lineOffset): void

Parameters
NameType
xmlstring
lineOffsetnumber
Returns

void

Inherited from

BaseTtsService.validateXML

tts-narrator / BaseTtsService

Class: BaseTtsService

Hierarchy
Implements
Table of contents
Constructors
Methods
Constructors
constructor

new BaseTtsService()

Methods
buildSpeakStartTag

Protected buildSpeakStartTag(voiceSettings): string

Parameters
NameType
voiceSettingsVoiceSettings
Returns

string


buildVoiceStartTag

Protected buildVoiceStartTag(voiceSettings): string

Parameters
NameType
voiceSettingsVoiceSettings
Returns

string


generateAudio

generateAudio(_ssml, _options): Promise<void>

Parameters
NameType
_ssmlstring
_optionsAudioGenerationOptions
Returns

Promise<void>

Implementation of

TtsService.generateAudio


generateSSML

generateSSML(paragraph): Promise<string>

Parameters
NameType
paragraphNarrationParagraph
Returns

Promise<string>

Implementation of

TtsService.generateSSML


generateSsmlWithoutValidation

Protected generateSsmlWithoutValidation(paragraph): Object

Parameters
NameType
paragraphNarrationParagraph
Returns

Object

NameType
lineOffsetnumber
ssmlstring

validateXML

Protected validateXML(xml, lineOffset): void

Parameters
NameType
xmlstring
lineOffsetnumber
Returns

void

tts-narrator / NarrationChapter

Class: NarrationChapter

Implements
Table of contents
Constructors
Properties
Accessors
Methods
Constructors
constructor

new NarrationChapter(chapter, index, script)

Parameters
NameType
chapterChapter
indexnumber
scriptNarrationScript
Properties
chapter

Protected chapter: Chapter


index

index: number


script

script: NarrationScript


sections

sections: NarrationSection[]

Implementation of

Chapter.sections

Accessors
key

get key(): string

Returns

string

Implementation of

Chapter.key


settings

get settings(): VoiceSettings

Returns

VoiceSettings

Implementation of

Chapter.settings

Methods
getSectionByKey

getSectionByKey(key): undefined | NarrationSection

Parameters
NameType
keystring
Returns

undefined | NarrationSection

tts-narrator / NarrationParagraph

Class: NarrationParagraph

Implements
Table of contents
Constructors
Properties
Accessors
Constructors
constructor

new NarrationParagraph(paragraph, index, section, chapter, script)

Parameters
NameType
paragraphParagraph
indexnumber
sectionNarrationSection
chapterNarrationChapter
scriptNarrationScript
Properties
audioFilePath

Optional audioFilePath: string

Path of the generated audio file. Only for in-memory processing, not supposed to be stored in file.


chapter

chapter: NarrationChapter


index

index: number


paragraph

Protected paragraph: Paragraph


script

script: NarrationScript


section

section: NarrationSection

Accessors
key

get key(): string

Returns

string

Implementation of

Paragraph.key


settings

get settings(): VoiceSettings

Returns

VoiceSettings

Implementation of

Paragraph.settings


text

get text(): string

Returns

string

Implementation of

Paragraph.text

tts-narrator / NarrationScript

Class: NarrationScript

Implements
Table of contents
Constructors
Properties
Accessors
Methods
Constructors
constructor

new NarrationScript(script, scriptFilePath)

Parameters
NameType
scriptScript
scriptFilePathstring
Properties
chapters

chapters: NarrationChapter[]

Implementation of

Script.chapters


script

Protected script: Script


scriptFilePath

scriptFilePath: string

Accessors
settings

get settings(): ScriptSettings

Returns

ScriptSettings

Implementation of

Script.settings

Methods
export

export(): Script

Returns

Script


getChapterByKey

getChapterByKey(key): undefined | NarrationChapter

Parameters
NameType
keystring
Returns

undefined | NarrationChapter

tts-narrator / NarrationSection

Class: NarrationSection

Implements
Table of contents
Constructors
Properties
Accessors
Constructors
constructor

new NarrationSection(section, index, chapter, script)

Parameters
NameType
sectionSection
indexnumber
chapterNarrationChapter
scriptNarrationScript
Properties
chapter

chapter: NarrationChapter


index

index: number


paragraphs

paragraphs: NarrationParagraph[]

Implementation of

Section.paragraphs


script

script: NarrationScript


section

Protected section: Section

Accessors
key

get key(): string

Returns

string

Implementation of

Section.key


settings

get settings(): VoiceSettings

Returns

VoiceSettings

Implementation of

Section.settings

tts-narrator / ScriptProcessor

Class: ScriptProcessor

Table of contents
Constructors
Properties
Accessors
Methods
Constructors
constructor

new ScriptProcessor(scriptFilePath, flags, cliConsole?)

Parameters
NameType
scriptFilePathstring
flagsObject
cliConsole?CliConsole<fn, fn, fn, fn>
Properties
_script

Protected _script: NarrationScript


audioGenerationOptions

Protected audioGenerationOptions: undefined | AudioGenerationOptions


chapterRange

Protected chapterRange: undefined | MultiRange


cliConsole

Protected cliConsole: CliConsole<fn, fn, fn, fn>


flags

Protected flags: Object


scriptFilePath

Protected scriptFilePath: string


sectionRange

Protected sectionRange: undefined | MultiRange


ttsService

Protected ttsService: TtsService

Accessors
script

get script(): NarrationScript

Returns

NarrationScript

Methods
determineAudioFilePath

Protected determineAudioFilePath(ssmlHash, _paragraph): Promise<string>

Parameters
NameType
ssmlHashstring
_paragraphNarrationParagraph
Returns

Promise<string>


hash

Protected hash(ssml, _paragraph): string

Parameters
NameType
ssmlstring
_paragraphNarrationParagraph
Returns

string


initialiseTtsServiceIfNeeded

Protected initialiseTtsServiceIfNeeded(): Promise<void>

Returns

Promise<void>


loadScript

Protected loadScript(): Promise<void>

Returns

Promise<void>


parseRanges

Protected parseRanges(): void

Returns

void


processGeneratedAudioFile

Protected processGeneratedAudioFile(audioFilePath): Promise<string>

Parameters
NameType
audioFilePathstring
Returns

Promise<string>


run

run(reconstructedcommandLine?): Promise<void>

Parameters
NameType
reconstructedcommandLine?string
Returns

Promise<void>


runWithoutCatch

runWithoutCatch(reconstructedcommandLine?): Promise<void>

Parameters
NameType
reconstructedcommandLine?string
Returns

Promise<void>

Enums

tts-narrator / TtsServiceType

Enumeration: TtsServiceType

Table of contents
Enumeration members
Enumeration members
Azure

Azure = "azure"

Interfaces

tts-narrator / AudioGenerationOptions

Interface: AudioGenerationOptions

Hierarchy
Table of contents
Properties
Properties
outputFilePath

outputFilePath: string

tts-narrator / AzureAudioGenerationOptions

Interface: AzureAudioGenerationOptions

Hierarchy
Table of contents
Properties
Properties
outputFilePath

outputFilePath: string

Inherited from

AudioGenerationOptions.outputFilePath


serviceRegion

Optional serviceRegion: string


subscriptionKey

Optional subscriptionKey: string

tts-narrator / NarrationScriptFile / Chapter

Interface: Chapter

NarrationScriptFile.Chapter

Implemented by
Table of contents
Properties
Properties
key

Optional key: string


sections

sections: Section[]


settings

Optional settings: VoiceSettings

tts-narrator / NarrationScriptFile / Paragraph

Interface: Paragraph

NarrationScriptFile.Paragraph

Implemented by
Table of contents
Properties
Properties
key

Optional key: string


settings

Optional settings: VoiceSettings


text

text: string

tts-narrator / NarrationScriptFile / Script

Interface: Script

NarrationScriptFile.Script

Implemented by
Table of contents
Properties
Properties
chapters

chapters: Chapter[]


settings

settings: ScriptSettings

tts-narrator / NarrationScriptFile / Section

Interface: Section

NarrationScriptFile.Section

Implemented by
Table of contents
Properties
Properties
key

Optional key: string


paragraphs

paragraphs: Paragraph[]


settings

Optional settings: VoiceSettings

tts-narrator / ScriptSettings

Interface: ScriptSettings

Table of contents
Properties
Properties
service

Optional service: Azure


voice

Optional voice: VoiceSettings

tts-narrator / TtsService

Interface: TtsService

Implemented by
Table of contents
Methods
Methods
generateAudio

generateAudio(ssml, options): Promise<void>

Parameters
NameType
ssmlstring
optionsAudioGenerationOptions
Returns

Promise<void>


generateSSML

generateSSML(paragraph): Promise<string>

Parameters
NameType
paragraphNarrationParagraph
Returns

Promise<string>

tts-narrator / VoiceSettings

Interface: VoiceSettings

Table of contents
Properties
Properties
language

Optional language: string


name

Optional name: string

Modules

tts-narrator / NarrationScriptFile

Namespace: NarrationScriptFile

Table of contents
Interfaces

Keywords

FAQs

Last updated on 25 Sep 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc