ssml-builder-js 2.14.0 → 2.16.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/dist/core.d.mts CHANGED
@@ -188,6 +188,45 @@ interface BuildPartialSsmlOptions extends SsmlPartialContext {
188
188
  declare function buildPartialSsml(text: string, context?: SsmlPartialContext): string;
189
189
  declare function buildPartialSsml(options: BuildPartialSsmlOptions): string;
190
190
 
191
+ interface SsmlTextNodeContext {
192
+ parentTag: string;
193
+ parentAttributes: Record<string, string>;
194
+ ancestorTags: string[];
195
+ path: string[];
196
+ }
197
+ interface SsmlSourceTextSegment {
198
+ text: string;
199
+ range: {
200
+ start: number;
201
+ end: number;
202
+ };
203
+ sourceNodePath: string[];
204
+ }
205
+ interface SsmlSourceMarker {
206
+ kind: "mark" | "bookmark";
207
+ name: string;
208
+ originalTextRange: {
209
+ start: number;
210
+ end: number;
211
+ };
212
+ sourceNodePath: string[];
213
+ }
214
+ interface SsmlSourceMap {
215
+ text: string;
216
+ segments: SsmlSourceTextSegment[];
217
+ markers: SsmlSourceMarker[];
218
+ }
219
+ interface MapSsmlTextNodesOptions {
220
+ /** Element names whose text should not be passed to the transform. */
221
+ skipTags?: readonly string[];
222
+ /** Decides whether an individual text node should be passed to the transform. */
223
+ filter?: (context: SsmlTextNodeContext) => boolean;
224
+ }
225
+ /** Returns decoded source text segments and marker locations with indexed SSML paths. */
226
+ declare function getSsmlSourceMap(ssml: string): SsmlSourceMap;
227
+ declare function extractSsmlText(ssml: string): string[];
228
+ declare function mapSsmlTextNodes(ssml: string, transform: (text: string, context: SsmlTextNodeContext) => string | Promise<string>, options?: MapSsmlTextNodesOptions): Promise<string>;
229
+
191
230
  interface SsmlTextRange {
192
231
  start: number;
193
232
  end: number;
@@ -206,6 +245,10 @@ interface SsmlChunk {
206
245
  hasBackgroundAudio: boolean;
207
246
  /** Best-effort path to the first source element represented by this chunk. */
208
247
  sourceNodePath?: string[];
248
+ /** Exact source segments represented by this chunk, used for event mapping. */
249
+ sourceTextSegments?: SsmlSourceTextSegment[];
250
+ /** Exact marker locations represented by this chunk, used for bookmark mapping. */
251
+ sourceMarkers?: SsmlSourceMarker[];
209
252
  }
210
253
  interface SplitSsmlOptions {
211
254
  maxLength?: number;
@@ -228,21 +271,6 @@ interface SsmlValidationError {
228
271
  }
229
272
  declare function validateSsml(xmlString: string): SsmlValidationError | null;
230
273
 
231
- interface SsmlTextNodeContext {
232
- parentTag: string;
233
- parentAttributes: Record<string, string>;
234
- ancestorTags: string[];
235
- path: string[];
236
- }
237
- interface MapSsmlTextNodesOptions {
238
- /** Element names whose text should not be passed to the transform. */
239
- skipTags?: readonly string[];
240
- /** Decides whether an individual text node should be passed to the transform. */
241
- filter?: (context: SsmlTextNodeContext) => boolean;
242
- }
243
- declare function extractSsmlText(ssml: string): string[];
244
- declare function mapSsmlTextNodes(ssml: string, transform: (text: string, context: SsmlTextNodeContext) => string | Promise<string>, options?: MapSsmlTextNodesOptions): Promise<string>;
245
-
246
274
  interface ExtractSsmlTranslatableTextOptions {
247
275
  /** Element names whose descendants are not translation targets. */
248
276
  skipTags?: readonly string[];
@@ -295,7 +323,21 @@ interface SsmlDiagnostic {
295
323
  message: string;
296
324
  severity: SsmlDiagnosticSeverity;
297
325
  source: SsmlDiagnosticSource;
326
+ /** Structured location and source metadata; message parsing is not required. */
327
+ targetNodePath?: string[];
328
+ /** Alias retained for callers using the shorter terminology. */
329
+ nodePath?: string[];
330
+ range?: {
331
+ start: number;
332
+ end: number;
333
+ };
334
+ tagName?: string;
335
+ attributeName?: string;
336
+ voiceName?: string;
337
+ chunkIndex?: number;
298
338
  }
339
+ /** Generic name for a structured SSML diagnostic. */
340
+ type Diagnostic = SsmlDiagnostic;
299
341
  interface AzureVoiceDefinition {
300
342
  name: string;
301
343
  locale: string;
@@ -318,6 +360,9 @@ interface AzureValidationOptions {
318
360
  customVoiceDefinitions?: readonly AzureVoiceDefinition[];
319
361
  /** Host-side validation hook for URL-bearing SSML attributes. */
320
362
  urlValidator?: AzureUrlValidator;
363
+ /** Source path associated with a chunk being validated. */
364
+ sourceNodePath?: readonly string[];
365
+ chunkIndex?: number;
321
366
  /** Alias for urlValidator retained for applications that use the longer name. */
322
367
  customUrlValidator?: AzureUrlValidator;
323
368
  /** Controls deduplication, caching, cancellation, and concurrency for URL checks. */
@@ -327,6 +372,8 @@ interface AzureValidationOptions {
327
372
  urlValidatorTimeoutMs?: number;
328
373
  urlValidatorSignal?: AbortSignal;
329
374
  urlValidatorCache?: Map<string, AzureUrlValidationResult>;
375
+ /** Shared runner used by chunk orchestration to deduplicate in-flight checks. */
376
+ urlValidatorRunner?: AzureUrlValidator;
330
377
  languageAliases?: Record<string, string | readonly string[]>;
331
378
  maxLength?: number;
332
379
  /** Maximum XML element nesting depth, counting `<speak>` as depth 1. */
@@ -353,7 +400,8 @@ type AzureUrlValidationResult = boolean | {
353
400
  type AzureUrlValidator = (url: string, context: {
354
401
  tag: string;
355
402
  attribute: string;
356
- }) => AzureUrlValidationResult | Promise<AzureUrlValidationResult>;
403
+ sourceNodePath?: readonly string[];
404
+ }, signal: AbortSignal) => AzureUrlValidationResult | Promise<AzureUrlValidationResult>;
357
405
  interface AzureUrlValidationRunnerOptions {
358
406
  concurrency?: number;
359
407
  cache?: Map<string, AzureUrlValidationResult>;
@@ -380,6 +428,8 @@ declare function validateAzureSsml(ssml: string, options: AzureValidationOptions
380
428
  urlValidator?: AzureUrlValidator;
381
429
  customUrlValidator?: AzureUrlValidator;
382
430
  }): SsmlDiagnostic[] | Promise<SsmlDiagnostic[]>;
431
+ /** Validates multiple SSML chunks with one shared URL cache, semaphore, and in-flight pool. */
432
+ declare function validateAzureSsmlChunks(chunks: readonly string[], options?: AzureValidationOptions): Promise<SsmlDiagnostic[][]>;
383
433
 
384
434
  interface AzureVoiceCatalogMetadata {
385
435
  apiVersion: string;
@@ -393,4 +443,4 @@ declare function getAzureVoiceCatalogMetadata(): AzureVoiceCatalogMetadata;
393
443
  /** Alias for consumers that refer to the bundled catalog as the built-in catalog. */
394
444
  declare const getBuiltInVoiceCatalogMetadata: typeof getAzureVoiceCatalogMetadata;
395
445
 
396
- export { type AudioElement, type AzureDiagnosticCode, type AzureLanguageNormalizationOptions, type AzureSsmlValidationOptions, type AzureUrlValidationResult, type AzureUrlValidationRunnerOptions, type AzureUrlValidator, type AzureValidationOptions, type AzureVoiceCatalogMetadata, type AzureVoiceDefinition, type AzureVoiceMetadata, type BookmarkElement, type BreakElement, type BuildPartialSsmlOptions, type CustomElement, type EmphasisElement, type ExpressAsElement, type ExtractSsmlTranslatableTextOptions, type FromPlainTextToSsmlOptions, type LangElement, type LexiconElement, type MapSsmlTextNodesOptions, type MarkElement, type MsttsAudioDurationElement, type MsttsEmbeddingElement, type MsttsSilenceElement, type MsttsTtsEmbeddingElement, type MsttsVisemeElement, type MsttsVoiceConversionElement, type NamedElement, type ParagraphElement, type PhonemeElement, type ProsodyElement, type SayAsElement, type SentenceElement, type SplitSsmlOptions, type SsmlAttributeValue, type SsmlAttributes, type SsmlBackgroundAudioNode, type SsmlBreakElement, type SsmlChunk, type SsmlChunkContext, type SsmlDiagnostic, type SsmlDiagnosticSeverity, type SsmlDiagnosticSource, type SsmlDialogNode, type SsmlDocument, type SsmlElement, type SsmlElementBase, type SsmlEmbeddingNode, type SsmlExpressAsElement, type SsmlNode, type SsmlPartialContext, type SsmlPartialProsody, type SsmlPartialVoice, type SsmlPhonemeElement, type SsmlProsodyElement, type SsmlSayAsElement, type SsmlStructureIntegrityResult, type SsmlStructureMismatch, type SsmlText, type SsmlTextNodeContext, type SsmlTextRange, type SsmlTtsEmbeddingNode, type SsmlTurnNode, type SsmlValidationError, type SsmlVoiceConversionNode, type SsmlVoiceElement, type SubElement, type VoiceElement, type WordElement, areAzureLanguagesEquivalent, buildPartialSsml, buildSsml, createAzureUrlValidatorRunner, extractSsmlText, extractSsmlTranslatableText, fromPlainTextToSsml, getAzureVoiceCatalogMetadata, getBuiltInVoiceCatalogMetadata, isValidAzureAudioDuration, mapSsmlTextNodes, normalizeAzureLanguage, parseSsml, splitSsmlDocument, validateAzureSsml, validateSsml, validateSsmlStructureIntegrity };
446
+ export { type AudioElement, type AzureDiagnosticCode, type AzureLanguageNormalizationOptions, type AzureSsmlValidationOptions, type AzureUrlValidationResult, type AzureUrlValidationRunnerOptions, type AzureUrlValidator, type AzureValidationOptions, type AzureVoiceCatalogMetadata, type AzureVoiceDefinition, type AzureVoiceMetadata, type BookmarkElement, type BreakElement, type BuildPartialSsmlOptions, type CustomElement, type Diagnostic, type EmphasisElement, type ExpressAsElement, type ExtractSsmlTranslatableTextOptions, type FromPlainTextToSsmlOptions, type LangElement, type LexiconElement, type MapSsmlTextNodesOptions, type MarkElement, type MsttsAudioDurationElement, type MsttsEmbeddingElement, type MsttsSilenceElement, type MsttsTtsEmbeddingElement, type MsttsVisemeElement, type MsttsVoiceConversionElement, type NamedElement, type ParagraphElement, type PhonemeElement, type ProsodyElement, type SayAsElement, type SentenceElement, type SplitSsmlOptions, type SsmlAttributeValue, type SsmlAttributes, type SsmlBackgroundAudioNode, type SsmlBreakElement, type SsmlChunk, type SsmlChunkContext, type SsmlDiagnostic, type SsmlDiagnosticSeverity, type SsmlDiagnosticSource, type SsmlDialogNode, type SsmlDocument, type SsmlElement, type SsmlElementBase, type SsmlEmbeddingNode, type SsmlExpressAsElement, type SsmlNode, type SsmlPartialContext, type SsmlPartialProsody, type SsmlPartialVoice, type SsmlPhonemeElement, type SsmlProsodyElement, type SsmlSayAsElement, type SsmlSourceMap, type SsmlSourceMarker, type SsmlSourceTextSegment, type SsmlStructureIntegrityResult, type SsmlStructureMismatch, type SsmlText, type SsmlTextNodeContext, type SsmlTextRange, type SsmlTtsEmbeddingNode, type SsmlTurnNode, type SsmlValidationError, type SsmlVoiceConversionNode, type SsmlVoiceElement, type SubElement, type VoiceElement, type WordElement, areAzureLanguagesEquivalent, buildPartialSsml, buildSsml, createAzureUrlValidatorRunner, extractSsmlText, extractSsmlTranslatableText, fromPlainTextToSsml, getAzureVoiceCatalogMetadata, getBuiltInVoiceCatalogMetadata, getSsmlSourceMap, isValidAzureAudioDuration, mapSsmlTextNodes, normalizeAzureLanguage, parseSsml, splitSsmlDocument, validateAzureSsml, validateAzureSsmlChunks, validateSsml, validateSsmlStructureIntegrity };
package/dist/core.d.ts CHANGED
@@ -188,6 +188,45 @@ interface BuildPartialSsmlOptions extends SsmlPartialContext {
188
188
  declare function buildPartialSsml(text: string, context?: SsmlPartialContext): string;
189
189
  declare function buildPartialSsml(options: BuildPartialSsmlOptions): string;
190
190
 
191
+ interface SsmlTextNodeContext {
192
+ parentTag: string;
193
+ parentAttributes: Record<string, string>;
194
+ ancestorTags: string[];
195
+ path: string[];
196
+ }
197
+ interface SsmlSourceTextSegment {
198
+ text: string;
199
+ range: {
200
+ start: number;
201
+ end: number;
202
+ };
203
+ sourceNodePath: string[];
204
+ }
205
+ interface SsmlSourceMarker {
206
+ kind: "mark" | "bookmark";
207
+ name: string;
208
+ originalTextRange: {
209
+ start: number;
210
+ end: number;
211
+ };
212
+ sourceNodePath: string[];
213
+ }
214
+ interface SsmlSourceMap {
215
+ text: string;
216
+ segments: SsmlSourceTextSegment[];
217
+ markers: SsmlSourceMarker[];
218
+ }
219
+ interface MapSsmlTextNodesOptions {
220
+ /** Element names whose text should not be passed to the transform. */
221
+ skipTags?: readonly string[];
222
+ /** Decides whether an individual text node should be passed to the transform. */
223
+ filter?: (context: SsmlTextNodeContext) => boolean;
224
+ }
225
+ /** Returns decoded source text segments and marker locations with indexed SSML paths. */
226
+ declare function getSsmlSourceMap(ssml: string): SsmlSourceMap;
227
+ declare function extractSsmlText(ssml: string): string[];
228
+ declare function mapSsmlTextNodes(ssml: string, transform: (text: string, context: SsmlTextNodeContext) => string | Promise<string>, options?: MapSsmlTextNodesOptions): Promise<string>;
229
+
191
230
  interface SsmlTextRange {
192
231
  start: number;
193
232
  end: number;
@@ -206,6 +245,10 @@ interface SsmlChunk {
206
245
  hasBackgroundAudio: boolean;
207
246
  /** Best-effort path to the first source element represented by this chunk. */
208
247
  sourceNodePath?: string[];
248
+ /** Exact source segments represented by this chunk, used for event mapping. */
249
+ sourceTextSegments?: SsmlSourceTextSegment[];
250
+ /** Exact marker locations represented by this chunk, used for bookmark mapping. */
251
+ sourceMarkers?: SsmlSourceMarker[];
209
252
  }
210
253
  interface SplitSsmlOptions {
211
254
  maxLength?: number;
@@ -228,21 +271,6 @@ interface SsmlValidationError {
228
271
  }
229
272
  declare function validateSsml(xmlString: string): SsmlValidationError | null;
230
273
 
231
- interface SsmlTextNodeContext {
232
- parentTag: string;
233
- parentAttributes: Record<string, string>;
234
- ancestorTags: string[];
235
- path: string[];
236
- }
237
- interface MapSsmlTextNodesOptions {
238
- /** Element names whose text should not be passed to the transform. */
239
- skipTags?: readonly string[];
240
- /** Decides whether an individual text node should be passed to the transform. */
241
- filter?: (context: SsmlTextNodeContext) => boolean;
242
- }
243
- declare function extractSsmlText(ssml: string): string[];
244
- declare function mapSsmlTextNodes(ssml: string, transform: (text: string, context: SsmlTextNodeContext) => string | Promise<string>, options?: MapSsmlTextNodesOptions): Promise<string>;
245
-
246
274
  interface ExtractSsmlTranslatableTextOptions {
247
275
  /** Element names whose descendants are not translation targets. */
248
276
  skipTags?: readonly string[];
@@ -295,7 +323,21 @@ interface SsmlDiagnostic {
295
323
  message: string;
296
324
  severity: SsmlDiagnosticSeverity;
297
325
  source: SsmlDiagnosticSource;
326
+ /** Structured location and source metadata; message parsing is not required. */
327
+ targetNodePath?: string[];
328
+ /** Alias retained for callers using the shorter terminology. */
329
+ nodePath?: string[];
330
+ range?: {
331
+ start: number;
332
+ end: number;
333
+ };
334
+ tagName?: string;
335
+ attributeName?: string;
336
+ voiceName?: string;
337
+ chunkIndex?: number;
298
338
  }
339
+ /** Generic name for a structured SSML diagnostic. */
340
+ type Diagnostic = SsmlDiagnostic;
299
341
  interface AzureVoiceDefinition {
300
342
  name: string;
301
343
  locale: string;
@@ -318,6 +360,9 @@ interface AzureValidationOptions {
318
360
  customVoiceDefinitions?: readonly AzureVoiceDefinition[];
319
361
  /** Host-side validation hook for URL-bearing SSML attributes. */
320
362
  urlValidator?: AzureUrlValidator;
363
+ /** Source path associated with a chunk being validated. */
364
+ sourceNodePath?: readonly string[];
365
+ chunkIndex?: number;
321
366
  /** Alias for urlValidator retained for applications that use the longer name. */
322
367
  customUrlValidator?: AzureUrlValidator;
323
368
  /** Controls deduplication, caching, cancellation, and concurrency for URL checks. */
@@ -327,6 +372,8 @@ interface AzureValidationOptions {
327
372
  urlValidatorTimeoutMs?: number;
328
373
  urlValidatorSignal?: AbortSignal;
329
374
  urlValidatorCache?: Map<string, AzureUrlValidationResult>;
375
+ /** Shared runner used by chunk orchestration to deduplicate in-flight checks. */
376
+ urlValidatorRunner?: AzureUrlValidator;
330
377
  languageAliases?: Record<string, string | readonly string[]>;
331
378
  maxLength?: number;
332
379
  /** Maximum XML element nesting depth, counting `<speak>` as depth 1. */
@@ -353,7 +400,8 @@ type AzureUrlValidationResult = boolean | {
353
400
  type AzureUrlValidator = (url: string, context: {
354
401
  tag: string;
355
402
  attribute: string;
356
- }) => AzureUrlValidationResult | Promise<AzureUrlValidationResult>;
403
+ sourceNodePath?: readonly string[];
404
+ }, signal: AbortSignal) => AzureUrlValidationResult | Promise<AzureUrlValidationResult>;
357
405
  interface AzureUrlValidationRunnerOptions {
358
406
  concurrency?: number;
359
407
  cache?: Map<string, AzureUrlValidationResult>;
@@ -380,6 +428,8 @@ declare function validateAzureSsml(ssml: string, options: AzureValidationOptions
380
428
  urlValidator?: AzureUrlValidator;
381
429
  customUrlValidator?: AzureUrlValidator;
382
430
  }): SsmlDiagnostic[] | Promise<SsmlDiagnostic[]>;
431
+ /** Validates multiple SSML chunks with one shared URL cache, semaphore, and in-flight pool. */
432
+ declare function validateAzureSsmlChunks(chunks: readonly string[], options?: AzureValidationOptions): Promise<SsmlDiagnostic[][]>;
383
433
 
384
434
  interface AzureVoiceCatalogMetadata {
385
435
  apiVersion: string;
@@ -393,4 +443,4 @@ declare function getAzureVoiceCatalogMetadata(): AzureVoiceCatalogMetadata;
393
443
  /** Alias for consumers that refer to the bundled catalog as the built-in catalog. */
394
444
  declare const getBuiltInVoiceCatalogMetadata: typeof getAzureVoiceCatalogMetadata;
395
445
 
396
- export { type AudioElement, type AzureDiagnosticCode, type AzureLanguageNormalizationOptions, type AzureSsmlValidationOptions, type AzureUrlValidationResult, type AzureUrlValidationRunnerOptions, type AzureUrlValidator, type AzureValidationOptions, type AzureVoiceCatalogMetadata, type AzureVoiceDefinition, type AzureVoiceMetadata, type BookmarkElement, type BreakElement, type BuildPartialSsmlOptions, type CustomElement, type EmphasisElement, type ExpressAsElement, type ExtractSsmlTranslatableTextOptions, type FromPlainTextToSsmlOptions, type LangElement, type LexiconElement, type MapSsmlTextNodesOptions, type MarkElement, type MsttsAudioDurationElement, type MsttsEmbeddingElement, type MsttsSilenceElement, type MsttsTtsEmbeddingElement, type MsttsVisemeElement, type MsttsVoiceConversionElement, type NamedElement, type ParagraphElement, type PhonemeElement, type ProsodyElement, type SayAsElement, type SentenceElement, type SplitSsmlOptions, type SsmlAttributeValue, type SsmlAttributes, type SsmlBackgroundAudioNode, type SsmlBreakElement, type SsmlChunk, type SsmlChunkContext, type SsmlDiagnostic, type SsmlDiagnosticSeverity, type SsmlDiagnosticSource, type SsmlDialogNode, type SsmlDocument, type SsmlElement, type SsmlElementBase, type SsmlEmbeddingNode, type SsmlExpressAsElement, type SsmlNode, type SsmlPartialContext, type SsmlPartialProsody, type SsmlPartialVoice, type SsmlPhonemeElement, type SsmlProsodyElement, type SsmlSayAsElement, type SsmlStructureIntegrityResult, type SsmlStructureMismatch, type SsmlText, type SsmlTextNodeContext, type SsmlTextRange, type SsmlTtsEmbeddingNode, type SsmlTurnNode, type SsmlValidationError, type SsmlVoiceConversionNode, type SsmlVoiceElement, type SubElement, type VoiceElement, type WordElement, areAzureLanguagesEquivalent, buildPartialSsml, buildSsml, createAzureUrlValidatorRunner, extractSsmlText, extractSsmlTranslatableText, fromPlainTextToSsml, getAzureVoiceCatalogMetadata, getBuiltInVoiceCatalogMetadata, isValidAzureAudioDuration, mapSsmlTextNodes, normalizeAzureLanguage, parseSsml, splitSsmlDocument, validateAzureSsml, validateSsml, validateSsmlStructureIntegrity };
446
+ export { type AudioElement, type AzureDiagnosticCode, type AzureLanguageNormalizationOptions, type AzureSsmlValidationOptions, type AzureUrlValidationResult, type AzureUrlValidationRunnerOptions, type AzureUrlValidator, type AzureValidationOptions, type AzureVoiceCatalogMetadata, type AzureVoiceDefinition, type AzureVoiceMetadata, type BookmarkElement, type BreakElement, type BuildPartialSsmlOptions, type CustomElement, type Diagnostic, type EmphasisElement, type ExpressAsElement, type ExtractSsmlTranslatableTextOptions, type FromPlainTextToSsmlOptions, type LangElement, type LexiconElement, type MapSsmlTextNodesOptions, type MarkElement, type MsttsAudioDurationElement, type MsttsEmbeddingElement, type MsttsSilenceElement, type MsttsTtsEmbeddingElement, type MsttsVisemeElement, type MsttsVoiceConversionElement, type NamedElement, type ParagraphElement, type PhonemeElement, type ProsodyElement, type SayAsElement, type SentenceElement, type SplitSsmlOptions, type SsmlAttributeValue, type SsmlAttributes, type SsmlBackgroundAudioNode, type SsmlBreakElement, type SsmlChunk, type SsmlChunkContext, type SsmlDiagnostic, type SsmlDiagnosticSeverity, type SsmlDiagnosticSource, type SsmlDialogNode, type SsmlDocument, type SsmlElement, type SsmlElementBase, type SsmlEmbeddingNode, type SsmlExpressAsElement, type SsmlNode, type SsmlPartialContext, type SsmlPartialProsody, type SsmlPartialVoice, type SsmlPhonemeElement, type SsmlProsodyElement, type SsmlSayAsElement, type SsmlSourceMap, type SsmlSourceMarker, type SsmlSourceTextSegment, type SsmlStructureIntegrityResult, type SsmlStructureMismatch, type SsmlText, type SsmlTextNodeContext, type SsmlTextRange, type SsmlTtsEmbeddingNode, type SsmlTurnNode, type SsmlValidationError, type SsmlVoiceConversionNode, type SsmlVoiceElement, type SubElement, type VoiceElement, type WordElement, areAzureLanguagesEquivalent, buildPartialSsml, buildSsml, createAzureUrlValidatorRunner, extractSsmlText, extractSsmlTranslatableText, fromPlainTextToSsml, getAzureVoiceCatalogMetadata, getBuiltInVoiceCatalogMetadata, getSsmlSourceMap, isValidAzureAudioDuration, mapSsmlTextNodes, normalizeAzureLanguage, parseSsml, splitSsmlDocument, validateAzureSsml, validateAzureSsmlChunks, validateSsml, validateSsmlStructureIntegrity };