@speech-sdk/core 0.8.1-alpha → 0.8.1

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.
Files changed (159) hide show
  1. package/README.md +63 -1
  2. package/dist/audio-decode.d.ts +7 -0
  3. package/dist/audio-decode.d.ts.map +1 -0
  4. package/dist/audio-decode.js +109 -0
  5. package/dist/audio-decode.js.map +1 -0
  6. package/dist/audio-duration.d.ts.map +1 -1
  7. package/dist/audio-duration.js +3 -12
  8. package/dist/audio-duration.js.map +1 -1
  9. package/dist/audio-output.d.ts +39 -0
  10. package/dist/audio-output.d.ts.map +1 -0
  11. package/dist/audio-output.js +111 -0
  12. package/dist/audio-output.js.map +1 -0
  13. package/dist/audio-utils.d.ts +2 -0
  14. package/dist/audio-utils.d.ts.map +1 -1
  15. package/dist/audio-utils.js +55 -1
  16. package/dist/audio-utils.js.map +1 -1
  17. package/dist/conversation/pcm-concat.d.ts +0 -1
  18. package/dist/conversation/pcm-concat.d.ts.map +1 -1
  19. package/dist/conversation/pcm-concat.js +6 -143
  20. package/dist/conversation/pcm-concat.js.map +1 -1
  21. package/dist/conversation/stitch.d.ts +4 -0
  22. package/dist/conversation/stitch.d.ts.map +1 -1
  23. package/dist/conversation/stitch.js +30 -15
  24. package/dist/conversation/stitch.js.map +1 -1
  25. package/dist/conversation/types.d.ts +6 -2
  26. package/dist/conversation/types.d.ts.map +1 -1
  27. package/dist/encoders/mp3.d.ts +6 -0
  28. package/dist/encoders/mp3.d.ts.map +1 -0
  29. package/dist/encoders/mp3.js +54 -0
  30. package/dist/encoders/mp3.js.map +1 -0
  31. package/dist/errors.d.ts +15 -1
  32. package/dist/errors.d.ts.map +1 -1
  33. package/dist/errors.js +37 -1
  34. package/dist/errors.js.map +1 -1
  35. package/dist/generate-conversation.d.ts +2 -2
  36. package/dist/generate-conversation.d.ts.map +1 -1
  37. package/dist/generate-conversation.js +106 -44
  38. package/dist/generate-conversation.js.map +1 -1
  39. package/dist/generate-speech.d.ts +6 -2
  40. package/dist/generate-speech.d.ts.map +1 -1
  41. package/dist/generate-speech.js +130 -60
  42. package/dist/generate-speech.js.map +1 -1
  43. package/dist/index.d.ts +4 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +2 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/pronunciations/errors.d.ts +5 -0
  48. package/dist/pronunciations/errors.d.ts.map +1 -0
  49. package/dist/pronunciations/errors.js +8 -0
  50. package/dist/pronunciations/errors.js.map +1 -0
  51. package/dist/pronunciations/index.d.ts +5 -0
  52. package/dist/pronunciations/index.d.ts.map +1 -0
  53. package/dist/pronunciations/index.js +5 -0
  54. package/dist/pronunciations/index.js.map +1 -0
  55. package/dist/pronunciations/inverse-align.d.ts +4 -0
  56. package/dist/pronunciations/inverse-align.d.ts.map +1 -0
  57. package/dist/pronunciations/inverse-align.js +54 -0
  58. package/dist/pronunciations/inverse-align.js.map +1 -0
  59. package/dist/pronunciations/merge.d.ts +4 -0
  60. package/dist/pronunciations/merge.d.ts.map +1 -0
  61. package/dist/pronunciations/merge.js +13 -0
  62. package/dist/pronunciations/merge.js.map +1 -0
  63. package/dist/pronunciations/substitute.d.ts +6 -0
  64. package/dist/pronunciations/substitute.d.ts.map +1 -0
  65. package/dist/pronunciations/substitute.js +67 -0
  66. package/dist/pronunciations/substitute.js.map +1 -0
  67. package/dist/pronunciations/types.d.ts +18 -0
  68. package/dist/pronunciations/types.d.ts.map +1 -0
  69. package/dist/pronunciations/types.js +2 -0
  70. package/dist/pronunciations/types.js.map +1 -0
  71. package/dist/pronunciations/validate.d.ts +3 -0
  72. package/dist/pronunciations/validate.d.ts.map +1 -0
  73. package/dist/pronunciations/validate.js +26 -0
  74. package/dist/pronunciations/validate.js.map +1 -0
  75. package/dist/provider-utils.d.ts +1 -0
  76. package/dist/provider-utils.d.ts.map +1 -1
  77. package/dist/provider-utils.js +26 -0
  78. package/dist/provider-utils.js.map +1 -1
  79. package/dist/providers/cartesia/index.d.ts +22 -0
  80. package/dist/providers/cartesia/index.d.ts.map +1 -1
  81. package/dist/providers/cartesia/index.js +48 -0
  82. package/dist/providers/cartesia/index.js.map +1 -1
  83. package/dist/providers/deepgram/index.d.ts +16 -0
  84. package/dist/providers/deepgram/index.d.ts.map +1 -1
  85. package/dist/providers/deepgram/index.js +34 -0
  86. package/dist/providers/deepgram/index.js.map +1 -1
  87. package/dist/providers/elevenlabs/index.d.ts +7 -0
  88. package/dist/providers/elevenlabs/index.d.ts.map +1 -1
  89. package/dist/providers/elevenlabs/index.js +25 -0
  90. package/dist/providers/elevenlabs/index.js.map +1 -1
  91. package/dist/providers/fal/index.d.ts +5 -3
  92. package/dist/providers/fal/index.d.ts.map +1 -1
  93. package/dist/providers/fal/index.js +13 -7
  94. package/dist/providers/fal/index.js.map +1 -1
  95. package/dist/providers/fish-audio/index.d.ts +7 -0
  96. package/dist/providers/fish-audio/index.d.ts.map +1 -1
  97. package/dist/providers/fish-audio/index.js +24 -0
  98. package/dist/providers/fish-audio/index.js.map +1 -1
  99. package/dist/providers/gateway/index.d.ts +8 -0
  100. package/dist/providers/gateway/index.d.ts.map +1 -1
  101. package/dist/providers/gateway/index.js +16 -1
  102. package/dist/providers/gateway/index.js.map +1 -1
  103. package/dist/providers/google/index.d.ts +5 -0
  104. package/dist/providers/google/index.d.ts.map +1 -1
  105. package/dist/providers/google/index.js +19 -11
  106. package/dist/providers/google/index.js.map +1 -1
  107. package/dist/providers/hume/index.d.ts +9 -0
  108. package/dist/providers/hume/index.d.ts.map +1 -1
  109. package/dist/providers/hume/index.js +24 -0
  110. package/dist/providers/hume/index.js.map +1 -1
  111. package/dist/providers/inworld/index.d.ts +10 -0
  112. package/dist/providers/inworld/index.d.ts.map +1 -1
  113. package/dist/providers/inworld/index.js +32 -8
  114. package/dist/providers/inworld/index.js.map +1 -1
  115. package/dist/providers/mistral/index.d.ts +7 -0
  116. package/dist/providers/mistral/index.d.ts.map +1 -1
  117. package/dist/providers/mistral/index.js +24 -10
  118. package/dist/providers/mistral/index.js.map +1 -1
  119. package/dist/providers/murf/index.d.ts +8 -0
  120. package/dist/providers/murf/index.d.ts.map +1 -1
  121. package/dist/providers/murf/index.js +40 -1
  122. package/dist/providers/murf/index.js.map +1 -1
  123. package/dist/providers/openai/index.d.ts +7 -0
  124. package/dist/providers/openai/index.d.ts.map +1 -1
  125. package/dist/providers/openai/index.js +24 -0
  126. package/dist/providers/openai/index.js.map +1 -1
  127. package/dist/providers/resemble/index.d.ts +14 -0
  128. package/dist/providers/resemble/index.d.ts.map +1 -1
  129. package/dist/providers/resemble/index.js +35 -1
  130. package/dist/providers/resemble/index.js.map +1 -1
  131. package/dist/providers/smallest-ai/index.d.ts +47 -0
  132. package/dist/providers/smallest-ai/index.d.ts.map +1 -0
  133. package/dist/providers/smallest-ai/index.js +107 -0
  134. package/dist/providers/smallest-ai/index.js.map +1 -0
  135. package/dist/providers/xai/index.d.ts +18 -0
  136. package/dist/providers/xai/index.d.ts.map +1 -1
  137. package/dist/providers/xai/index.js +26 -0
  138. package/dist/providers/xai/index.js.map +1 -1
  139. package/dist/providers.d.ts +2 -0
  140. package/dist/providers.d.ts.map +1 -1
  141. package/dist/providers.js +1 -0
  142. package/dist/providers.js.map +1 -1
  143. package/dist/retry-options.d.ts +6 -0
  144. package/dist/retry-options.d.ts.map +1 -0
  145. package/dist/retry-options.js +48 -0
  146. package/dist/retry-options.js.map +1 -0
  147. package/dist/speech-provider.d.ts +15 -0
  148. package/dist/speech-provider.d.ts.map +1 -1
  149. package/dist/speech-provider.js.map +1 -1
  150. package/dist/stream-speech.d.ts +4 -2
  151. package/dist/stream-speech.d.ts.map +1 -1
  152. package/dist/stream-speech.js +36 -21
  153. package/dist/stream-speech.js.map +1 -1
  154. package/dist/types.d.ts +6 -0
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/volume-adjust.d.ts.map +1 -1
  157. package/dist/volume-adjust.js +4 -10
  158. package/dist/volume-adjust.js.map +1 -1
  159. package/package.json +7 -1
@@ -1,14 +1,19 @@
1
1
  import pRetry from "p-retry";
2
2
  import { computeAudioDuration } from "./audio-duration.js";
3
+ import { applyOptionalOutputConversion, validateOutput, } from "./audio-output.js";
3
4
  import { chooseConversationPath } from "./conversation/dispatch.js";
4
5
  import { ConversationInputError } from "./conversation/errors.js";
5
6
  import { validateConversationInput } from "./conversation/validate.js";
6
7
  import { getDefaultSTTFallback } from "./default-stt-fallback.js";
7
8
  import { deriveTimestampsViaSTT } from "./derive-timestamps.js";
8
- import { ApiError, NoSpeechGeneratedError } from "./errors.js";
9
+ import { NoSpeechGeneratedError, OutputConversionUnsupportedError, } from "./errors.js";
9
10
  import { debug } from "./logger.js";
10
- import { isRetriableApiError } from "./provider-utils.js";
11
+ import { inverseAlign } from "./pronunciations/inverse-align.js";
12
+ import { mergeRules } from "./pronunciations/merge.js";
13
+ import { substitute } from "./pronunciations/substitute.js";
14
+ import { validatePronunciationsInput } from "./pronunciations/validate.js";
11
15
  import { resolveModel } from "./resolve-provider.js";
16
+ import { buildRetryOptions } from "./retry-options.js";
12
17
  import { modelDeclaresNativeTimestamps, } from "./speech-provider.js";
13
18
  import { DefaultGeneratedAudioFile } from "./speech-result.js";
14
19
  // biome-ignore lint/performance/noBarrelFile: public entry point — re-export error classes so callers get fn + types + errors from one import
@@ -18,6 +23,7 @@ const DEFAULT_MAX_CONCURRENCY = 6;
18
23
  const DEFAULT_MAX_RETRIES = 2;
19
24
  export async function generateConversation(options) {
20
25
  validateConversationInput(options);
26
+ validateOutput(options.output);
21
27
  // Cache string-model resolutions so turns share one provider instance — dispatch compares by reference.
22
28
  const stringResolutionCache = new Map();
23
29
  const resolveOnce = (model) => {
@@ -51,6 +57,8 @@ export async function generateConversation(options) {
51
57
  resolvedPerTurn,
52
58
  turns: options.turns,
53
59
  });
60
+ const isGateway = path.kind === "gateway";
61
+ validatePronunciationsInput(options.pronunciations, isGateway);
54
62
  if (path.kind === "gateway") {
55
63
  return await runGateway({
56
64
  options,
@@ -81,10 +89,12 @@ export async function generateConversation(options) {
81
89
  gapMs: options.gapMs ?? DEFAULT_GAP_MS,
82
90
  maxConcurrency: options.maxConcurrency ?? DEFAULT_MAX_CONCURRENCY,
83
91
  maxRetries: options.maxRetries ?? DEFAULT_MAX_RETRIES,
92
+ output: options.output,
84
93
  volumeDbfs: options.volumeDbfs,
85
94
  abortSignal: options.abortSignal,
86
95
  headers: options.headers,
87
96
  timestamps: options.timestamps ?? false,
97
+ pronunciations: options.pronunciations,
88
98
  });
89
99
  if (stitched.audio.length === 0) {
90
100
  throw new NoSpeechGeneratedError();
@@ -140,16 +150,9 @@ async function runGateway(args) {
140
150
  abortSignal: options.abortSignal,
141
151
  headers: options.headers,
142
152
  includeTimestamps,
143
- }), {
144
- retries: maxRetries,
145
- signal: options.abortSignal,
146
- shouldRetry: ({ error }) => {
147
- if (error instanceof ApiError && !isRetriableApiError(error)) {
148
- return false;
149
- }
150
- return true;
151
- },
152
- });
153
+ output: options.output,
154
+ pronunciations: options.pronunciations,
155
+ }), buildRetryOptions({ maxRetries, abortSignal: options.abortSignal }));
153
156
  const latencyMs = Math.round(performance.now() - start);
154
157
  if (result.audio.length === 0) {
155
158
  throw new NoSpeechGeneratedError();
@@ -190,6 +193,9 @@ async function runNative(args) {
190
193
  if (!stitchOpts) {
191
194
  warnings.push(`${resolved.provider.id}/${resolved.modelId}: native dialogue path returns the provider's mixed audio without volume normalization (no decodable PCM/WAV mode).`);
192
195
  }
196
+ if (options.output && !stitchOpts) {
197
+ throw new OutputConversionUnsupportedError(`${resolved.provider.id}/${resolved.modelId}`);
198
+ }
193
199
  // Stitch options must win — caller-supplied response_format would break the decoder.
194
200
  const dialogueProviderOptions = stitchOpts
195
201
  ? { ...options.providerOptions, ...stitchOpts.providerOptions }
@@ -207,46 +213,30 @@ async function runNative(args) {
207
213
  else {
208
214
  debug(`${dialogueId} (dialogue): timestamps: true but no native dialogue alignment — will transcribe mixed audio via STT after rendering (adds a round-trip).`);
209
215
  }
216
+ const ruleMap = options.pronunciations?.rules?.length
217
+ ? mergeRules(options.pronunciations.rules)
218
+ : null;
219
+ const substitutedTurns = buildSubstitutedTurns(options.turns, ruleMap);
210
220
  const result = await pRetry(() => generateDialogue({
211
221
  modelId: resolved.modelId,
212
- turns: options.turns.map((t) => ({ voice: t.voice, text: t.text })),
222
+ turns: substitutedTurns.map((t) => ({ voice: t.voice, text: t.text })),
213
223
  providerOptions: dialogueProviderOptions,
214
224
  abortSignal: options.abortSignal,
215
225
  headers: options.headers,
216
226
  includeTimestamps: shouldRequestNative,
217
- }), {
218
- retries: maxRetries,
219
- signal: options.abortSignal,
220
- shouldRetry: ({ error }) => {
221
- if (error instanceof ApiError && !isRetriableApiError(error)) {
222
- return false;
223
- }
224
- return true;
225
- },
226
- });
227
+ }), buildRetryOptions({ maxRetries, abortSignal: options.abortSignal }));
227
228
  const latencyMs = Math.round(performance.now() - start);
228
229
  if (result.audio.length === 0) {
229
230
  throw new NoSpeechGeneratedError();
230
231
  }
231
- let audioBytes = result.audio;
232
- // Hume and others omit sample rate from content-type; prefer stitch mediaType.
233
- let outputMediaType = stitchOpts?.mediaType ?? result.mediaType;
234
- if (stitchOpts) {
235
- const { adjustVolume } = await import("./volume-adjust.js");
236
- audioBytes = await adjustVolume({
237
- audio: result.audio,
238
- mediaType: stitchOpts.mediaType,
239
- volumeDbfs: options.volumeDbfs ?? -20,
240
- });
241
- outputMediaType = "audio/wav";
242
- }
243
- const audio = new DefaultGeneratedAudioFile({
244
- data: audioBytes,
245
- mediaType: outputMediaType,
232
+ const { audio, outputMediaType } = await buildNativeAudio({
233
+ result,
234
+ stitchOpts,
235
+ volumeDbfs: options.volumeDbfs,
246
236
  });
247
237
  const computedDuration = await computeAudioDuration(audio.uint8Array, outputMediaType);
248
238
  const audioDurationMs = computedDuration ?? result.audioDurationMs;
249
- const { timestamps, warnings: attributionWarnings } = await resolveNativeDialogueTimestamps({
239
+ const { timestamps: rawTimestamps, warnings: attributionWarnings } = await resolveNativeDialogueTimestamps({
250
240
  requestTimestamps,
251
241
  nativeTimestamps: result.timestamps,
252
242
  audio: audio.uint8Array,
@@ -254,8 +244,22 @@ async function runNative(args) {
254
244
  ttsModel: `${resolved.provider.id}/${resolved.modelId}`,
255
245
  resolved,
256
246
  abortSignal: options.abortSignal,
257
- turns: options.turns,
247
+ substitutedTurnTexts: substitutedTurns.map((t) => t.text),
248
+ });
249
+ const timestamps = ruleMap
250
+ ? inverseAlignDialogueTimestamps(rawTimestamps, substitutedTurns)
251
+ : rawTimestamps;
252
+ const converted = await applyOptionalOutputConversion({
253
+ audio: audio.uint8Array,
254
+ mediaType: outputMediaType,
255
+ output: options.output,
258
256
  });
257
+ const finalAudio = options.output
258
+ ? new DefaultGeneratedAudioFile({
259
+ data: converted.audio,
260
+ mediaType: converted.mediaType,
261
+ })
262
+ : audio;
259
263
  const inputChars = options.turns.reduce((n, t) => n + t.text.length, 0);
260
264
  const metadata = {
261
265
  latencyMs,
@@ -266,7 +270,7 @@ async function runNative(args) {
266
270
  ? [...warnings, ...attributionWarnings]
267
271
  : undefined;
268
272
  return {
269
- audio,
273
+ audio: finalAudio,
270
274
  metadata,
271
275
  providerMetadata: result.providerMetadata,
272
276
  warnings: mergedWarnings,
@@ -292,12 +296,12 @@ async function resolveNativeDialogueTimestamps(args) {
292
296
  abortSignal: args.abortSignal,
293
297
  });
294
298
  }
295
- const { decodeToPcm16 } = await import("./conversation/pcm-concat.js");
299
+ const { decodeAudioToPcm16 } = await import("./audio-decode.js");
296
300
  const { detectSilenceGaps } = await import("./conversation/silence-detection.js");
297
301
  const { attributeTimestamps } = await import("./conversation/attribute-timestamps.js");
298
302
  let silenceGaps = [];
299
303
  try {
300
- const segment = decodeToPcm16(args.audio, args.mediaType);
304
+ const segment = await decodeAudioToPcm16(args.audio, args.mediaType);
301
305
  const gaps = detectSilenceGaps(segment.pcm, {
302
306
  sampleRate: segment.sampleRate,
303
307
  minDurationMs: 150,
@@ -310,7 +314,7 @@ async function resolveNativeDialogueTimestamps(args) {
310
314
  }
311
315
  const result = attributeTimestamps({
312
316
  timestamps: flatTimestamps,
313
- turnTexts: args.turns.map((t) => t.text),
317
+ turnTexts: args.substitutedTurnTexts,
314
318
  silenceGaps,
315
319
  });
316
320
  return {
@@ -318,4 +322,62 @@ async function resolveNativeDialogueTimestamps(args) {
318
322
  warnings: result.warnings,
319
323
  };
320
324
  }
325
+ async function buildNativeAudio(args) {
326
+ let audioBytes = args.result.audio;
327
+ // Hume and others omit sample rate from content-type; prefer stitch mediaType.
328
+ let outputMediaType = args.stitchOpts?.mediaType ?? args.result.mediaType;
329
+ if (args.stitchOpts) {
330
+ const { adjustVolume } = await import("./volume-adjust.js");
331
+ audioBytes = await adjustVolume({
332
+ audio: args.result.audio,
333
+ mediaType: args.stitchOpts.mediaType,
334
+ volumeDbfs: args.volumeDbfs ?? -20,
335
+ });
336
+ outputMediaType = "audio/wav";
337
+ }
338
+ const audio = new DefaultGeneratedAudioFile({
339
+ data: audioBytes,
340
+ mediaType: outputMediaType,
341
+ });
342
+ return { audio, outputMediaType };
343
+ }
344
+ function buildSubstitutedTurns(turns, ruleMap) {
345
+ return turns.map((t) => {
346
+ if (!ruleMap) {
347
+ return { voice: t.voice, text: t.text, edits: [] };
348
+ }
349
+ const subbed = substitute(t.text, ruleMap);
350
+ return { voice: t.voice, text: subbed.text, edits: subbed.edits };
351
+ });
352
+ }
353
+ function inverseAlignDialogueTimestamps(timestamps, perTurn) {
354
+ if (!timestamps) {
355
+ return timestamps;
356
+ }
357
+ const buckets = new Map();
358
+ for (const ts of timestamps) {
359
+ const bucket = buckets.get(ts.turnIndex);
360
+ if (bucket) {
361
+ bucket.push(ts);
362
+ }
363
+ else {
364
+ buckets.set(ts.turnIndex, [ts]);
365
+ }
366
+ }
367
+ const out = [];
368
+ for (let i = 0; i < perTurn.length; i++) {
369
+ const turnTimestamps = buckets.get(i);
370
+ if (!turnTimestamps?.length) {
371
+ continue;
372
+ }
373
+ const turn = perTurn[i];
374
+ if (turn.edits.length === 0) {
375
+ out.push(...turnTimestamps);
376
+ }
377
+ else {
378
+ out.push(...inverseAlign(turnTimestamps, turn.text, turn.edits));
379
+ }
380
+ }
381
+ return out;
382
+ }
321
383
  //# sourceMappingURL=generate-conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-conversation.js","sourceRoot":"","sources":["../src/generate-conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-conversation.js","sourceRoot":"","sources":["../src/generate-conversation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import { type AudioOutput } from "./audio-output.js";
2
+ import type { PronunciationsFor } from "./pronunciations/types.js";
1
3
  import { type ResolvedModel, type Voice } from "./speech-provider.js";
2
4
  import type { SpeechResult } from "./speech-result.js";
3
- export declare function generateSpeech<V extends Voice = Voice>(options: {
4
- model: string | ResolvedModel<V>;
5
+ export declare function generateSpeech<V extends Voice = Voice, M extends string | ResolvedModel<V> = string | ResolvedModel<V>>(options: {
6
+ model: M;
5
7
  text: string;
6
8
  voice: V;
7
9
  apiKey?: string;
@@ -11,5 +13,7 @@ export declare function generateSpeech<V extends Voice = Voice>(options: {
11
13
  headers?: Record<string, string>;
12
14
  volumeDbfs?: number;
13
15
  timestamps?: boolean;
16
+ output?: AudioOutput;
17
+ pronunciations?: PronunciationsFor<M>;
14
18
  }): Promise<SpeechResult>;
15
19
  //# sourceMappingURL=generate-speech.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-speech.d.ts","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"AAcA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,wBAAsB,cAAc,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,OAAO,EAAE;IACrE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CAoJxB"}
1
+ {"version":3,"file":"generate-speech.d.ts","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,KAAK,EAAQ,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKzE,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,wBAAsB,cAAc,CAClC,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAC/D,OAAO,EAAE;IACT,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CACvC,GAAG,OAAO,CAAC,YAAY,CAAC,CAqJxB"}
@@ -1,38 +1,49 @@
1
1
  import pRetry from "p-retry";
2
2
  import { computeAudioDuration } from "./audio-duration.js";
3
+ import { applyOptionalOutputConversion, validateOutput, } from "./audio-output.js";
3
4
  import { detectAudioTags, stripAudioTags } from "./audio-tags.js";
4
5
  import { getDefaultSTTFallback } from "./default-stt-fallback.js";
5
6
  import { deriveTimestampsViaSTT } from "./derive-timestamps.js";
6
- import { ApiError, NoSpeechGeneratedError, VolumeAdjustmentUnsupportedError, } from "./errors.js";
7
+ import { NoSpeechGeneratedError, OutputConversionUnsupportedError, VolumeAdjustmentUnsupportedError, } from "./errors.js";
7
8
  import { debug } from "./logger.js";
8
- import { isRetriableApiError } from "./provider-utils.js";
9
+ import { inverseAlign } from "./pronunciations/inverse-align.js";
10
+ import { mergeRules } from "./pronunciations/merge.js";
11
+ import { substitute } from "./pronunciations/substitute.js";
12
+ import { validatePronunciationsInput } from "./pronunciations/validate.js";
9
13
  import { resolveModel } from "./resolve-provider.js";
14
+ import { buildRetryOptions } from "./retry-options.js";
10
15
  import { isSpeechGatewayModel, modelDeclaresNativeTimestamps, } from "./speech-provider.js";
11
16
  import { DefaultGeneratedAudioFile } from "./speech-result.js";
12
17
  export async function generateSpeech(options) {
13
18
  const { model, voice, abortSignal, headers, volumeDbfs, timestamps = false, } = options;
14
19
  const maxRetries = options.maxRetries ?? 2;
20
+ validateOutput(options.output);
15
21
  const resolved = resolveModel(model, { apiKey: options.apiKey });
16
22
  const modelIdentifier = `${resolved.provider.id}/${resolved.modelId}`;
17
23
  const isGateway = isSpeechGatewayModel(resolved);
18
- let providerOptions = options.providerOptions;
19
- if (volumeDbfs != null && !isGateway) {
20
- const stitchOpts = resolved.provider.getStitchOptions?.(resolved.modelId);
21
- if (!stitchOpts) {
22
- throw new VolumeAdjustmentUnsupportedError(modelIdentifier);
23
- }
24
- // Stitch options must win — caller-supplied response_format would break the decoder.
25
- providerOptions = {
26
- ...options.providerOptions,
27
- ...stitchOpts.providerOptions,
28
- };
29
- }
30
- const { text: processedText, warnings } = preprocessText(resolved, options.text, modelIdentifier);
31
- if (processedText.trim().length === 0) {
24
+ validatePronunciationsInput(options.pronunciations, isGateway);
25
+ const { text: strippedText, warnings } = preprocessText(resolved, options.text, modelIdentifier);
26
+ if (strippedText.trim().length === 0) {
32
27
  throw new NoSpeechGeneratedError(warnings.length > 0
33
28
  ? `Text is empty after removing unsupported audio tags for ${modelIdentifier}.`
34
29
  : "Text must not be empty.");
35
30
  }
31
+ let textToSend = strippedText;
32
+ let pronunciationEdits = [];
33
+ if (!isGateway && options.pronunciations?.rules?.length) {
34
+ const ruleMap = mergeRules(options.pronunciations.rules);
35
+ const subbed = substitute(strippedText, ruleMap);
36
+ textToSend = subbed.text;
37
+ pronunciationEdits = subbed.edits;
38
+ }
39
+ const providerOptions = resolveProviderOptionsForLocalDecoding({
40
+ resolved,
41
+ isGateway,
42
+ modelIdentifier,
43
+ volumeDbfs,
44
+ output: options.output,
45
+ callerOptions: options.providerOptions,
46
+ });
36
47
  const hasNativeTimestamps = modelDeclaresNativeTimestamps(resolved);
37
48
  const shouldRequestNative = timestamps && (hasNativeTimestamps || isGateway);
38
49
  const effectiveFallback = !timestamps || shouldRequestNative
@@ -46,70 +57,68 @@ export async function generateSpeech(options) {
46
57
  effectiveFallback,
47
58
  });
48
59
  const startTime = performance.now();
49
- const result = await pRetry(() => isSpeechGatewayModel(resolved)
50
- ? resolved.provider.generate({
51
- modelId: resolved.modelId,
52
- text: processedText,
53
- // Gateway inline mode only accepts string voice IDs.
54
- voice: voice,
55
- providerOptions,
56
- abortSignal,
57
- headers,
58
- includeTimestamps: shouldRequestNative,
59
- volumeDbfs,
60
- })
61
- : resolved.provider.generate({
60
+ const result = await pRetry(() => {
61
+ if (isGateway) {
62
+ const gatewayProvider = resolved.provider;
63
+ return gatewayProvider.generate({
64
+ modelId: resolved.modelId,
65
+ text: textToSend,
66
+ voice: voice,
67
+ providerOptions,
68
+ abortSignal,
69
+ headers,
70
+ includeTimestamps: shouldRequestNative,
71
+ volumeDbfs,
72
+ output: options.output,
73
+ pronunciations: options.pronunciations,
74
+ });
75
+ }
76
+ return resolved.provider.generate({
62
77
  modelId: resolved.modelId,
63
- text: processedText,
78
+ text: textToSend,
64
79
  voice,
65
80
  providerOptions,
66
81
  abortSignal,
67
82
  headers,
68
83
  includeTimestamps: shouldRequestNative,
69
- }), {
70
- retries: maxRetries,
71
- signal: abortSignal,
72
- shouldRetry: ({ error }) => {
73
- if (error instanceof ApiError && !isRetriableApiError(error)) {
74
- return false;
75
- }
76
- return true;
77
- },
78
- });
84
+ });
85
+ }, buildRetryOptions({ maxRetries, abortSignal }));
79
86
  const latencyMs = Math.round(performance.now() - startTime);
80
87
  const audioData = result.audio;
81
88
  if (audioData.length === 0) {
82
89
  throw new NoSpeechGeneratedError();
83
90
  }
84
- let outputBytes = audioData;
85
- let outputMediaType = result.mediaType;
86
- if (volumeDbfs != null && !isGateway) {
87
- const { adjustVolume } = await import("./volume-adjust.js");
88
- outputBytes = await adjustVolume({
91
+ const { bytes: outputBytes, mediaType: outputMediaType } = isGateway
92
+ ? { bytes: audioData, mediaType: result.mediaType }
93
+ : await applyLocalAudioPostProcessing({
89
94
  audio: audioData,
90
95
  mediaType: result.mediaType,
91
96
  volumeDbfs,
97
+ output: options.output,
92
98
  });
93
- outputMediaType = "audio/wav";
94
- }
95
99
  const audio = new DefaultGeneratedAudioFile({
96
100
  data: outputBytes,
97
101
  mediaType: outputMediaType,
98
102
  });
99
- const audioDurationMs = (await computeAudioDuration(audio.uint8Array, outputMediaType)) ??
100
- result.audioDurationMs;
101
- const resolvedTimestamps = await resolveTimestamps({
102
- timestamps,
103
- modelIdentifier,
104
- resolved,
105
- resultTimestamps: result.timestamps,
106
- audio: audio.uint8Array,
107
- mediaType: outputMediaType,
108
- abortSignal,
109
- });
103
+ const [computedDuration, resolvedTimestamps] = await Promise.all([
104
+ computeAudioDuration(audio.uint8Array, outputMediaType),
105
+ resolveTimestamps({
106
+ timestamps,
107
+ modelIdentifier,
108
+ resolved,
109
+ resultTimestamps: result.timestamps,
110
+ audio: audio.uint8Array,
111
+ mediaType: outputMediaType,
112
+ abortSignal,
113
+ }),
114
+ ]);
115
+ const audioDurationMs = computedDuration ?? result.audioDurationMs;
116
+ const finalTimestamps = resolvedTimestamps && pronunciationEdits.length > 0
117
+ ? inverseAlign(resolvedTimestamps, textToSend, pronunciationEdits)
118
+ : resolvedTimestamps;
110
119
  const metadata = {
111
120
  latencyMs,
112
- inputChars: processedText.length,
121
+ inputChars: options.text.length,
113
122
  ...(audioDurationMs != null && { audioDurationMs }),
114
123
  };
115
124
  return {
@@ -117,7 +126,7 @@ export async function generateSpeech(options) {
117
126
  metadata,
118
127
  providerMetadata: result.providerMetadata,
119
128
  warnings: mergeWarnings(warnings, result.warnings),
120
- timestamps: resolvedTimestamps,
129
+ timestamps: finalTimestamps,
121
130
  };
122
131
  }
123
132
  function mergeWarnings(preprocessingWarnings, providerWarnings) {
@@ -146,6 +155,67 @@ async function resolveTimestamps(args) {
146
155
  debug(`${args.modelIdentifier}: derived ${timestamps.length} word timestamps via STT fallback.`);
147
156
  return timestamps;
148
157
  }
158
+ function resolveProviderOptionsForLocalDecoding(args) {
159
+ if (args.isGateway) {
160
+ return args.callerOptions;
161
+ }
162
+ // volumeDbfs needs a known-decodable wire format to decode→re-level→re-encode,
163
+ // so SDK-required keys win over caller overrides — otherwise a stray
164
+ // override would silently violate the normalization contract.
165
+ if (args.volumeDbfs != null) {
166
+ const stitchOpts = args.resolved.provider.getStitchOptions?.(args.resolved.modelId);
167
+ if (!stitchOpts) {
168
+ throw new VolumeAdjustmentUnsupportedError(args.modelIdentifier);
169
+ }
170
+ return { ...args.callerOptions, ...stitchOpts.providerOptions };
171
+ }
172
+ if (args.output != null) {
173
+ // Native path: provider produces the requested format directly, so caller's
174
+ // providerOptions are an explicit escape hatch and win over our defaults
175
+ // (e.g. tweaking bitrate/sample_rate). Post-processing reads the actual
176
+ // response mediaType and adapts.
177
+ const native = args.resolved.provider.resolveOutputFormat?.(args.resolved.modelId, args.output);
178
+ if (native) {
179
+ return { ...native.providerOptions, ...args.callerOptions };
180
+ }
181
+ // Stitch fallback: the SDK MUST decode locally to convert into the
182
+ // requested format, so SDK-required keys win — same rationale as the
183
+ // volumeDbfs path above.
184
+ const stitchOpts = args.resolved.provider.getStitchOptions?.(args.resolved.modelId);
185
+ if (!stitchOpts) {
186
+ throw new OutputConversionUnsupportedError(args.modelIdentifier);
187
+ }
188
+ return { ...args.callerOptions, ...stitchOpts.providerOptions };
189
+ }
190
+ return args.callerOptions;
191
+ }
192
+ async function applyLocalAudioPostProcessing(args) {
193
+ let bytes = args.audio;
194
+ let mediaType = args.mediaType;
195
+ if (args.volumeDbfs != null) {
196
+ const { adjustVolume } = await import("./volume-adjust.js");
197
+ bytes = await adjustVolume({
198
+ audio: args.audio,
199
+ mediaType: args.mediaType,
200
+ volumeDbfs: args.volumeDbfs,
201
+ });
202
+ mediaType = "audio/wav";
203
+ }
204
+ if (args.output != null) {
205
+ const decoded = new DefaultGeneratedAudioFile({
206
+ data: bytes,
207
+ mediaType,
208
+ }).uint8Array;
209
+ const converted = await applyOptionalOutputConversion({
210
+ audio: decoded,
211
+ mediaType,
212
+ output: args.output,
213
+ });
214
+ bytes = converted.audio;
215
+ mediaType = converted.mediaType;
216
+ }
217
+ return { bytes, mediaType };
218
+ }
149
219
  function preprocessText(resolved, rawText, modelIdentifier) {
150
220
  // Gateway server handles audio-tag normalization itself — pass raw text through.
151
221
  if (isSpeechGatewayModel(resolved)) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate-speech.js","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-speech.js","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"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"}