@ssml-builder-js/azure-tts-client 2.18.0 → 2.19.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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @ssml-builder-js/azure-tts-client
2
2
 
3
+ ## 2.19.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add strict resume fingerprints and complete-chunk guards, serializable execution errors, absolute job deadlines, Ogg/WebM/SILK/Opus validation, and transparent Safe API defaults. The visual editor now normalizes SSML tag aliases and surfaces neural-HD tag restrictions.
8
+
9
+ ### Patch Changes
10
+
11
+ - @ssml-builder-js/ssml-core@2.19.0
12
+
3
13
  ## 2.18.0
4
14
 
5
15
  ### Minor Changes
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { SsmlDiagnostic, AzureValidationOptions, SsmlTextRange, SsmlSourceTextSegment, SsmlSourceMarker } from '@ssml-builder-js/ssml-core';
1
+ import { SsmlTextRange, SsmlSourceTextSegment, SsmlSourceMarker, SsmlDiagnostic, AzureValidationOptions } from '@ssml-builder-js/ssml-core';
2
2
  import * as SpeechSDK from 'microsoft-cognitiveservices-speech-sdk';
3
3
 
4
4
  declare const DEFAULT_OUTPUT_FORMAT = "audio-16khz-128kbitrate-mono-mp3";
@@ -46,7 +46,19 @@ declare const OUTPUT_FORMATS: {
46
46
  type AzureTtsOutputFormat = keyof typeof OUTPUT_FORMATS;
47
47
  declare function resolveMimeType(outputFormat: string): string;
48
48
 
49
- type SynthesisErrorKind = "validation-error" | "azure-api-error" | "merge-error" | "audio-format-mismatch" | "unsupported-format-error" | "cancelled" | "timeout";
49
+ type SynthesisErrorKind = "validation-error" | "azure-api-error" | "merge-error" | "audio-format-mismatch" | "unsupported-format-error" | "cancelled" | "timeout" | "incomplete-chunk-set";
50
+ type SerializedChunkErrorCode = "VALIDATION_ERROR" | "AZURE_API_ERROR" | "TIMEOUT" | "CANCELLED" | "MERGE_ERROR" | "FORMAT_MISMATCH";
51
+ interface SerializedChunkError {
52
+ code: SerializedChunkErrorCode;
53
+ phase: "url-validation" | "synthesis" | "merge";
54
+ message: string;
55
+ isOriginalFailure: boolean;
56
+ isRetryable: boolean;
57
+ httpStatus?: number;
58
+ details?: Record<string, unknown>;
59
+ }
60
+ /** Backward-compatible name used by persisted execution-state consumers. */
61
+ type SerializedExecutionError = SerializedChunkError;
50
62
  declare class AzureTtsError extends Error {
51
63
  readonly kind: "azure-api-error";
52
64
  readonly status: number;
@@ -70,6 +82,12 @@ declare class SynthesisTimeoutError extends Error {
70
82
  readonly kind: "timeout";
71
83
  constructor(message: string);
72
84
  }
85
+ declare class IncompleteChunkSetError extends Error {
86
+ readonly kind: "incomplete-chunk-set";
87
+ readonly totalChunks: number;
88
+ readonly missingChunkIndices: readonly number[];
89
+ constructor(totalChunks: number, missingChunkIndices: readonly number[]);
90
+ }
73
91
  declare class MergeError extends Error {
74
92
  readonly kind: "merge-error";
75
93
  readonly cause: unknown;
@@ -87,106 +105,8 @@ declare class UnsupportedMergeFormatError extends Error {
87
105
  readonly format: string;
88
106
  constructor(format: string);
89
107
  }
90
- type AzureTtsSynthesisError = AzureTtsError | MergeError | AudioFormatMismatchError | UnsupportedMergeFormatError | SynthesisCancelledError | SynthesisTimeoutError;
91
-
92
- declare class AzureTtsClient {
93
- #private;
94
- constructor(options: AzureTtsClientOptions);
95
- synthesize(ssml: string): Promise<ArrayBuffer>;
96
- synthesizeSsml(ssml: string, options?: Partial<TtsConfig>): Promise<SsmlSynthesisResult>;
97
- synthesizeChunks(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeChunksOptions): Promise<SsmlSynthesisResult>;
98
- synthesizeSsmlSafe(ssml: string, options?: SynthesizeSsmlSafeOptions): Promise<SsmlSynthesisSafeResult>;
99
- synthesizeChunksSafe(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
100
- synthesizeSsmlChunksSafe(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
101
- }
102
-
103
- interface SsmlValidationError {
104
- readonly kind: "validation-error";
105
- readonly message: string;
106
- readonly diagnostics: readonly SsmlDiagnostic[];
107
- }
108
- type SsmlSynthesisError = SsmlValidationError | AzureTtsSynthesisError;
109
- declare class ChunkValidationError extends Error {
110
- readonly kind: "validation-error";
111
- readonly chunkIndex: number;
112
- readonly diagnostics: readonly SsmlDiagnostic[];
113
- constructor(chunkIndex: number, diagnostics: readonly SsmlDiagnostic[]);
114
- }
115
- interface ChunkDiagnostics {
116
- readonly chunkIndex: number;
117
- readonly diagnostics: readonly SsmlDiagnostic[];
118
- }
119
- declare class BatchChunkValidationError extends ChunkValidationError {
120
- readonly chunkDiagnostics: readonly ChunkDiagnostics[];
121
- readonly totalErrorCount: number;
122
- readonly errorCount: number;
123
- readonly totalErrors: number;
124
- constructor(chunkDiagnostics: readonly ChunkDiagnostics[]);
125
- }
126
- type Result<T, E> = {
127
- readonly ok: true;
128
- readonly success: true;
129
- readonly status: "success";
130
- readonly value: T;
131
- } | (E extends {
132
- readonly kind: infer Kind extends SynthesisErrorKind;
133
- } ? {
134
- readonly ok: false;
135
- readonly success: false;
136
- readonly status: Kind;
137
- readonly error: E;
138
- readonly partialResult?: PartialChunkSynthesisResult;
139
- } : {
140
- readonly ok: false;
141
- readonly success: false;
142
- readonly status: SynthesisErrorKind;
143
- readonly error: E;
144
- readonly partialResult?: PartialChunkSynthesisResult;
145
- });
146
- type SynthesisResult<T, E> = Result<T, E>;
147
- type Success<T> = Extract<Result<T, never>, {
148
- readonly ok: true;
149
- }>;
150
- type ValidationErrorResult = Extract<Result<never, SsmlValidationError>, {
151
- readonly status: "validation-error";
152
- }>;
153
- type AzureApiErrorResult = Extract<Result<never, AzureTtsError>, {
154
- readonly status: "azure-api-error";
155
- }>;
156
- type SsmlSynthesisSafeResult = Result<SsmlSynthesisResult, never> | Result<never, SsmlValidationError> | Result<never, SsmlSynthesisError>;
157
- interface SynthesizeSsmlSafeOptions extends AzureValidationOptions {
158
- /** Optional nested form for callers that want to keep validation settings grouped. */
159
- validation?: AzureValidationOptions;
160
- signal?: AbortSignal;
161
- timeouts?: SynthesisTimeouts;
162
- }
163
- interface SynthesizeSsmlChunksSafeOptions extends AzureValidationOptions {
164
- validation?: AzureValidationOptions;
165
- outputFormat?: string;
166
- signal?: AbortSignal;
167
- timeoutMs?: number;
168
- timeouts?: SynthesisTimeouts;
169
- sourceNodePath?: string[];
170
- onProgress?: (event: SynthesisProgressEvent) => void;
171
- concurrency?: number;
172
- retryOptions?: RetryOptions;
173
- cancelOnFailure?: boolean;
174
- resumeChunks?: readonly SynthesizedChunk[];
175
- resumeChunkIndices?: readonly number[];
176
- customMerger?: CustomAudioMerger;
177
- outputMimeType?: string;
178
- postMergeValidator?: PostMergeValidator;
179
- resumeValidation?: ResumeValidationMode;
180
- }
181
- type SsmlSynthesisChunksSafeResult = Result<SsmlSynthesisResult, never> | Result<never, ChunkValidationError> | Result<never, BatchChunkValidationError> | Result<never, SsmlSynthesisError | ChunkValidationError>;
182
- interface SynthesisClient {
183
- synthesizeSsml(ssml: string, options?: Partial<SynthesizeChunksOptions>): Promise<SsmlSynthesisResult>;
184
- synthesizeChunks?(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeChunksOptions): Promise<SsmlSynthesisResult>;
185
- }
186
- /** Validates SSML before invoking Azure and converts validation/API failures to one result shape. */
187
- declare function synthesizeSsmlSafe(client: Pick<AzureTtsClient, "synthesizeSsml"> | SynthesisClient, ssml: string, options?: SynthesizeSsmlSafeOptions): Promise<SsmlSynthesisSafeResult>;
188
- /** Validates every chunk before synthesis and returns a chunk-addressable result. */
189
- declare function synthesizeSsmlChunksSafe(client: Pick<AzureTtsClient, "synthesizeSsml" | "synthesizeChunks"> | SynthesisClient, chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
108
+ type AzureTtsSynthesisError = AzureTtsError | MergeError | AudioFormatMismatchError | UnsupportedMergeFormatError | SynthesisCancelledError | SynthesisTimeoutError | IncompleteChunkSetError;
109
+ declare function serializeChunkError(error: unknown, phase: SerializedChunkError["phase"], isOriginalFailure: boolean): SerializedChunkError;
190
110
 
191
111
  interface TtsConfig {
192
112
  signal?: AbortSignal;
@@ -196,6 +116,8 @@ interface TtsConfig {
196
116
  subscriptionKey: string;
197
117
  region: string;
198
118
  outputFormat?: string;
119
+ customHeaders?: Readonly<Record<string, string>>;
120
+ fingerprintSchemaVersion?: string;
199
121
  /** Original plain-text range represented by this synthesis request. */
200
122
  sourceTextRange?: {
201
123
  start: number;
@@ -331,6 +253,8 @@ interface SsmlSynthesisChunk {
331
253
  interface SynthesizeChunksOptions {
332
254
  onProgress?: (event: SynthesisProgressEvent) => void;
333
255
  outputFormat?: AzureTtsOutputFormat | string;
256
+ customHeaders?: Readonly<Record<string, string>>;
257
+ fingerprintSchemaVersion?: string;
334
258
  signal?: AbortSignal;
335
259
  timeoutMs?: number;
336
260
  timeouts?: SynthesisTimeouts;
@@ -362,7 +286,7 @@ type ChunkExecutionStatus = "succeeded" | "failed" | "cancelled" | "pending";
362
286
  interface ChunkExecutionState {
363
287
  chunkIndex: number;
364
288
  status: ChunkExecutionStatus;
365
- error?: AzureTtsError | SsmlValidationError;
289
+ error?: SerializedChunkError;
366
290
  isOriginalFailure?: boolean;
367
291
  canResume: boolean;
368
292
  result?: SsmlSynthesisResult;
@@ -406,6 +330,8 @@ interface AzureTtsClientOptions {
406
330
  region: string;
407
331
  endpoint?: string;
408
332
  outputFormat?: string;
333
+ customHeaders?: Readonly<Record<string, string>>;
334
+ fingerprintSchemaVersion?: string;
409
335
  logger?: AzureTtsLogger;
410
336
  onProgress?: (event: SynthesisProgressEvent) => void;
411
337
  concurrency?: number;
@@ -417,6 +343,120 @@ interface AzureTtsClientOptions {
417
343
  resumeValidation?: ResumeValidationMode;
418
344
  }
419
345
 
346
+ /** Coordinates one absolute deadline across validation, synthesis, retries, and merging. */
347
+ declare class DeadlineController {
348
+ #private;
349
+ readonly deadlineAtMs: number | undefined;
350
+ readonly signal: AbortSignal;
351
+ constructor(totalJobMs: number | undefined, parent?: AbortSignal);
352
+ get timedOut(): boolean;
353
+ get remainingMs(): number;
354
+ throwIfExpired(): void;
355
+ abort(): void;
356
+ dispose(): void;
357
+ }
358
+
359
+ interface SsmlValidationError {
360
+ readonly kind: "validation-error";
361
+ readonly message: string;
362
+ readonly diagnostics: readonly SsmlDiagnostic[];
363
+ }
364
+ type SsmlSynthesisError = SsmlValidationError | AzureTtsSynthesisError;
365
+ declare class ChunkValidationError extends Error {
366
+ readonly kind: "validation-error";
367
+ readonly chunkIndex: number;
368
+ readonly diagnostics: readonly SsmlDiagnostic[];
369
+ constructor(chunkIndex: number, diagnostics: readonly SsmlDiagnostic[]);
370
+ }
371
+ interface ChunkDiagnostics {
372
+ readonly chunkIndex: number;
373
+ readonly diagnostics: readonly SsmlDiagnostic[];
374
+ }
375
+ declare class BatchChunkValidationError extends ChunkValidationError {
376
+ readonly chunkDiagnostics: readonly ChunkDiagnostics[];
377
+ readonly totalErrorCount: number;
378
+ readonly errorCount: number;
379
+ readonly totalErrors: number;
380
+ constructor(chunkDiagnostics: readonly ChunkDiagnostics[]);
381
+ }
382
+ type Result<T, E> = {
383
+ readonly ok: true;
384
+ readonly success: true;
385
+ readonly status: "success";
386
+ readonly value: T;
387
+ } | (E extends {
388
+ readonly kind: infer Kind extends SynthesisErrorKind;
389
+ } ? {
390
+ readonly ok: false;
391
+ readonly success: false;
392
+ readonly status: Kind;
393
+ readonly error: E;
394
+ readonly partialResult?: PartialChunkSynthesisResult;
395
+ } : {
396
+ readonly ok: false;
397
+ readonly success: false;
398
+ readonly status: SynthesisErrorKind;
399
+ readonly error: E;
400
+ readonly partialResult?: PartialChunkSynthesisResult;
401
+ });
402
+ type SynthesisResult<T, E> = Result<T, E>;
403
+ type Success<T> = Extract<Result<T, never>, {
404
+ readonly ok: true;
405
+ }>;
406
+ type ValidationErrorResult = Extract<Result<never, SsmlValidationError>, {
407
+ readonly status: "validation-error";
408
+ }>;
409
+ type AzureApiErrorResult = Extract<Result<never, AzureTtsError>, {
410
+ readonly status: "azure-api-error";
411
+ }>;
412
+ type SsmlSynthesisSafeResult = Result<SsmlSynthesisResult, never> | Result<never, SsmlValidationError> | Result<never, SsmlSynthesisError>;
413
+ interface SynthesizeSsmlSafeOptions extends AzureValidationOptions {
414
+ /** Optional nested form for callers that want to keep validation settings grouped. */
415
+ validation?: AzureValidationOptions;
416
+ signal?: AbortSignal;
417
+ timeouts?: SynthesisTimeouts;
418
+ }
419
+ interface SynthesizeSsmlChunksSafeOptions extends AzureValidationOptions {
420
+ validation?: AzureValidationOptions;
421
+ outputFormat?: string;
422
+ customHeaders?: Readonly<Record<string, string>>;
423
+ fingerprintSchemaVersion?: string;
424
+ signal?: AbortSignal;
425
+ timeoutMs?: number;
426
+ timeouts?: SynthesisTimeouts;
427
+ sourceNodePath?: string[];
428
+ onProgress?: (event: SynthesisProgressEvent) => void;
429
+ concurrency?: number;
430
+ retryOptions?: RetryOptions;
431
+ cancelOnFailure?: boolean;
432
+ resumeChunks?: readonly SynthesizedChunk[];
433
+ resumeChunkIndices?: readonly number[];
434
+ customMerger?: CustomAudioMerger;
435
+ outputMimeType?: string;
436
+ postMergeValidator?: PostMergeValidator;
437
+ resumeValidation?: ResumeValidationMode;
438
+ }
439
+ type SsmlSynthesisChunksSafeResult = Result<SsmlSynthesisResult, never> | Result<never, ChunkValidationError> | Result<never, BatchChunkValidationError> | Result<never, SsmlSynthesisError | ChunkValidationError>;
440
+ interface SynthesisClient {
441
+ synthesizeSsml(ssml: string, options?: Partial<SynthesizeChunksOptions>): Promise<SsmlSynthesisResult>;
442
+ synthesizeChunks?(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeChunksOptions): Promise<SsmlSynthesisResult>;
443
+ }
444
+ /** Validates SSML before invoking Azure and converts validation/API failures to one result shape. */
445
+ declare function synthesizeSsmlSafe(client: Pick<AzureTtsClient, "synthesizeSsml"> | SynthesisClient, ssml: string, options?: SynthesizeSsmlSafeOptions): Promise<SsmlSynthesisSafeResult>;
446
+ /** Validates every chunk before synthesis and returns a chunk-addressable result. */
447
+ declare function synthesizeSsmlChunksSafe(client: Pick<AzureTtsClient, "synthesizeSsml" | "synthesizeChunks"> | SynthesisClient, chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
448
+
449
+ declare class AzureTtsClient {
450
+ #private;
451
+ constructor(options: AzureTtsClientOptions);
452
+ synthesize(ssml: string): Promise<ArrayBuffer>;
453
+ synthesizeSsml(ssml: string, options?: Partial<TtsConfig>): Promise<SsmlSynthesisResult>;
454
+ synthesizeChunks(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeChunksOptions): Promise<SsmlSynthesisResult>;
455
+ synthesizeSsmlSafe(ssml: string, options?: SynthesizeSsmlSafeOptions): Promise<SsmlSynthesisSafeResult>;
456
+ synthesizeChunksSafe(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
457
+ synthesizeSsmlChunksSafe(chunks: readonly (SsmlSynthesisChunk | string)[], options?: SynthesizeSsmlChunksSafeOptions): Promise<SsmlSynthesisChunksSafeResult>;
458
+ }
459
+
420
460
  type MergeAudioFormat = "wav" | "mp3" | "raw";
421
461
  interface MergeAudioOptions {
422
462
  format: AzureTtsOutputFormat;
@@ -429,10 +469,21 @@ type InputAudioSpecs = AudioSpecification[];
429
469
  * The complete SSML is included so changes to voice, language, prosody, or text
430
470
  * invalidate a cached result even when those settings are nested in the markup.
431
471
  */
432
- declare function computeChunkFingerprint(ssml: string, outputFormat?: string): string;
472
+ interface ChunkFingerprintOptions {
473
+ outputFormat?: string;
474
+ region?: string;
475
+ endpoint?: string;
476
+ voice?: string;
477
+ lang?: string;
478
+ schemaVersion?: string;
479
+ fingerprintSchemaVersion?: string;
480
+ customHeaders?: Readonly<Record<string, string>>;
481
+ }
482
+ declare function computeChunkFingerprint(ssml: string, outputFormat?: string, options?: Omit<ChunkFingerprintOptions, "outputFormat">): string;
433
483
  interface MergeSynthesisOptions extends MergeAudioOptions {
434
484
  customMerger?: CustomAudioMerger;
435
485
  postMergeValidator?: PostMergeValidator;
486
+ deadline?: DeadlineController;
436
487
  }
437
488
  type AsyncMergeSynthesisOptions = MergeSynthesisOptions & {
438
489
  customMerger: NonNullable<MergeSynthesisOptions["customMerger"]>;
@@ -484,4 +535,4 @@ interface AzureVoiceCatalog {
484
535
  /** Fetches and deduplicates the current Azure Speech voice catalog for one or more regions. */
485
536
  declare function fetchAzureVoiceCatalog(options: FetchAzureVoiceCatalogOptions): Promise<AzureVoiceCatalog>;
486
537
 
487
- export { AudioFormatMismatchError, type AudioSpecification, type AzureApiErrorResult, type SsmlValidationError as AzureSsmlValidationError, AzureTtsClient, type AzureTtsClientOptions, AzureTtsError, type AzureTtsLogger, type AzureTtsOutputFormat, AzureTtsSdkError, type AzureTtsSynthesisError, type AzureVoiceCatalog, type AzureVoiceCatalogVoice, BatchChunkValidationError, type ChunkDiagnostics, type ChunkExecutionState, type ChunkExecutionStatus, ChunkValidationError, type CustomAudioMerger, type CustomMergerContext, DEFAULT_OUTPUT_FORMAT, type FetchAzureVoiceCatalogOptions, type FetchedAzureVoiceCatalogMetadata, type InputAudioSpecs, type MappingStatus, type MergeAudioFormat, type MergeAudioOptions, MergeError, type MergeSynthesisOptions, type MergedSynthesisResult, type PartialChunkSynthesisResult, type PartialSynthesisResult, type PostMergeValidator, type Result, type ResumeValidationMode, type RetryOptions, type SsmlSynthesisBookmark, type SsmlSynthesisBoundary, type SsmlSynthesisChunk, type SsmlSynthesisChunksSafeResult, type SsmlSynthesisError, type SsmlSynthesisResult, type SsmlSynthesisSafeResult, type SsmlSynthesisViseme, type Success, SynthesisCancelledError, type SynthesisChunkStatus, type SynthesisErrorKind, type SynthesisProgressEvent, type SynthesisResult, SynthesisTimeoutError, type SynthesisTimeouts, type SynthesizeChunksOptions, type SynthesizeSsmlChunksSafeOptions, type SynthesizeSsmlSafeOptions, type SynthesizedChunk, type TtsConfig, UnsupportedMergeFormatError, type ValidationErrorResult, canMergeAudioFormat, computeChunkFingerprint, fetchAzureVoiceCatalog, getRetryAfterDelayMs, inspectAudioSpecification, mergeAudioBuffers, mergeSynthesisResults, resolveMergeAudioFormat, resolveMimeType, synthesizeSpeech, synthesizeSsml, synthesizeSsmlChunks, synthesizeSsmlChunksSafe, synthesizeSsmlSafe };
538
+ export { AudioFormatMismatchError, type AudioSpecification, type AzureApiErrorResult, type SsmlValidationError as AzureSsmlValidationError, AzureTtsClient, type AzureTtsClientOptions, AzureTtsError, type AzureTtsLogger, type AzureTtsOutputFormat, AzureTtsSdkError, type AzureTtsSynthesisError, type AzureVoiceCatalog, type AzureVoiceCatalogVoice, BatchChunkValidationError, type ChunkDiagnostics, type ChunkExecutionState, type ChunkExecutionStatus, type ChunkFingerprintOptions, ChunkValidationError, type CustomAudioMerger, type CustomMergerContext, DEFAULT_OUTPUT_FORMAT, DeadlineController, type FetchAzureVoiceCatalogOptions, type FetchedAzureVoiceCatalogMetadata, IncompleteChunkSetError, type InputAudioSpecs, type MappingStatus, type MergeAudioFormat, type MergeAudioOptions, MergeError, type MergeSynthesisOptions, type MergedSynthesisResult, type PartialChunkSynthesisResult, type PartialSynthesisResult, type PostMergeValidator, type Result, type ResumeValidationMode, type RetryOptions, type SerializedChunkError, type SerializedChunkErrorCode, type SerializedExecutionError, type SsmlSynthesisBookmark, type SsmlSynthesisBoundary, type SsmlSynthesisChunk, type SsmlSynthesisChunksSafeResult, type SsmlSynthesisError, type SsmlSynthesisResult, type SsmlSynthesisSafeResult, type SsmlSynthesisViseme, type Success, SynthesisCancelledError, type SynthesisChunkStatus, type SynthesisErrorKind, type SynthesisProgressEvent, type SynthesisResult, SynthesisTimeoutError, type SynthesisTimeouts, type SynthesizeChunksOptions, type SynthesizeSsmlChunksSafeOptions, type SynthesizeSsmlSafeOptions, type SynthesizedChunk, type TtsConfig, UnsupportedMergeFormatError, type ValidationErrorResult, canMergeAudioFormat, computeChunkFingerprint, fetchAzureVoiceCatalog, getRetryAfterDelayMs, inspectAudioSpecification, mergeAudioBuffers, mergeSynthesisResults, resolveMergeAudioFormat, resolveMimeType, serializeChunkError, synthesizeSpeech, synthesizeSsml, synthesizeSsmlChunks, synthesizeSsmlChunksSafe, synthesizeSsmlSafe };