1.0.17 • Published 3 years ago

tts-narrator v1.0.17

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 years ago

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