tts-narrator
Advanced tools
Comparing version 2.1.2 to 2.2.0
import { TtsServiceType } from './tts-service'; | ||
export interface VoiceSettings { | ||
/** | ||
* Language, corresponding to `speak#xml:lang` in SSML. | ||
*/ | ||
language?: string; | ||
/** | ||
* Voice name, corresponding to `speak.voice#name` in SSML. | ||
*/ | ||
name?: string; | ||
language?: string; | ||
/** | ||
* Voice effect, corresponding to `speak.voice#effect` in SSML. | ||
*/ | ||
effect?: string; | ||
/** | ||
* Corresponding to `speak.voice.prosody` in SSML. | ||
*/ | ||
prosody?: { | ||
rate?: string; | ||
pitch?: string; | ||
volume?: string; | ||
}; | ||
/** | ||
* Corresponding to `speak.voice.mstts:express-as` in SSML. | ||
*/ | ||
msttsExpressAs?: { | ||
style?: string; | ||
styleDegree?: string; | ||
role?: string; | ||
}; | ||
} | ||
@@ -6,0 +32,0 @@ export interface ScriptSettings { |
@@ -17,2 +17,4 @@ import { NarrationParagraph, VoiceSettings } from './narration-script'; | ||
protected buildVoiceStartTag(voiceSettings: VoiceSettings): string; | ||
protected buildProsodyStartTag(prosodySettings: Exclude<VoiceSettings['prosody'], undefined>): string; | ||
protected buildMsttsExpressAsStartTag(msttsExpressAsSettings: Exclude<VoiceSettings['msttsExpressAs'], undefined>): string; | ||
protected generateSsmlWithoutValidation(paragraph: NarrationParagraph): { | ||
@@ -19,0 +21,0 @@ lineOffset: number; |
@@ -29,2 +29,8 @@ "use strict"; | ||
} | ||
buildProsodyStartTag(prosodySettings) { | ||
return `<prosody ${prosodySettings.pitch ? `pitch="${prosodySettings.pitch}"` : ''} ${prosodySettings.rate ? `rate="${prosodySettings.rate}"` : ''} ${prosodySettings.volume ? `volume="${prosodySettings.volume}"` : ''}>`; | ||
} | ||
buildMsttsExpressAsStartTag(msttsExpressAsSettings) { | ||
return `<mstts:express-as ${msttsExpressAsSettings.style ? `style="${msttsExpressAsSettings.style}"` : ''} ${msttsExpressAsSettings.role ? `role="${msttsExpressAsSettings.role}"` : ''} ${msttsExpressAsSettings.styleDegree ? `styledegree="${msttsExpressAsSettings.styleDegree}"` : ''}>`; | ||
} | ||
generateSsmlWithoutValidation(paragraph) { | ||
@@ -54,4 +60,16 @@ var _a; | ||
const voiceEndTag = '</voice>'; | ||
let prosodyStartTagOrEmpty = ''; | ||
let prosodyEndTagOrEmpty = ''; | ||
if (voiceSettings.prosody) { | ||
prosodyStartTagOrEmpty = this.buildProsodyStartTag(voiceSettings.prosody); | ||
prosodyEndTagOrEmpty = '</prosody>'; | ||
} | ||
let msttsExpressAsStartTagOrEmpty = ''; | ||
let msttsExpressAsEndTagOrEmpty = ''; | ||
if (voiceSettings.msttsExpressAs) { | ||
msttsExpressAsStartTagOrEmpty = this.buildMsttsExpressAsStartTag(voiceSettings.msttsExpressAs); | ||
msttsExpressAsEndTagOrEmpty = '</mstts:express-as>'; | ||
} | ||
// plain text or fragments containing other tags | ||
return { lineOffset: 1, ssml: `${speakStartTag}${voiceStartTag}\n${text}\n${voiceEndTag}${speakEndTag}` }; | ||
return { lineOffset: 1, ssml: `${speakStartTag}${voiceStartTag}${prosodyStartTagOrEmpty}${msttsExpressAsStartTagOrEmpty}\n${text}\n${msttsExpressAsEndTagOrEmpty}${prosodyEndTagOrEmpty}${voiceEndTag}${speakEndTag}` }; | ||
} | ||
@@ -58,0 +76,0 @@ generateAudio(_ssml, _options) { |
{ | ||
"name": "tts-narrator", | ||
"version": "2.1.2", | ||
"version": "2.2.0", | ||
"description": "Generate narration with Text-To-Speech technology", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -166,2 +166,48 @@ # tts-narrator | ||
##### buildMsttsExpressAsStartTag | ||
▸ `Protected` **buildMsttsExpressAsStartTag**(`msttsExpressAsSettings`): `string` | ||
###### Parameters | ||
| Name | Type | | ||
| :------ | :------ | | ||
| `msttsExpressAsSettings` | `Object` | | ||
| `msttsExpressAsSettings.role?` | `string` | | ||
| `msttsExpressAsSettings.style?` | `string` | | ||
| `msttsExpressAsSettings.styleDegree?` | `string` | | ||
###### Returns | ||
`string` | ||
###### Inherited from | ||
[BaseTtsService](#classestts_servicebasettsservicemd).[buildMsttsExpressAsStartTag](#buildmsttsexpressasstarttag) | ||
___ | ||
##### buildProsodyStartTag | ||
▸ `Protected` **buildProsodyStartTag**(`prosodySettings`): `string` | ||
###### Parameters | ||
| Name | Type | | ||
| :------ | :------ | | ||
| `prosodySettings` | `Object` | | ||
| `prosodySettings.pitch?` | `string` | | ||
| `prosodySettings.rate?` | `string` | | ||
| `prosodySettings.volume?` | `string` | | ||
###### Returns | ||
`string` | ||
###### Inherited from | ||
[BaseTtsService](#classestts_servicebasettsservicemd).[buildProsodyStartTag](#buildprosodystarttag) | ||
___ | ||
##### buildSpeakStartTag | ||
@@ -1133,2 +1179,40 @@ | ||
##### buildMsttsExpressAsStartTag | ||
▸ `Protected` **buildMsttsExpressAsStartTag**(`msttsExpressAsSettings`): `string` | ||
###### Parameters | ||
| Name | Type | | ||
| :------ | :------ | | ||
| `msttsExpressAsSettings` | `Object` | | ||
| `msttsExpressAsSettings.role?` | `string` | | ||
| `msttsExpressAsSettings.style?` | `string` | | ||
| `msttsExpressAsSettings.styleDegree?` | `string` | | ||
###### Returns | ||
`string` | ||
___ | ||
##### buildProsodyStartTag | ||
▸ `Protected` **buildProsodyStartTag**(`prosodySettings`): `string` | ||
###### Parameters | ||
| Name | Type | | ||
| :------ | :------ | | ||
| `prosodySettings` | `Object` | | ||
| `prosodySettings.pitch?` | `string` | | ||
| `prosodySettings.rate?` | `string` | | ||
| `prosodySettings.volume?` | `string` | | ||
###### Returns | ||
`string` | ||
___ | ||
##### buildSpeakStartTag | ||
@@ -1387,4 +1471,7 @@ | ||
| --- | --- | | ||
| `Optional` **language**: `string` | | | ||
| `Optional` **name**: `string` | | | ||
| `Optional` **effect**: `string` | Voice effect, corresponding to `speak.voice#effect` in SSML. | | ||
| `Optional` **language**: `string` | Language, corresponding to `speak#xml:lang` in SSML. | | ||
| `Optional` **msttsExpressAs**: `Object` | Corresponding to `speak.voice.mstts:express-as` in SSML.<br>Type declaration<br><br>| Name | Type |<br>| :------ | :------ |<br>| `role?` | `string` |<br>| `style?` | `string` |<br>| `styleDegree?` | `string` | | | ||
| `Optional` **name**: `string` | Voice name, corresponding to `speak.voice#name` in SSML. | | ||
| `Optional` **prosody**: `Object` | Corresponding to `speak.voice.prosody` in SSML.<br>Type declaration<br><br>| Name | Type |<br>| :------ | :------ |<br>| `pitch?` | `string` |<br>| `rate?` | `string` |<br>| `volume?` | `string` | | | ||
@@ -1391,0 +1478,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
111956
911
1874