ssml-builder-js 2.12.0 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -1
- package/dist/{chunk-4BVNAUVR.mjs → chunk-AQ55MOPU.mjs} +246 -21
- package/dist/chunk-AQ55MOPU.mjs.map +1 -0
- package/dist/chunk-QFIBPCO4.mjs +1816 -0
- package/dist/chunk-QFIBPCO4.mjs.map +1 -0
- package/dist/{chunk-FHDFRM2F.mjs → chunk-UZSCXPC5.mjs} +248 -1722
- package/dist/chunk-UZSCXPC5.mjs.map +1 -0
- package/dist/core.d.mts +62 -3
- package/dist/core.d.ts +62 -3
- package/dist/core.js +246 -20
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +3 -1
- package/dist/elements.js +196 -8
- package/dist/elements.js.map +1 -1
- package/dist/elements.mjs +6 -4
- package/dist/elements.mjs.map +1 -1
- package/dist/index.d-CUXRwSw0.d.mts +232 -0
- package/dist/index.d-CUXRwSw0.d.ts +232 -0
- package/dist/index.d.mts +151 -2
- package/dist/index.d.ts +151 -2
- package/dist/index.js +2264 -41
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +479 -4
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +65 -163
- package/dist/react.d.ts +65 -163
- package/dist/react.js +498 -22
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +162 -18
- package/dist/react.mjs.map +1 -1
- package/package.json +3 -2
- package/dist/chunk-4BVNAUVR.mjs.map +0 -1
- package/dist/chunk-FHDFRM2F.mjs.map +0 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
type SsmlAttributeValue = string | number;
|
|
2
|
+
type SsmlAttributes = Record<string, SsmlAttributeValue>;
|
|
3
|
+
interface SsmlText {
|
|
4
|
+
type: "text";
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
type SsmlNode = string | SsmlText | SsmlElement;
|
|
8
|
+
interface SsmlElementBase {
|
|
9
|
+
children?: SsmlNode[];
|
|
10
|
+
attributes?: SsmlAttributes;
|
|
11
|
+
}
|
|
12
|
+
interface VoiceElement extends SsmlElementBase {
|
|
13
|
+
type: "voice";
|
|
14
|
+
name?: string;
|
|
15
|
+
effect?: string;
|
|
16
|
+
}
|
|
17
|
+
interface ProsodyElement extends SsmlElementBase {
|
|
18
|
+
type: "prosody";
|
|
19
|
+
rate?: SsmlAttributeValue;
|
|
20
|
+
pitch?: SsmlAttributeValue;
|
|
21
|
+
volume?: SsmlAttributeValue;
|
|
22
|
+
contour?: string;
|
|
23
|
+
range?: SsmlAttributeValue;
|
|
24
|
+
}
|
|
25
|
+
interface BreakElement extends SsmlElementBase {
|
|
26
|
+
type: "break";
|
|
27
|
+
time?: SsmlAttributeValue;
|
|
28
|
+
strength?: string;
|
|
29
|
+
}
|
|
30
|
+
interface ExpressAsElement extends SsmlElementBase {
|
|
31
|
+
type: "express-as" | "expressAs" | "mstts:express-as";
|
|
32
|
+
style?: string;
|
|
33
|
+
styleDegree?: SsmlAttributeValue;
|
|
34
|
+
role?: string;
|
|
35
|
+
}
|
|
36
|
+
interface SayAsElement extends SsmlElementBase {
|
|
37
|
+
type: "say-as" | "sayAs";
|
|
38
|
+
interpretAs?: string;
|
|
39
|
+
format?: string;
|
|
40
|
+
detail?: string;
|
|
41
|
+
}
|
|
42
|
+
interface PhonemeElement extends SsmlElementBase {
|
|
43
|
+
type: "phoneme";
|
|
44
|
+
alphabet?: string;
|
|
45
|
+
ph?: string;
|
|
46
|
+
}
|
|
47
|
+
interface EmphasisElement extends SsmlElementBase {
|
|
48
|
+
type: "emphasis";
|
|
49
|
+
level?: string;
|
|
50
|
+
}
|
|
51
|
+
interface AudioElement extends SsmlElementBase {
|
|
52
|
+
type: "audio";
|
|
53
|
+
src?: string;
|
|
54
|
+
desc?: string;
|
|
55
|
+
clipBegin?: SsmlAttributeValue;
|
|
56
|
+
clipEnd?: SsmlAttributeValue;
|
|
57
|
+
speed?: SsmlAttributeValue;
|
|
58
|
+
repeatCount?: SsmlAttributeValue;
|
|
59
|
+
repeatDuration?: SsmlAttributeValue;
|
|
60
|
+
soundLevel?: SsmlAttributeValue;
|
|
61
|
+
}
|
|
62
|
+
interface SubElement extends SsmlElementBase {
|
|
63
|
+
type: "sub";
|
|
64
|
+
alias?: string;
|
|
65
|
+
}
|
|
66
|
+
interface LangElement extends SsmlElementBase {
|
|
67
|
+
type: "lang";
|
|
68
|
+
lang?: string;
|
|
69
|
+
}
|
|
70
|
+
interface MarkElement extends SsmlElementBase {
|
|
71
|
+
type: "mark";
|
|
72
|
+
name?: string;
|
|
73
|
+
}
|
|
74
|
+
interface BookmarkElement extends SsmlElementBase {
|
|
75
|
+
type: "bookmark";
|
|
76
|
+
mark?: string;
|
|
77
|
+
}
|
|
78
|
+
interface LexiconElement extends SsmlElementBase {
|
|
79
|
+
type: "lexicon";
|
|
80
|
+
uri?: string;
|
|
81
|
+
}
|
|
82
|
+
interface ParagraphElement extends SsmlElementBase {
|
|
83
|
+
type: "p";
|
|
84
|
+
}
|
|
85
|
+
interface SentenceElement extends SsmlElementBase {
|
|
86
|
+
type: "s";
|
|
87
|
+
}
|
|
88
|
+
interface WordElement extends SsmlElementBase {
|
|
89
|
+
type: "w";
|
|
90
|
+
}
|
|
91
|
+
interface MsttsSilenceElement extends SsmlElementBase {
|
|
92
|
+
type: "mstts:silence" | "silence";
|
|
93
|
+
typeValue?: string;
|
|
94
|
+
silenceType?: string;
|
|
95
|
+
value?: SsmlAttributeValue;
|
|
96
|
+
}
|
|
97
|
+
interface MsttsVisemeElement extends SsmlElementBase {
|
|
98
|
+
type: "mstts:viseme" | "viseme";
|
|
99
|
+
typeValue?: string;
|
|
100
|
+
visemeType?: string;
|
|
101
|
+
}
|
|
102
|
+
interface MsttsAudioDurationElement extends SsmlElementBase {
|
|
103
|
+
type: "mstts:audioduration";
|
|
104
|
+
value?: SsmlAttributeValue;
|
|
105
|
+
}
|
|
106
|
+
interface SsmlDialogNode extends SsmlElementBase {
|
|
107
|
+
type: "mstts:dialog";
|
|
108
|
+
}
|
|
109
|
+
interface SsmlTurnNode extends SsmlElementBase {
|
|
110
|
+
type: "mstts:turn";
|
|
111
|
+
voice?: string;
|
|
112
|
+
speaker?: string;
|
|
113
|
+
}
|
|
114
|
+
interface SsmlBackgroundAudioNode extends SsmlElementBase {
|
|
115
|
+
type: "mstts:backgroundaudio";
|
|
116
|
+
src?: string;
|
|
117
|
+
volume?: SsmlAttributeValue;
|
|
118
|
+
fadeIn?: SsmlAttributeValue;
|
|
119
|
+
fadeOut?: SsmlAttributeValue;
|
|
120
|
+
/** XML spelling aliases retained for ergonomic object construction. */
|
|
121
|
+
fadein?: SsmlAttributeValue;
|
|
122
|
+
fadeout?: SsmlAttributeValue;
|
|
123
|
+
}
|
|
124
|
+
interface MsttsTtsEmbeddingElement extends SsmlElementBase {
|
|
125
|
+
type: "mstts:ttsembedding";
|
|
126
|
+
speakerProfileId?: string;
|
|
127
|
+
}
|
|
128
|
+
interface MsttsEmbeddingElement extends SsmlElementBase {
|
|
129
|
+
type: "mstts:embedding";
|
|
130
|
+
id?: string;
|
|
131
|
+
speakerProfileId?: string;
|
|
132
|
+
}
|
|
133
|
+
interface MsttsVoiceConversionElement extends SsmlElementBase {
|
|
134
|
+
type: "mstts:voiceconversion";
|
|
135
|
+
url?: string;
|
|
136
|
+
profile?: string;
|
|
137
|
+
speakerProfileId?: string;
|
|
138
|
+
}
|
|
139
|
+
interface CustomElement extends SsmlElementBase {
|
|
140
|
+
type: "custom" | "element";
|
|
141
|
+
name: string;
|
|
142
|
+
}
|
|
143
|
+
type SsmlElement = VoiceElement | ProsodyElement | BreakElement | ExpressAsElement | SayAsElement | PhonemeElement | EmphasisElement | AudioElement | SubElement | LangElement | MarkElement | BookmarkElement | LexiconElement | ParagraphElement | SentenceElement | WordElement | MsttsSilenceElement | MsttsVisemeElement | MsttsAudioDurationElement | SsmlDialogNode | SsmlTurnNode | SsmlBackgroundAudioNode | MsttsTtsEmbeddingElement | MsttsEmbeddingElement | MsttsVoiceConversionElement | CustomElement;
|
|
144
|
+
interface SsmlDocument {
|
|
145
|
+
type?: "speak";
|
|
146
|
+
version: string;
|
|
147
|
+
lang: string;
|
|
148
|
+
children?: SsmlNode[];
|
|
149
|
+
/** @deprecated Use children to represent the document body. */
|
|
150
|
+
content?: string;
|
|
151
|
+
attributes?: SsmlAttributes;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
interface SsmlTextRange {
|
|
155
|
+
start: number;
|
|
156
|
+
end: number;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
type SsmlDiagnosticSeverity = "error" | "warning" | "info";
|
|
160
|
+
type SsmlDiagnosticSource = "ssml-static-validator";
|
|
161
|
+
type AzureDiagnosticCode = "azure-unknown-voice" | "azure-unsupported-style" | "azure-locale-mismatch" | "azure-unsupported-tag-for-voice" | "azure-unsupported-model-for-voice" | "azure-preview-voice" | "azure-deprecated-voice" | "azure-preview-tag" | "azure-deprecated-tag";
|
|
162
|
+
interface SsmlDiagnostic {
|
|
163
|
+
code?: AzureDiagnosticCode;
|
|
164
|
+
line: number;
|
|
165
|
+
column: number;
|
|
166
|
+
message: string;
|
|
167
|
+
severity: SsmlDiagnosticSeverity;
|
|
168
|
+
source: SsmlDiagnosticSource;
|
|
169
|
+
}
|
|
170
|
+
interface AzureVoiceDefinition {
|
|
171
|
+
name: string;
|
|
172
|
+
locale: string;
|
|
173
|
+
secondaryLocales?: readonly string[];
|
|
174
|
+
styles?: readonly string[];
|
|
175
|
+
supportedTags?: readonly string[];
|
|
176
|
+
unsupportedTags?: readonly string[];
|
|
177
|
+
models?: readonly string[];
|
|
178
|
+
regions?: readonly string[];
|
|
179
|
+
status?: "ga" | "preview" | "deprecated";
|
|
180
|
+
}
|
|
181
|
+
interface AzureValidationOptions {
|
|
182
|
+
allowedAudioOrigins?: readonly string[];
|
|
183
|
+
allowExternalAudio?: boolean;
|
|
184
|
+
allowHttpAudio?: boolean;
|
|
185
|
+
customVoiceStyleMap?: Record<string, readonly string[]>;
|
|
186
|
+
customVoiceDefinitions?: readonly AzureVoiceDefinition[];
|
|
187
|
+
/** Host-side validation hook for URL-bearing SSML attributes. */
|
|
188
|
+
urlValidator?: AzureUrlValidator;
|
|
189
|
+
/** Alias for urlValidator retained for applications that use the longer name. */
|
|
190
|
+
customUrlValidator?: AzureUrlValidator;
|
|
191
|
+
/** Controls deduplication, caching, cancellation, and concurrency for URL checks. */
|
|
192
|
+
urlValidation?: AzureUrlValidationRunnerOptions;
|
|
193
|
+
/** Flat aliases retained for callers that prefer not to nest URL runner options. */
|
|
194
|
+
urlValidatorConcurrency?: number;
|
|
195
|
+
urlValidatorTimeoutMs?: number;
|
|
196
|
+
urlValidatorSignal?: AbortSignal;
|
|
197
|
+
urlValidatorCache?: Map<string, AzureUrlValidationResult>;
|
|
198
|
+
languageAliases?: Record<string, string | readonly string[]>;
|
|
199
|
+
maxLength?: number;
|
|
200
|
+
/** Maximum XML element nesting depth, counting `<speak>` as depth 1. */
|
|
201
|
+
maxXmlDepth?: number;
|
|
202
|
+
/** Optional model identifier used to validate a voice's model compatibility. */
|
|
203
|
+
model?: string;
|
|
204
|
+
normalizeLanguage?: (lang: string) => string;
|
|
205
|
+
/** Overrides the built-in preview tag list for this validation run. */
|
|
206
|
+
previewTags?: readonly string[];
|
|
207
|
+
/** Adds tags that should be reported as deprecated for this validation run. */
|
|
208
|
+
deprecatedTags?: readonly string[];
|
|
209
|
+
/** Explicit tag lifecycle metadata. This takes precedence over previewTags/deprecatedTags. */
|
|
210
|
+
tagStatuses?: Readonly<Record<string, "ga" | "preview" | "deprecated">>;
|
|
211
|
+
unknownVoicePolicy?: "error" | "warn" | "ignore";
|
|
212
|
+
unsupportedStylePolicy?: "error" | "warn" | "ignore";
|
|
213
|
+
validateNestedVoices?: boolean;
|
|
214
|
+
voiceCatalog?: readonly AzureVoiceDefinition[];
|
|
215
|
+
voiceDefinitions?: readonly AzureVoiceDefinition[];
|
|
216
|
+
}
|
|
217
|
+
type AzureUrlValidationResult = boolean | {
|
|
218
|
+
valid: boolean;
|
|
219
|
+
reason?: string;
|
|
220
|
+
};
|
|
221
|
+
type AzureUrlValidator = (url: string, context: {
|
|
222
|
+
tag: string;
|
|
223
|
+
attribute: string;
|
|
224
|
+
}) => AzureUrlValidationResult | Promise<AzureUrlValidationResult>;
|
|
225
|
+
interface AzureUrlValidationRunnerOptions {
|
|
226
|
+
concurrency?: number;
|
|
227
|
+
cache?: Map<string, AzureUrlValidationResult>;
|
|
228
|
+
signal?: AbortSignal;
|
|
229
|
+
timeoutMs?: number;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export type { AzureValidationOptions as A, SsmlTextRange as S, SsmlDiagnostic as a, SsmlDocument as b, SsmlElement as c };
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
type SsmlAttributeValue = string | number;
|
|
2
|
+
type SsmlAttributes = Record<string, SsmlAttributeValue>;
|
|
3
|
+
interface SsmlText {
|
|
4
|
+
type: "text";
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
type SsmlNode = string | SsmlText | SsmlElement;
|
|
8
|
+
interface SsmlElementBase {
|
|
9
|
+
children?: SsmlNode[];
|
|
10
|
+
attributes?: SsmlAttributes;
|
|
11
|
+
}
|
|
12
|
+
interface VoiceElement extends SsmlElementBase {
|
|
13
|
+
type: "voice";
|
|
14
|
+
name?: string;
|
|
15
|
+
effect?: string;
|
|
16
|
+
}
|
|
17
|
+
interface ProsodyElement extends SsmlElementBase {
|
|
18
|
+
type: "prosody";
|
|
19
|
+
rate?: SsmlAttributeValue;
|
|
20
|
+
pitch?: SsmlAttributeValue;
|
|
21
|
+
volume?: SsmlAttributeValue;
|
|
22
|
+
contour?: string;
|
|
23
|
+
range?: SsmlAttributeValue;
|
|
24
|
+
}
|
|
25
|
+
interface BreakElement extends SsmlElementBase {
|
|
26
|
+
type: "break";
|
|
27
|
+
time?: SsmlAttributeValue;
|
|
28
|
+
strength?: string;
|
|
29
|
+
}
|
|
30
|
+
interface ExpressAsElement extends SsmlElementBase {
|
|
31
|
+
type: "express-as" | "expressAs" | "mstts:express-as";
|
|
32
|
+
style?: string;
|
|
33
|
+
styleDegree?: SsmlAttributeValue;
|
|
34
|
+
role?: string;
|
|
35
|
+
}
|
|
36
|
+
interface SayAsElement extends SsmlElementBase {
|
|
37
|
+
type: "say-as" | "sayAs";
|
|
38
|
+
interpretAs?: string;
|
|
39
|
+
format?: string;
|
|
40
|
+
detail?: string;
|
|
41
|
+
}
|
|
42
|
+
interface PhonemeElement extends SsmlElementBase {
|
|
43
|
+
type: "phoneme";
|
|
44
|
+
alphabet?: string;
|
|
45
|
+
ph?: string;
|
|
46
|
+
}
|
|
47
|
+
interface EmphasisElement extends SsmlElementBase {
|
|
48
|
+
type: "emphasis";
|
|
49
|
+
level?: string;
|
|
50
|
+
}
|
|
51
|
+
interface AudioElement extends SsmlElementBase {
|
|
52
|
+
type: "audio";
|
|
53
|
+
src?: string;
|
|
54
|
+
desc?: string;
|
|
55
|
+
clipBegin?: SsmlAttributeValue;
|
|
56
|
+
clipEnd?: SsmlAttributeValue;
|
|
57
|
+
speed?: SsmlAttributeValue;
|
|
58
|
+
repeatCount?: SsmlAttributeValue;
|
|
59
|
+
repeatDuration?: SsmlAttributeValue;
|
|
60
|
+
soundLevel?: SsmlAttributeValue;
|
|
61
|
+
}
|
|
62
|
+
interface SubElement extends SsmlElementBase {
|
|
63
|
+
type: "sub";
|
|
64
|
+
alias?: string;
|
|
65
|
+
}
|
|
66
|
+
interface LangElement extends SsmlElementBase {
|
|
67
|
+
type: "lang";
|
|
68
|
+
lang?: string;
|
|
69
|
+
}
|
|
70
|
+
interface MarkElement extends SsmlElementBase {
|
|
71
|
+
type: "mark";
|
|
72
|
+
name?: string;
|
|
73
|
+
}
|
|
74
|
+
interface BookmarkElement extends SsmlElementBase {
|
|
75
|
+
type: "bookmark";
|
|
76
|
+
mark?: string;
|
|
77
|
+
}
|
|
78
|
+
interface LexiconElement extends SsmlElementBase {
|
|
79
|
+
type: "lexicon";
|
|
80
|
+
uri?: string;
|
|
81
|
+
}
|
|
82
|
+
interface ParagraphElement extends SsmlElementBase {
|
|
83
|
+
type: "p";
|
|
84
|
+
}
|
|
85
|
+
interface SentenceElement extends SsmlElementBase {
|
|
86
|
+
type: "s";
|
|
87
|
+
}
|
|
88
|
+
interface WordElement extends SsmlElementBase {
|
|
89
|
+
type: "w";
|
|
90
|
+
}
|
|
91
|
+
interface MsttsSilenceElement extends SsmlElementBase {
|
|
92
|
+
type: "mstts:silence" | "silence";
|
|
93
|
+
typeValue?: string;
|
|
94
|
+
silenceType?: string;
|
|
95
|
+
value?: SsmlAttributeValue;
|
|
96
|
+
}
|
|
97
|
+
interface MsttsVisemeElement extends SsmlElementBase {
|
|
98
|
+
type: "mstts:viseme" | "viseme";
|
|
99
|
+
typeValue?: string;
|
|
100
|
+
visemeType?: string;
|
|
101
|
+
}
|
|
102
|
+
interface MsttsAudioDurationElement extends SsmlElementBase {
|
|
103
|
+
type: "mstts:audioduration";
|
|
104
|
+
value?: SsmlAttributeValue;
|
|
105
|
+
}
|
|
106
|
+
interface SsmlDialogNode extends SsmlElementBase {
|
|
107
|
+
type: "mstts:dialog";
|
|
108
|
+
}
|
|
109
|
+
interface SsmlTurnNode extends SsmlElementBase {
|
|
110
|
+
type: "mstts:turn";
|
|
111
|
+
voice?: string;
|
|
112
|
+
speaker?: string;
|
|
113
|
+
}
|
|
114
|
+
interface SsmlBackgroundAudioNode extends SsmlElementBase {
|
|
115
|
+
type: "mstts:backgroundaudio";
|
|
116
|
+
src?: string;
|
|
117
|
+
volume?: SsmlAttributeValue;
|
|
118
|
+
fadeIn?: SsmlAttributeValue;
|
|
119
|
+
fadeOut?: SsmlAttributeValue;
|
|
120
|
+
/** XML spelling aliases retained for ergonomic object construction. */
|
|
121
|
+
fadein?: SsmlAttributeValue;
|
|
122
|
+
fadeout?: SsmlAttributeValue;
|
|
123
|
+
}
|
|
124
|
+
interface MsttsTtsEmbeddingElement extends SsmlElementBase {
|
|
125
|
+
type: "mstts:ttsembedding";
|
|
126
|
+
speakerProfileId?: string;
|
|
127
|
+
}
|
|
128
|
+
interface MsttsEmbeddingElement extends SsmlElementBase {
|
|
129
|
+
type: "mstts:embedding";
|
|
130
|
+
id?: string;
|
|
131
|
+
speakerProfileId?: string;
|
|
132
|
+
}
|
|
133
|
+
interface MsttsVoiceConversionElement extends SsmlElementBase {
|
|
134
|
+
type: "mstts:voiceconversion";
|
|
135
|
+
url?: string;
|
|
136
|
+
profile?: string;
|
|
137
|
+
speakerProfileId?: string;
|
|
138
|
+
}
|
|
139
|
+
interface CustomElement extends SsmlElementBase {
|
|
140
|
+
type: "custom" | "element";
|
|
141
|
+
name: string;
|
|
142
|
+
}
|
|
143
|
+
type SsmlElement = VoiceElement | ProsodyElement | BreakElement | ExpressAsElement | SayAsElement | PhonemeElement | EmphasisElement | AudioElement | SubElement | LangElement | MarkElement | BookmarkElement | LexiconElement | ParagraphElement | SentenceElement | WordElement | MsttsSilenceElement | MsttsVisemeElement | MsttsAudioDurationElement | SsmlDialogNode | SsmlTurnNode | SsmlBackgroundAudioNode | MsttsTtsEmbeddingElement | MsttsEmbeddingElement | MsttsVoiceConversionElement | CustomElement;
|
|
144
|
+
interface SsmlDocument {
|
|
145
|
+
type?: "speak";
|
|
146
|
+
version: string;
|
|
147
|
+
lang: string;
|
|
148
|
+
children?: SsmlNode[];
|
|
149
|
+
/** @deprecated Use children to represent the document body. */
|
|
150
|
+
content?: string;
|
|
151
|
+
attributes?: SsmlAttributes;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
interface SsmlTextRange {
|
|
155
|
+
start: number;
|
|
156
|
+
end: number;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
type SsmlDiagnosticSeverity = "error" | "warning" | "info";
|
|
160
|
+
type SsmlDiagnosticSource = "ssml-static-validator";
|
|
161
|
+
type AzureDiagnosticCode = "azure-unknown-voice" | "azure-unsupported-style" | "azure-locale-mismatch" | "azure-unsupported-tag-for-voice" | "azure-unsupported-model-for-voice" | "azure-preview-voice" | "azure-deprecated-voice" | "azure-preview-tag" | "azure-deprecated-tag";
|
|
162
|
+
interface SsmlDiagnostic {
|
|
163
|
+
code?: AzureDiagnosticCode;
|
|
164
|
+
line: number;
|
|
165
|
+
column: number;
|
|
166
|
+
message: string;
|
|
167
|
+
severity: SsmlDiagnosticSeverity;
|
|
168
|
+
source: SsmlDiagnosticSource;
|
|
169
|
+
}
|
|
170
|
+
interface AzureVoiceDefinition {
|
|
171
|
+
name: string;
|
|
172
|
+
locale: string;
|
|
173
|
+
secondaryLocales?: readonly string[];
|
|
174
|
+
styles?: readonly string[];
|
|
175
|
+
supportedTags?: readonly string[];
|
|
176
|
+
unsupportedTags?: readonly string[];
|
|
177
|
+
models?: readonly string[];
|
|
178
|
+
regions?: readonly string[];
|
|
179
|
+
status?: "ga" | "preview" | "deprecated";
|
|
180
|
+
}
|
|
181
|
+
interface AzureValidationOptions {
|
|
182
|
+
allowedAudioOrigins?: readonly string[];
|
|
183
|
+
allowExternalAudio?: boolean;
|
|
184
|
+
allowHttpAudio?: boolean;
|
|
185
|
+
customVoiceStyleMap?: Record<string, readonly string[]>;
|
|
186
|
+
customVoiceDefinitions?: readonly AzureVoiceDefinition[];
|
|
187
|
+
/** Host-side validation hook for URL-bearing SSML attributes. */
|
|
188
|
+
urlValidator?: AzureUrlValidator;
|
|
189
|
+
/** Alias for urlValidator retained for applications that use the longer name. */
|
|
190
|
+
customUrlValidator?: AzureUrlValidator;
|
|
191
|
+
/** Controls deduplication, caching, cancellation, and concurrency for URL checks. */
|
|
192
|
+
urlValidation?: AzureUrlValidationRunnerOptions;
|
|
193
|
+
/** Flat aliases retained for callers that prefer not to nest URL runner options. */
|
|
194
|
+
urlValidatorConcurrency?: number;
|
|
195
|
+
urlValidatorTimeoutMs?: number;
|
|
196
|
+
urlValidatorSignal?: AbortSignal;
|
|
197
|
+
urlValidatorCache?: Map<string, AzureUrlValidationResult>;
|
|
198
|
+
languageAliases?: Record<string, string | readonly string[]>;
|
|
199
|
+
maxLength?: number;
|
|
200
|
+
/** Maximum XML element nesting depth, counting `<speak>` as depth 1. */
|
|
201
|
+
maxXmlDepth?: number;
|
|
202
|
+
/** Optional model identifier used to validate a voice's model compatibility. */
|
|
203
|
+
model?: string;
|
|
204
|
+
normalizeLanguage?: (lang: string) => string;
|
|
205
|
+
/** Overrides the built-in preview tag list for this validation run. */
|
|
206
|
+
previewTags?: readonly string[];
|
|
207
|
+
/** Adds tags that should be reported as deprecated for this validation run. */
|
|
208
|
+
deprecatedTags?: readonly string[];
|
|
209
|
+
/** Explicit tag lifecycle metadata. This takes precedence over previewTags/deprecatedTags. */
|
|
210
|
+
tagStatuses?: Readonly<Record<string, "ga" | "preview" | "deprecated">>;
|
|
211
|
+
unknownVoicePolicy?: "error" | "warn" | "ignore";
|
|
212
|
+
unsupportedStylePolicy?: "error" | "warn" | "ignore";
|
|
213
|
+
validateNestedVoices?: boolean;
|
|
214
|
+
voiceCatalog?: readonly AzureVoiceDefinition[];
|
|
215
|
+
voiceDefinitions?: readonly AzureVoiceDefinition[];
|
|
216
|
+
}
|
|
217
|
+
type AzureUrlValidationResult = boolean | {
|
|
218
|
+
valid: boolean;
|
|
219
|
+
reason?: string;
|
|
220
|
+
};
|
|
221
|
+
type AzureUrlValidator = (url: string, context: {
|
|
222
|
+
tag: string;
|
|
223
|
+
attribute: string;
|
|
224
|
+
}) => AzureUrlValidationResult | Promise<AzureUrlValidationResult>;
|
|
225
|
+
interface AzureUrlValidationRunnerOptions {
|
|
226
|
+
concurrency?: number;
|
|
227
|
+
cache?: Map<string, AzureUrlValidationResult>;
|
|
228
|
+
signal?: AbortSignal;
|
|
229
|
+
timeoutMs?: number;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export type { AzureValidationOptions as A, SsmlTextRange as S, SsmlDiagnostic as a, SsmlDocument as b, SsmlElement as c };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { AudioElement, AzureDiagnosticCode, AzureLanguageNormalizationOptions, AzureSsmlValidationOptions, AzureValidationOptions, AzureVoiceCatalogMetadata, AzureVoiceDefinition, AzureVoiceMetadata, BookmarkElement, BreakElement, BuildPartialSsmlOptions, CustomElement, EmphasisElement, ExpressAsElement, ExtractSsmlTranslatableTextOptions, FromPlainTextToSsmlOptions, LangElement, LexiconElement, MapSsmlTextNodesOptions, MarkElement, MsttsAudioDurationElement, MsttsEmbeddingElement, MsttsSilenceElement, MsttsTtsEmbeddingElement, MsttsVisemeElement, MsttsVoiceConversionElement, NamedElement, ParagraphElement, PhonemeElement, ProsodyElement, SayAsElement, SentenceElement, SsmlAttributeValue, SsmlAttributes, SsmlBackgroundAudioNode, SsmlBreakElement, SsmlDiagnostic, SsmlDiagnosticSeverity, SsmlDiagnosticSource, SsmlDialogNode, SsmlDocument, SsmlElement, SsmlElementBase, SsmlEmbeddingNode, SsmlExpressAsElement, SsmlNode, SsmlPartialContext, SsmlPartialProsody, SsmlPartialVoice, SsmlPhonemeElement, SsmlProsodyElement, SsmlSayAsElement, SsmlStructureIntegrityResult, SsmlStructureMismatch, SsmlText, SsmlTextNodeContext, SsmlTtsEmbeddingNode, SsmlTurnNode, SsmlValidationError, SsmlVoiceConversionNode, SsmlVoiceElement, SubElement, VoiceElement, WordElement, areAzureLanguagesEquivalent, buildPartialSsml, buildSsml, extractSsmlText, extractSsmlTranslatableText, fromPlainTextToSsml, getAzureVoiceCatalogMetadata, getBuiltInVoiceCatalogMetadata, isValidAzureAudioDuration, mapSsmlTextNodes, normalizeAzureLanguage, parseSsml, splitSsmlDocument, validateAzureSsml, validateSsml, validateSsmlStructureIntegrity } from './core.mjs';
|
|
1
|
+
export { AudioElement, AzureDiagnosticCode, AzureLanguageNormalizationOptions, AzureSsmlValidationOptions, AzureUrlValidationResult, AzureUrlValidationRunnerOptions, AzureUrlValidator, AzureValidationOptions, AzureVoiceCatalogMetadata, AzureVoiceDefinition, AzureVoiceMetadata, BookmarkElement, BreakElement, BuildPartialSsmlOptions, CustomElement, EmphasisElement, ExpressAsElement, ExtractSsmlTranslatableTextOptions, FromPlainTextToSsmlOptions, LangElement, LexiconElement, MapSsmlTextNodesOptions, MarkElement, MsttsAudioDurationElement, MsttsEmbeddingElement, MsttsSilenceElement, MsttsTtsEmbeddingElement, MsttsVisemeElement, MsttsVoiceConversionElement, NamedElement, ParagraphElement, PhonemeElement, ProsodyElement, SayAsElement, SentenceElement, SplitSsmlOptions, SsmlAttributeValue, SsmlAttributes, SsmlBackgroundAudioNode, SsmlBreakElement, SsmlChunk, SsmlChunkContext, SsmlDiagnostic, SsmlDiagnosticSeverity, SsmlDiagnosticSource, SsmlDialogNode, SsmlDocument, SsmlElement, SsmlElementBase, SsmlEmbeddingNode, SsmlExpressAsElement, SsmlNode, SsmlPartialContext, SsmlPartialProsody, SsmlPartialVoice, SsmlPhonemeElement, SsmlProsodyElement, SsmlSayAsElement, SsmlStructureIntegrityResult, SsmlStructureMismatch, SsmlText, SsmlTextNodeContext, SsmlTextRange, SsmlTtsEmbeddingNode, SsmlTurnNode, SsmlValidationError, SsmlVoiceConversionNode, SsmlVoiceElement, SubElement, VoiceElement, WordElement, areAzureLanguagesEquivalent, buildPartialSsml, buildSsml, createAzureUrlValidatorRunner, extractSsmlText, extractSsmlTranslatableText, fromPlainTextToSsml, getAzureVoiceCatalogMetadata, getBuiltInVoiceCatalogMetadata, isValidAzureAudioDuration, mapSsmlTextNodes, normalizeAzureLanguage, parseSsml, splitSsmlDocument, validateAzureSsml, validateSsml, validateSsmlStructureIntegrity } from './core.mjs';
|
|
2
|
+
import { S as SsmlTextRange, a as SsmlDiagnostic, A as AzureValidationOptions } from './index.d-CUXRwSw0.mjs';
|
|
2
3
|
|
|
3
4
|
interface TtsConfig {
|
|
4
5
|
signal?: AbortSignal;
|
|
@@ -7,19 +8,61 @@ interface TtsConfig {
|
|
|
7
8
|
subscriptionKey: string;
|
|
8
9
|
region: string;
|
|
9
10
|
outputFormat?: string;
|
|
11
|
+
/** Original plain-text range represented by this synthesis request. */
|
|
12
|
+
sourceTextRange?: {
|
|
13
|
+
start: number;
|
|
14
|
+
end: number;
|
|
15
|
+
};
|
|
16
|
+
/** Reports chunk lifecycle events when using chunk synthesis. */
|
|
17
|
+
onProgress?: (event: SynthesisProgressEvent) => void;
|
|
18
|
+
/** Metadata used to map synchronization events back to the source document. */
|
|
19
|
+
chunkIndex?: number;
|
|
20
|
+
sourceNodePath?: string[];
|
|
10
21
|
}
|
|
22
|
+
type SynthesisChunkStatus = "pending" | "synthesizing" | "success" | "failed";
|
|
11
23
|
interface SsmlSynthesisBoundary {
|
|
12
24
|
text: string;
|
|
13
25
|
audioOffsetMs: number;
|
|
14
26
|
durationMs: number;
|
|
27
|
+
textRange?: {
|
|
28
|
+
start: number;
|
|
29
|
+
end: number;
|
|
30
|
+
};
|
|
31
|
+
/** Chunk that produced this event. */
|
|
32
|
+
chunkIndex?: number;
|
|
33
|
+
/** Path of the source SSML node, when available. */
|
|
34
|
+
sourceNodePath?: string[];
|
|
35
|
+
/** Original text range represented by this event. */
|
|
36
|
+
originalTextRange?: SsmlTextRange;
|
|
37
|
+
/** Audio offset within the originating chunk before merge. */
|
|
38
|
+
chunkAudioOffsetMs?: number;
|
|
39
|
+
requestId?: string;
|
|
15
40
|
}
|
|
16
41
|
interface SsmlSynthesisViseme {
|
|
17
42
|
visemeId: number;
|
|
18
43
|
audioOffsetMs: number;
|
|
44
|
+
textRange?: {
|
|
45
|
+
start: number;
|
|
46
|
+
end: number;
|
|
47
|
+
};
|
|
48
|
+
chunkIndex?: number;
|
|
49
|
+
sourceNodePath?: string[];
|
|
50
|
+
originalTextRange?: SsmlTextRange;
|
|
51
|
+
chunkAudioOffsetMs?: number;
|
|
52
|
+
requestId?: string;
|
|
19
53
|
}
|
|
20
54
|
interface SsmlSynthesisBookmark {
|
|
21
55
|
name: string;
|
|
22
56
|
audioOffsetMs: number;
|
|
57
|
+
textRange?: {
|
|
58
|
+
start: number;
|
|
59
|
+
end: number;
|
|
60
|
+
};
|
|
61
|
+
chunkIndex?: number;
|
|
62
|
+
sourceNodePath?: string[];
|
|
63
|
+
originalTextRange?: SsmlTextRange;
|
|
64
|
+
chunkAudioOffsetMs?: number;
|
|
65
|
+
requestId?: string;
|
|
23
66
|
}
|
|
24
67
|
/** Audio and Azure Speech synchronization events emitted for one SSML request. */
|
|
25
68
|
interface SsmlSynthesisResult {
|
|
@@ -32,6 +75,35 @@ interface SsmlSynthesisResult {
|
|
|
32
75
|
wordBoundaries?: SsmlSynthesisBoundary[];
|
|
33
76
|
visemes?: SsmlSynthesisViseme[];
|
|
34
77
|
bookmarks?: SsmlSynthesisBookmark[];
|
|
78
|
+
/** Request identifier returned by Azure Speech, when available. */
|
|
79
|
+
requestId?: string;
|
|
80
|
+
/** Original plain-text range represented by the result. */
|
|
81
|
+
textRange?: {
|
|
82
|
+
start: number;
|
|
83
|
+
end: number;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
interface SsmlSynthesisChunk {
|
|
87
|
+
ssml: string;
|
|
88
|
+
originalTextRange?: {
|
|
89
|
+
start: number;
|
|
90
|
+
end: number;
|
|
91
|
+
};
|
|
92
|
+
sourceNodePath?: string[];
|
|
93
|
+
}
|
|
94
|
+
interface SynthesizeChunksOptions {
|
|
95
|
+
onProgress?: (event: SynthesisProgressEvent) => void;
|
|
96
|
+
}
|
|
97
|
+
interface SynthesisProgressEvent {
|
|
98
|
+
/** 1-based completed chunk count retained for backward compatibility. */
|
|
99
|
+
currentChunk: number;
|
|
100
|
+
totalChunks: number;
|
|
101
|
+
percent: number;
|
|
102
|
+
chunkIndex: number;
|
|
103
|
+
originalTextRange?: SsmlTextRange;
|
|
104
|
+
status: SynthesisChunkStatus;
|
|
105
|
+
durationMs: number;
|
|
106
|
+
error?: unknown;
|
|
35
107
|
}
|
|
36
108
|
interface AzureTtsLogger {
|
|
37
109
|
debug?: (...args: unknown[]) => void;
|
|
@@ -47,6 +119,7 @@ interface AzureTtsClientOptions {
|
|
|
47
119
|
endpoint?: string;
|
|
48
120
|
outputFormat?: string;
|
|
49
121
|
logger?: AzureTtsLogger;
|
|
122
|
+
onProgress?: (event: SynthesisProgressEvent) => void;
|
|
50
123
|
}
|
|
51
124
|
|
|
52
125
|
declare class AzureTtsError extends Error {
|
|
@@ -60,15 +133,88 @@ declare class AzureTtsSdkError extends AzureTtsError {
|
|
|
60
133
|
readonly errorDetails: string;
|
|
61
134
|
constructor(errorDetails: string);
|
|
62
135
|
}
|
|
136
|
+
/** Thrown when audio buffers require container re-multiplexing before they can be merged. */
|
|
137
|
+
declare class UnsupportedMergeFormatError extends Error {
|
|
138
|
+
readonly format: string;
|
|
139
|
+
constructor(format: string);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
interface SsmlValidationError {
|
|
143
|
+
readonly kind: "validation";
|
|
144
|
+
readonly message: string;
|
|
145
|
+
readonly diagnostics: readonly SsmlDiagnostic[];
|
|
146
|
+
}
|
|
147
|
+
declare class ChunkValidationError extends Error {
|
|
148
|
+
readonly kind: "chunk-validation";
|
|
149
|
+
readonly chunkIndex: number;
|
|
150
|
+
readonly diagnostics: readonly SsmlDiagnostic[];
|
|
151
|
+
constructor(chunkIndex: number, diagnostics: readonly SsmlDiagnostic[]);
|
|
152
|
+
}
|
|
153
|
+
type Result<T, E> = {
|
|
154
|
+
readonly ok: true;
|
|
155
|
+
readonly success: true;
|
|
156
|
+
readonly status: "success";
|
|
157
|
+
readonly value: T;
|
|
158
|
+
} | {
|
|
159
|
+
readonly ok: false;
|
|
160
|
+
readonly success: false;
|
|
161
|
+
readonly status: "validation-error" | "azure-api-error";
|
|
162
|
+
readonly error: E;
|
|
163
|
+
};
|
|
164
|
+
type SynthesisResult<T, E> = Result<T, E>;
|
|
165
|
+
type Success<T> = Extract<Result<T, never>, {
|
|
166
|
+
readonly ok: true;
|
|
167
|
+
}>;
|
|
168
|
+
type ValidationErrorResult = Extract<Result<never, SsmlValidationError>, {
|
|
169
|
+
readonly status: "validation-error";
|
|
170
|
+
}>;
|
|
171
|
+
type AzureApiErrorResult = Extract<Result<never, AzureTtsError>, {
|
|
172
|
+
readonly status: "azure-api-error";
|
|
173
|
+
}>;
|
|
174
|
+
type SsmlSynthesisSafeResult = Result<SsmlSynthesisResult, never> | Result<never, SsmlValidationError> | Result<never, AzureTtsError>;
|
|
175
|
+
interface SynthesizeSsmlSafeOptions extends AzureValidationOptions {
|
|
176
|
+
/** Optional nested form for callers that want to keep validation settings grouped. */
|
|
177
|
+
validation?: AzureValidationOptions;
|
|
178
|
+
}
|
|
179
|
+
interface SynthesizeSsmlChunksSafeOptions extends AzureValidationOptions {
|
|
180
|
+
validation?: AzureValidationOptions;
|
|
181
|
+
outputFormat?: string;
|
|
182
|
+
onProgress?: (event: SynthesisProgressEvent) => void;
|
|
183
|
+
}
|
|
184
|
+
type SsmlSynthesisChunksSafeResult = Result<SsmlSynthesisResult, never> | Result<never, ChunkValidationError> | Result<never, AzureTtsError>;
|
|
185
|
+
interface SynthesisClient {
|
|
186
|
+
synthesizeSsml(ssml: string): Promise<SsmlSynthesisResult>;
|
|
187
|
+
synthesizeChunks?(chunks: readonly (SsmlSynthesisChunk | string)[], options?: {
|
|
188
|
+
onProgress?: (event: SynthesisProgressEvent) => void;
|
|
189
|
+
}): Promise<SsmlSynthesisResult>;
|
|
190
|
+
}
|
|
191
|
+
/** Validates SSML before invoking Azure and converts validation/API failures to one result shape. */
|
|
192
|
+
declare function synthesizeSsmlSafe(client: Pick<AzureTtsClient, "synthesizeSsml"> | SynthesisClient, ssml: string, options?: SynthesizeSsmlSafeOptions): Promise<SsmlSynthesisSafeResult>;
|
|
193
|
+
/** Validates every chunk before synthesis and returns a chunk-addressable result. */
|
|
194
|
+
declare function synthesizeSsmlChunksSafe(client: Pick<AzureTtsClient, "synthesizeSsml" | "synthesizeChunks"> | SynthesisClient, chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
|
|
63
195
|
|
|
64
196
|
declare class AzureTtsClient {
|
|
65
197
|
#private;
|
|
66
198
|
constructor(options: AzureTtsClientOptions);
|
|
67
199
|
synthesize(ssml: string): Promise<ArrayBuffer>;
|
|
68
200
|
synthesizeSsml(ssml: string): Promise<SsmlSynthesisResult>;
|
|
201
|
+
synthesizeChunks(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeChunksOptions): Promise<SsmlSynthesisResult>;
|
|
202
|
+
synthesizeSsmlSafe(ssml: string, options?: SynthesizeSsmlSafeOptions): Promise<SsmlSynthesisSafeResult>;
|
|
203
|
+
synthesizeChunksSafe(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
|
|
204
|
+
synthesizeSsmlChunksSafe(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
|
|
69
205
|
}
|
|
70
206
|
|
|
207
|
+
type MergeAudioFormat = "wav" | "mp3" | "raw";
|
|
208
|
+
/** Returns whether the named output format can be safely concatenated without re-multiplexing. */
|
|
209
|
+
declare function resolveMergeAudioFormat(format: string): MergeAudioFormat | undefined;
|
|
210
|
+
declare function canMergeAudioFormat(format: string): boolean;
|
|
211
|
+
/** Merges audio buffers while preserving the invariants of supported containers. */
|
|
212
|
+
declare function mergeAudioBuffers(buffers: readonly ArrayBuffer[], format: string): ArrayBuffer;
|
|
71
213
|
declare function synthesizeSsml(ssml: string, config: TtsConfig): Promise<SsmlSynthesisResult>;
|
|
214
|
+
/** Synthesizes chunks sequentially, annotates synchronization events, and merges the results. */
|
|
215
|
+
declare function synthesizeSsmlChunks(chunks: readonly (SsmlSynthesisChunk | string)[], config: TtsConfig): Promise<SsmlSynthesisResult>;
|
|
216
|
+
/** Concatenates audio buffers and shifts all synchronization events by prior chunk durations. */
|
|
217
|
+
declare function mergeSynthesisResults(results: readonly SsmlSynthesisResult[], format?: string): SsmlSynthesisResult;
|
|
72
218
|
/** Backward-compatible audio-only synthesis helper. */
|
|
73
219
|
declare function synthesizeSpeech(ssml: string, config: TtsConfig): Promise<ArrayBuffer>;
|
|
74
220
|
|
|
@@ -81,6 +227,9 @@ interface AzureVoiceCatalogVoice {
|
|
|
81
227
|
locale: string;
|
|
82
228
|
secondaryLocales?: readonly string[];
|
|
83
229
|
styles?: readonly string[];
|
|
230
|
+
supportedTags?: readonly string[];
|
|
231
|
+
unsupportedTags?: readonly string[];
|
|
232
|
+
models?: readonly string[];
|
|
84
233
|
regions: readonly string[];
|
|
85
234
|
status?: "ga" | "preview" | "deprecated";
|
|
86
235
|
}
|
|
@@ -97,4 +246,4 @@ interface AzureVoiceCatalog {
|
|
|
97
246
|
/** Fetches and deduplicates the current Azure Speech voice catalog for one or more regions. */
|
|
98
247
|
declare function fetchAzureVoiceCatalog(options: FetchAzureVoiceCatalogOptions): Promise<AzureVoiceCatalog>;
|
|
99
248
|
|
|
100
|
-
export { AzureTtsClient, type AzureTtsClientOptions, AzureTtsError, type AzureTtsLogger, AzureTtsSdkError, type AzureVoiceCatalog, type AzureVoiceCatalogVoice, type FetchAzureVoiceCatalogOptions, type FetchedAzureVoiceCatalogMetadata, type SsmlSynthesisBookmark, type SsmlSynthesisBoundary, type SsmlSynthesisResult, type SsmlSynthesisViseme, type TtsConfig, fetchAzureVoiceCatalog, synthesizeSpeech, synthesizeSsml };
|
|
249
|
+
export { type AzureApiErrorResult, type SsmlValidationError as AzureSsmlValidationError, AzureTtsClient, type AzureTtsClientOptions, AzureTtsError, type AzureTtsLogger, AzureTtsSdkError, type AzureVoiceCatalog, type AzureVoiceCatalogVoice, ChunkValidationError, type FetchAzureVoiceCatalogOptions, type FetchedAzureVoiceCatalogMetadata, type MergeAudioFormat, type Result, type SsmlSynthesisBookmark, type SsmlSynthesisBoundary, type SsmlSynthesisChunk, type SsmlSynthesisChunksSafeResult, type SsmlSynthesisResult, type SsmlSynthesisSafeResult, type SsmlSynthesisViseme, type Success, type SynthesisChunkStatus, type SynthesisProgressEvent, type SynthesisResult, type SynthesizeChunksOptions, type SynthesizeSsmlChunksSafeOptions, type SynthesizeSsmlSafeOptions, type TtsConfig, UnsupportedMergeFormatError, type ValidationErrorResult, canMergeAudioFormat, fetchAzureVoiceCatalog, mergeAudioBuffers, mergeSynthesisResults, resolveMergeAudioFormat, synthesizeSpeech, synthesizeSsml, synthesizeSsmlChunks, synthesizeSsmlChunksSafe, synthesizeSsmlSafe };
|