@speech-sdk/core 0.5.2 → 0.6.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.
Files changed (92) hide show
  1. package/README.md +109 -0
  2. package/dist/audio-utils.d.ts +12 -0
  3. package/dist/audio-utils.d.ts.map +1 -0
  4. package/dist/audio-utils.js +53 -0
  5. package/dist/audio-utils.js.map +1 -0
  6. package/dist/conversation/dispatch.d.ts +17 -0
  7. package/dist/conversation/dispatch.d.ts.map +1 -0
  8. package/dist/conversation/dispatch.js +60 -0
  9. package/dist/conversation/dispatch.js.map +1 -0
  10. package/dist/conversation/errors.d.ts +23 -0
  11. package/dist/conversation/errors.d.ts.map +1 -0
  12. package/dist/conversation/errors.js +28 -0
  13. package/dist/conversation/errors.js.map +1 -0
  14. package/dist/conversation/pcm-concat.d.ts +29 -0
  15. package/dist/conversation/pcm-concat.d.ts.map +1 -0
  16. package/dist/conversation/pcm-concat.js +200 -0
  17. package/dist/conversation/pcm-concat.js.map +1 -0
  18. package/dist/conversation/stitch.d.ts +32 -0
  19. package/dist/conversation/stitch.d.ts.map +1 -0
  20. package/dist/conversation/stitch.js +78 -0
  21. package/dist/conversation/stitch.js.map +1 -0
  22. package/dist/conversation/types.d.ts +31 -0
  23. package/dist/conversation/types.d.ts.map +1 -0
  24. package/dist/conversation/types.js +2 -0
  25. package/dist/conversation/types.js.map +1 -0
  26. package/dist/conversation/validate.d.ts +19 -0
  27. package/dist/conversation/validate.d.ts.map +1 -0
  28. package/dist/conversation/validate.js +50 -0
  29. package/dist/conversation/validate.js.map +1 -0
  30. package/dist/generate-conversation.d.ts +6 -0
  31. package/dist/generate-conversation.d.ts.map +1 -0
  32. package/dist/generate-conversation.js +119 -0
  33. package/dist/generate-conversation.js.map +1 -0
  34. package/dist/providers/cartesia/index.d.ts +10 -0
  35. package/dist/providers/cartesia/index.d.ts.map +1 -1
  36. package/dist/providers/cartesia/index.js +15 -0
  37. package/dist/providers/cartesia/index.js.map +1 -1
  38. package/dist/providers/deepgram/index.d.ts +8 -0
  39. package/dist/providers/deepgram/index.d.ts.map +1 -1
  40. package/dist/providers/deepgram/index.js +13 -0
  41. package/dist/providers/deepgram/index.js.map +1 -1
  42. package/dist/providers/elevenlabs/index.d.ts +25 -0
  43. package/dist/providers/elevenlabs/index.d.ts.map +1 -1
  44. package/dist/providers/elevenlabs/index.js +52 -0
  45. package/dist/providers/elevenlabs/index.js.map +1 -1
  46. package/dist/providers/fal/index.d.ts +21 -0
  47. package/dist/providers/fal/index.d.ts.map +1 -1
  48. package/dist/providers/fal/index.js +68 -0
  49. package/dist/providers/fal/index.js.map +1 -1
  50. package/dist/providers/fish-audio/index.d.ts +24 -0
  51. package/dist/providers/fish-audio/index.d.ts.map +1 -1
  52. package/dist/providers/fish-audio/index.js +53 -0
  53. package/dist/providers/fish-audio/index.js.map +1 -1
  54. package/dist/providers/google/index.d.ts +25 -2
  55. package/dist/providers/google/index.d.ts.map +1 -1
  56. package/dist/providers/google/index.js +163 -50
  57. package/dist/providers/google/index.js.map +1 -1
  58. package/dist/providers/hume/index.d.ts +26 -0
  59. package/dist/providers/hume/index.d.ts.map +1 -1
  60. package/dist/providers/hume/index.js +54 -0
  61. package/dist/providers/hume/index.js.map +1 -1
  62. package/dist/providers/inworld/index.d.ts +9 -0
  63. package/dist/providers/inworld/index.d.ts.map +1 -1
  64. package/dist/providers/inworld/index.js +14 -0
  65. package/dist/providers/inworld/index.js.map +1 -1
  66. package/dist/providers/mistral/index.d.ts +1 -0
  67. package/dist/providers/mistral/index.d.ts.map +1 -1
  68. package/dist/providers/mistral/index.js +5 -0
  69. package/dist/providers/mistral/index.js.map +1 -1
  70. package/dist/providers/murf/index.d.ts +4 -0
  71. package/dist/providers/murf/index.d.ts.map +1 -1
  72. package/dist/providers/murf/index.js +12 -0
  73. package/dist/providers/murf/index.js.map +1 -1
  74. package/dist/providers/openai/index.d.ts +6 -0
  75. package/dist/providers/openai/index.d.ts.map +1 -1
  76. package/dist/providers/openai/index.js +9 -0
  77. package/dist/providers/openai/index.js.map +1 -1
  78. package/dist/providers/resemble/index.d.ts +4 -0
  79. package/dist/providers/resemble/index.d.ts.map +1 -1
  80. package/dist/providers/resemble/index.js +10 -0
  81. package/dist/providers/resemble/index.js.map +1 -1
  82. package/dist/providers/unreal-speech/index.d.ts +1 -0
  83. package/dist/providers/unreal-speech/index.d.ts.map +1 -1
  84. package/dist/providers/unreal-speech/index.js +7 -0
  85. package/dist/providers/unreal-speech/index.js.map +1 -1
  86. package/dist/providers/xai/index.d.ts +8 -0
  87. package/dist/providers/xai/index.d.ts.map +1 -1
  88. package/dist/providers/xai/index.js +11 -0
  89. package/dist/providers/xai/index.js.map +1 -1
  90. package/dist/speech-provider.d.ts +24 -0
  91. package/dist/speech-provider.d.ts.map +1 -1
  92. package/package.json +11 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/index.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,27 @@ export declare class FalSpeechProvider implements SpeechProvider<string, string
56
56
  stream(options: {
57
57
  modelId: string;
58
58
  }): Promise<never>;
59
+ getStitchOptions(_modelId: string): undefined;
60
+ dialogueCapabilities(modelId: string): {
61
+ minVoices: number;
62
+ maxVoices: number;
63
+ } | undefined;
64
+ generateDialogue(options: {
65
+ modelId: string;
66
+ turns: readonly {
67
+ voice: string | {
68
+ url: string;
69
+ };
70
+ text: string;
71
+ }[];
72
+ providerOptions?: Record<string, unknown>;
73
+ abortSignal?: AbortSignal;
74
+ headers?: Record<string, string>;
75
+ }): Promise<{
76
+ audio: Uint8Array;
77
+ mediaType: string;
78
+ providerMetadata?: Record<string, unknown>;
79
+ }>;
59
80
  }
60
81
  export declare function createFal(config?: FalSpeechProviderConfig): (modelId?: string) => ResolvedModel<string | {
61
82
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/fal/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,iBACX,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;IAE3D,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,YAAY,MAAM;IAE3B,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;OA+BJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,uBAAuB;IAMrC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;IAyDF,MAAM,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC;CAKrD;AAED,wBAAgB,SAAS,CAAC,MAAM,GAAE,uBAA4B,IAI1D,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAM3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/fal/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,iBACX,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;IAE3D,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,YAAY,MAAM;IAE3B,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;OA+BJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,uBAAuB;IAMrC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;IAyDF,MAAM,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAMpD,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAQjC,oBAAoB,CAAC,OAAO,EAAE,MAAM;;;;IAO9B,gBAAgB,CAAC,OAAO,EAAE;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,SAAS;YAAE,KAAK,EAAE,MAAM,GAAG;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACpE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CAoEH;AAED,wBAAgB,SAAS,CAAC,MAAM,GAAE,uBAA4B,IAI1D,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAM3C"}
@@ -91,6 +91,74 @@ export class FalSpeechProvider {
91
91
  stream(options) {
92
92
  return Promise.reject(new StreamingNotSupportedError(`fal-ai/${options.modelId}`));
93
93
  }
94
+ getStitchOptions(_modelId) {
95
+ // fal-hosted models (Dia, Orpheus, F5-TTS, Kokoro, Index-TTS 2) currently
96
+ // return MP3, and this provider hard-codes audio/mpeg as the mediaType.
97
+ // Stitch needs PCM/WAV, so we decline participation — StitchUnsupportedError
98
+ // surfaces the offending model at dispatch time.
99
+ return undefined;
100
+ }
101
+ dialogueCapabilities(modelId) {
102
+ if (modelId === "dia-tts") {
103
+ return { minVoices: 1, maxVoices: 2 };
104
+ }
105
+ return undefined;
106
+ }
107
+ async generateDialogue(options) {
108
+ if (options.modelId !== "dia-tts") {
109
+ throw new Error(`fal-ai/${options.modelId} does not support native dialogue; use dia-tts.`);
110
+ }
111
+ const voiceKeyOf = (v) => typeof v === "string" ? `s:${v}` : `u:${v.url}`;
112
+ const voiceToTag = new Map();
113
+ const tagged = [];
114
+ for (const t of options.turns) {
115
+ const k = voiceKeyOf(t.voice);
116
+ let tag = voiceToTag.get(k);
117
+ if (!tag) {
118
+ tag = `[S${voiceToTag.size + 1}]`;
119
+ voiceToTag.set(k, tag);
120
+ }
121
+ tagged.push(`${tag} ${t.text}`);
122
+ }
123
+ const text = tagged.join(" ");
124
+ const body = {
125
+ ...options.providerOptions,
126
+ text,
127
+ };
128
+ // If any turn carries a URL voice reference, forward the first one as
129
+ // audio_url (Dia supports one reference clip per request).
130
+ const firstUrlVoice = options.turns.find((t) => typeof t.voice !== "string" && "url" in t.voice)?.voice;
131
+ if (firstUrlVoice) {
132
+ body.audio_url = firstUrlVoice.url;
133
+ }
134
+ const url = `${this.baseURL}/fal-ai/${options.modelId}`;
135
+ const response = await this.fetchFn(url, {
136
+ method: "POST",
137
+ headers: {
138
+ "Content-Type": "application/json",
139
+ Authorization: `Key ${resolveApiKey(this.apiKey, "FAL_API_KEY", "fal")}`,
140
+ ...options.headers,
141
+ },
142
+ body: JSON.stringify(body),
143
+ signal: options.abortSignal,
144
+ });
145
+ await handleErrorResponse(response, `fal-ai/${options.modelId}`);
146
+ const json = (await response.json());
147
+ const audioResponse = await this.fetchFn(json.audio.url, {
148
+ signal: options.abortSignal,
149
+ });
150
+ if (!audioResponse.ok) {
151
+ throw new ApiError(`API error: ${audioResponse.status}`, {
152
+ statusCode: audioResponse.status,
153
+ model: `fal-ai/${options.modelId}`,
154
+ responseBody: await audioResponse.text().catch(() => undefined),
155
+ });
156
+ }
157
+ return {
158
+ audio: new Uint8Array(await audioResponse.arrayBuffer()),
159
+ mediaType: "audio/mpeg",
160
+ };
161
+ }
94
162
  }
95
163
  export function createFal(config = {}) {
96
164
  const provider = new FalSpeechProvider(config);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/fal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAS7E,MAAM,OAAO,iBAAiB;IAGnB,EAAE,GAAG,QAAQ,CAAC;IACd,YAAY,GAAG,EAAE,CAAC;IAElB,MAAM,GAAG;QAChB;YACE,EAAE,EAAE,QAAQ;YACZ,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACjE,QAAQ,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC;SAClD;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACzC,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;QACD;YACE,EAAE,EAAE,SAAS;YACb,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,CAAC,IAAI,CAAC;YACjB,QAAQ,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC;SAClD;QACD;YACE,EAAE,EAAE,aAAa;YACjB,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACrD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;QACD;YACE,EAAE,EAAE,aAAa;YACjB,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACvB,QAAQ,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC;SAClD;KACO,CAAC;IAEM,MAAM,CAAqB;IAC3B,OAAO,CAAS;IAChB,OAAO,CAA0B;IAElD,YAAY,MAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,iBAAiB,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAOd;QAKC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC;QAExD,MAAM,IAAI,GAA4B;YACpC,GAAG,OAAO,CAAC,eAAe;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC7B,CAAC;iBAAM,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE;gBACxE,GAAG,OAAO,CAAC,OAAO;aACnB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,CAAC,WAAW;SAC5B,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,QAAQ,EAAE,UAAU,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA+B,CAAC;QAEnE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACvD,MAAM,EAAE,OAAO,CAAC,WAAW;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,QAAQ,CAAC,cAAc,aAAa,CAAC,MAAM,EAAE,EAAE;gBACvD,UAAU,EAAE,aAAa,CAAC,MAAM;gBAChC,KAAK,EAAE,UAAU,OAAO,CAAC,OAAO,EAAE;gBAClC,YAAY,EAAE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAEtD,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC;YAClC,SAAS,EAAE,YAAY;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAA4B;QACjC,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,0BAA0B,CAAC,UAAU,OAAO,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,SAAS,CAAC,SAAkC,EAAE;IAC5D,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,SAAS,GAAG,CACjB,OAAgB;QAEhB,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY;SAC1C,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/fal/index.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,30 @@ export declare class FishAudioSpeechProvider implements SpeechProvider<string, s
45
45
  mediaType: string;
46
46
  providerMetadata?: Record<string, unknown>;
47
47
  }>;
48
+ getStitchOptions(modelId: string): {
49
+ providerOptions: {
50
+ format: string;
51
+ };
52
+ mediaType: string;
53
+ } | undefined;
54
+ dialogueCapabilities(modelId: string): {
55
+ minVoices: number;
56
+ maxVoices: number;
57
+ } | undefined;
58
+ generateDialogue(options: {
59
+ modelId: string;
60
+ turns: readonly {
61
+ voice: string;
62
+ text: string;
63
+ }[];
64
+ providerOptions?: Record<string, unknown>;
65
+ abortSignal?: AbortSignal;
66
+ headers?: Record<string, string>;
67
+ }): Promise<{
68
+ audio: Uint8Array;
69
+ mediaType: string;
70
+ providerMetadata?: Record<string, unknown>;
71
+ }>;
48
72
  }
49
73
  export declare function createFishAudio(config?: FishAudioSpeechProviderConfig): (modelId?: string) => ResolvedModel<string>;
50
74
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,uBAAwB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAC5E,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,YAAY,YAAY;IAEjC,QAAQ,CAAC,MAAM;;;;;OAYJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,6BAA6B;IAMjD,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IASjC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;IAmCI,MAAM,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CAkCH;AAED,wBAAgB,eAAe,CAAC,MAAM,GAAE,6BAAkC,IAG9C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAMnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,uBAAwB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAC5E,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,YAAY,YAAY;IAEjC,QAAQ,CAAC,MAAM;;;;;OAYJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,6BAA6B;IAMjD,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IASjC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;IAmCI,MAAM,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;IAmCF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;IAUhC,oBAAoB,CAAC,OAAO,EAAE,MAAM;;;;IAO9B,gBAAgB,CAAC,OAAO,EAAE;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,SAAS;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CA6CH;AAED,wBAAgB,eAAe,CAAC,MAAM,GAAE,6BAAkC,IAG9C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAMnE"}
@@ -88,6 +88,59 @@ export class FishAudioSpeechProvider {
88
88
  mediaType: response.headers.get("content-type") ?? "audio/mpeg",
89
89
  };
90
90
  }
91
+ getStitchOptions(modelId) {
92
+ if (this.models.some((m) => m.id === modelId)) {
93
+ return {
94
+ providerOptions: { format: "wav" },
95
+ mediaType: "audio/wav",
96
+ };
97
+ }
98
+ return undefined;
99
+ }
100
+ dialogueCapabilities(modelId) {
101
+ if (modelId === "s2-pro") {
102
+ return { minVoices: 1, maxVoices: 4 };
103
+ }
104
+ return undefined;
105
+ }
106
+ async generateDialogue(options) {
107
+ if (options.modelId !== "s2-pro") {
108
+ throw new Error(`fish-audio/${options.modelId} does not support native dialogue; use s2-pro.`);
109
+ }
110
+ const voiceToIndex = new Map();
111
+ const tagged = [];
112
+ for (const t of options.turns) {
113
+ let idx = voiceToIndex.get(t.voice);
114
+ if (idx === undefined) {
115
+ idx = voiceToIndex.size;
116
+ voiceToIndex.set(t.voice, idx);
117
+ }
118
+ tagged.push(`<|speaker:${idx}|>${t.text}`);
119
+ }
120
+ const text = tagged.join("\n");
121
+ const referenceIds = Array.from(voiceToIndex.keys());
122
+ const body = {
123
+ ...options.providerOptions,
124
+ text,
125
+ reference_id: referenceIds,
126
+ };
127
+ const response = await this.fetchFn(`${this.baseURL}/v1/tts`, {
128
+ method: "POST",
129
+ headers: {
130
+ "Content-Type": "application/json",
131
+ Authorization: `Bearer ${resolveApiKey(this.apiKey, "FISH_AUDIO_API_KEY", "Fish Audio")}`,
132
+ model: options.modelId,
133
+ ...options.headers,
134
+ },
135
+ body: JSON.stringify(body),
136
+ signal: options.abortSignal,
137
+ });
138
+ await handleErrorResponse(response, `fish-audio/${options.modelId}`);
139
+ return {
140
+ audio: new Uint8Array(await response.arrayBuffer()),
141
+ mediaType: response.headers.get("content-type") ?? "audio/mpeg",
142
+ };
143
+ }
91
144
  }
92
145
  export function createFishAudio(config = {}) {
93
146
  const provider = new FishAudioSpeechProvider(config);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,12 @@ export interface GoogleSpeechProviderConfig {
7
7
  export declare class GoogleSpeechProvider implements SpeechProvider<string, string> {
8
8
  readonly id = "google";
9
9
  readonly defaultModel = "gemini-2.5-flash-preview-tts";
10
- private static readonly GEMINI_LANGUAGES;
10
+ private static readonly GEMINI_2_5_LANGUAGES;
11
+ private static readonly GEMINI_3_1_LANGUAGES;
11
12
  readonly models: readonly [{
12
13
  readonly id: "gemini-3.1-flash-tts-preview";
13
14
  readonly releaseDate: "2026-04-15";
14
- readonly languages: readonly ["en", "fr", "de", "es", "pt", "zh", "ja", "ko", "hi", "it", "nl", "pl", "ru", "sv", "tr", "id", "ar", "cs", "da", "fi", "el", "hu", "ro", "uk"];
15
+ readonly languages: readonly ["af", "am", "ar", "az", "be", "bg", "bn", "ca", "ceb", "cmn", "cs", "da", "de", "el", "en", "es", "et", "eu", "fa", "fi", "fil", "fr", "gl", "gu", "he", "hi", "hr", "ht", "hu", "hy", "id", "is", "it", "ja", "jv", "ka", "kn", "ko", "kok", "la", "lb", "lo", "lt", "lv", "mai", "mg", "mk", "ml", "mn", "mr", "ms", "my", "nb", "ne", "nl", "nn", "or", "pa", "pl", "ps", "pt", "ro", "ru", "sd", "si", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", "tr", "uk", "ur", "vi"];
15
16
  readonly features: readonly ["streaming", "audio-tags"];
16
17
  }, {
17
18
  readonly id: "gemini-2.5-flash-preview-tts";
@@ -57,6 +58,28 @@ export declare class GoogleSpeechProvider implements SpeechProvider<string, stri
57
58
  mediaType: string;
58
59
  providerMetadata?: Record<string, unknown>;
59
60
  }>;
61
+ getStitchOptions(modelId: string): {
62
+ providerOptions: {};
63
+ mediaType: string;
64
+ } | undefined;
65
+ dialogueCapabilities(modelId: string): {
66
+ minVoices: number;
67
+ maxVoices: number;
68
+ } | undefined;
69
+ generateDialogue(options: {
70
+ modelId: string;
71
+ turns: readonly {
72
+ voice: string;
73
+ text: string;
74
+ }[];
75
+ providerOptions?: Record<string, unknown>;
76
+ abortSignal?: AbortSignal;
77
+ headers?: Record<string, string>;
78
+ }): Promise<{
79
+ audio: Uint8Array;
80
+ mediaType: string;
81
+ providerMetadata?: Record<string, unknown>;
82
+ }>;
60
83
  }
61
84
  export declare function createGoogle(config?: GoogleSpeechProviderConfig): (modelId?: string) => ResolvedModel<string>;
62
85
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/google/index.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AA+DlC,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,oBAAqB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACzE,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,YAAY,kCAAkC;IAEvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAyB7B;IAEX,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;OAmBJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,0BAA0B;IAU9C,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IASjC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;IAgFI,MAAM,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CAUH;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,0BAA+B,IAG3C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAMhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/google/index.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,9 @@
1
- import { BufferTarget, EncodedAudioPacketSource, EncodedPacket, Output, WavOutputFormat, } from "mediabunny";
2
1
  import { stripAudioTags } from "../../audio-tags.js";
2
+ import { parseMediaTypeParam, wrapPcm16Mono } from "../../audio-utils.js";
3
+ import { SpeechSDKError } from "../../errors.js";
3
4
  import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
4
5
  import { hasFeature, } from "../../speech-provider.js";
5
6
  const DEFAULT_GEMINI_SAMPLE_RATE = 24_000;
6
- // biome-ignore lint/performance/useTopLevelRegex: single-use parser
7
- const RATE_PARAM = /(?:^|;)\s*rate=(\d+)/i;
8
- function parseSampleRate(mimeType) {
9
- const match = mimeType.match(RATE_PARAM);
10
- if (!match) {
11
- return undefined;
12
- }
13
- const rate = Number(match[1]);
14
- // Guard against malformed mime types (e.g. "rate=0") which would
15
- // otherwise slip past the `??` fallback and produce an invalid WAV.
16
- return Number.isFinite(rate) && rate > 0 ? rate : undefined;
17
- }
18
7
  function base64ToBytes(b64) {
19
8
  const binaryString = atob(b64);
20
9
  const bytes = new Uint8Array(binaryString.length);
@@ -23,41 +12,10 @@ function base64ToBytes(b64) {
23
12
  }
24
13
  return bytes;
25
14
  }
26
- /**
27
- * Wrap raw 16-bit mono PCM bytes in a WAV container using mediabunny's
28
- * WavOutputFormat. Cross-platform (browser, Node, edge) and doesn't
29
- * require Web Codecs global types.
30
- */
31
- async function pcmToWav(pcm, sampleRate) {
32
- const output = new Output({
33
- format: new WavOutputFormat(),
34
- target: new BufferTarget(),
35
- });
36
- const source = new EncodedAudioPacketSource("pcm-s16");
37
- output.addAudioTrack(source);
38
- await output.start();
39
- // Each 16-bit mono sample is 2 bytes.
40
- const numSamples = pcm.length / 2;
41
- const durationSeconds = numSamples / sampleRate;
42
- const packet = new EncodedPacket(pcm, "key", 0, durationSeconds, 0);
43
- await source.add(packet, {
44
- decoderConfig: {
45
- codec: "pcm-s16",
46
- numberOfChannels: 1,
47
- sampleRate,
48
- },
49
- });
50
- await output.finalize();
51
- const buffer = output.target.buffer;
52
- if (!buffer) {
53
- throw new Error("mediabunny: WavOutputFormat produced no buffer");
54
- }
55
- return new Uint8Array(buffer);
56
- }
57
15
  export class GoogleSpeechProvider {
58
16
  id = "google";
59
17
  defaultModel = "gemini-2.5-flash-preview-tts";
60
- static GEMINI_LANGUAGES = [
18
+ static GEMINI_2_5_LANGUAGES = [
61
19
  "en",
62
20
  "fr",
63
21
  "de",
@@ -83,23 +41,103 @@ export class GoogleSpeechProvider {
83
41
  "ro",
84
42
  "uk",
85
43
  ];
44
+ static GEMINI_3_1_LANGUAGES = [
45
+ "af",
46
+ "am",
47
+ "ar",
48
+ "az",
49
+ "be",
50
+ "bg",
51
+ "bn",
52
+ "ca",
53
+ "ceb",
54
+ "cmn",
55
+ "cs",
56
+ "da",
57
+ "de",
58
+ "el",
59
+ "en",
60
+ "es",
61
+ "et",
62
+ "eu",
63
+ "fa",
64
+ "fi",
65
+ "fil",
66
+ "fr",
67
+ "gl",
68
+ "gu",
69
+ "he",
70
+ "hi",
71
+ "hr",
72
+ "ht",
73
+ "hu",
74
+ "hy",
75
+ "id",
76
+ "is",
77
+ "it",
78
+ "ja",
79
+ "jv",
80
+ "ka",
81
+ "kn",
82
+ "ko",
83
+ "kok",
84
+ "la",
85
+ "lb",
86
+ "lo",
87
+ "lt",
88
+ "lv",
89
+ "mai",
90
+ "mg",
91
+ "mk",
92
+ "ml",
93
+ "mn",
94
+ "mr",
95
+ "ms",
96
+ "my",
97
+ "nb",
98
+ "ne",
99
+ "nl",
100
+ "nn",
101
+ "or",
102
+ "pa",
103
+ "pl",
104
+ "ps",
105
+ "pt",
106
+ "ro",
107
+ "ru",
108
+ "sd",
109
+ "si",
110
+ "sk",
111
+ "sl",
112
+ "sq",
113
+ "sr",
114
+ "sv",
115
+ "sw",
116
+ "ta",
117
+ "te",
118
+ "th",
119
+ "tr",
120
+ "uk",
121
+ "ur",
122
+ "vi",
123
+ ];
86
124
  models = [
87
125
  {
88
126
  id: "gemini-3.1-flash-tts-preview",
89
127
  releaseDate: "2026-04-15",
90
- languages: GoogleSpeechProvider.GEMINI_LANGUAGES,
128
+ languages: GoogleSpeechProvider.GEMINI_3_1_LANGUAGES,
91
129
  features: ["streaming", "audio-tags"],
92
130
  },
93
131
  {
94
132
  id: "gemini-2.5-flash-preview-tts",
95
133
  releaseDate: "2025-05-01",
96
- languages: GoogleSpeechProvider.GEMINI_LANGUAGES,
134
+ languages: GoogleSpeechProvider.GEMINI_2_5_LANGUAGES,
97
135
  features: ["streaming"],
98
136
  },
99
137
  {
100
138
  id: "gemini-2.5-pro-preview-tts",
101
139
  releaseDate: "2025-05-01",
102
- languages: GoogleSpeechProvider.GEMINI_LANGUAGES,
140
+ languages: GoogleSpeechProvider.GEMINI_2_5_LANGUAGES,
103
141
  features: ["streaming"],
104
142
  },
105
143
  ];
@@ -162,10 +200,10 @@ export class GoogleSpeechProvider {
162
200
  }
163
201
  // Gemini returns raw 16-bit mono PCM. Wrap in a WAV container so
164
202
  // the audio is directly playable by any client.
165
- const sampleRate = parseSampleRate(part.inlineData.mimeType ?? "") ??
203
+ const sampleRate = parseMediaTypeParam(part.inlineData.mimeType ?? "", "rate") ??
166
204
  DEFAULT_GEMINI_SAMPLE_RATE;
167
205
  const pcm = base64ToBytes(part.inlineData.data);
168
- const wav = await pcmToWav(pcm, sampleRate);
206
+ const wav = await wrapPcm16Mono(pcm, sampleRate);
169
207
  return {
170
208
  audio: wav,
171
209
  mediaType: "audio/wav",
@@ -190,6 +228,81 @@ export class GoogleSpeechProvider {
190
228
  });
191
229
  return { stream, mediaType, providerMetadata };
192
230
  }
231
+ getStitchOptions(modelId) {
232
+ if (this.models.some((m) => m.id === modelId)) {
233
+ // Gemini TTS returns raw PCM that this provider wraps into WAV before
234
+ // returning to callers, so stitch decoding uses the WAV codepath.
235
+ return {
236
+ providerOptions: {},
237
+ mediaType: "audio/wav",
238
+ };
239
+ }
240
+ return undefined;
241
+ }
242
+ dialogueCapabilities(modelId) {
243
+ if (this.models.some((m) => m.id === modelId)) {
244
+ // Gemini multi-speaker TTS requires exactly 2 unique voices
245
+ // (empirically verified — API validator: "enabled_voices must equal 2").
246
+ return { minVoices: 2, maxVoices: 2 };
247
+ }
248
+ return undefined;
249
+ }
250
+ async generateDialogue(options) {
251
+ const apiKey = resolveApiKey(this.apiKey, "GOOGLE_API_KEY", "Google");
252
+ const voiceToLabel = new Map();
253
+ const labelled = [];
254
+ for (const turn of options.turns) {
255
+ let label = voiceToLabel.get(turn.voice);
256
+ if (!label) {
257
+ label = `Speaker${voiceToLabel.size + 1}`;
258
+ voiceToLabel.set(turn.voice, label);
259
+ }
260
+ labelled.push(`${label}: ${turn.text}`);
261
+ }
262
+ const text = labelled.join("\n");
263
+ const speakerVoiceConfigs = Array.from(voiceToLabel.entries()).map(([voiceName, speaker]) => ({
264
+ speaker,
265
+ voice_config: {
266
+ prebuilt_voice_config: { voice_name: voiceName },
267
+ },
268
+ }));
269
+ const body = {
270
+ contents: [{ role: "user", parts: [{ text }] }],
271
+ generationConfig: {
272
+ responseModalities: ["audio"],
273
+ speech_config: {
274
+ multi_speaker_voice_config: {
275
+ speaker_voice_configs: speakerVoiceConfigs,
276
+ },
277
+ },
278
+ ...options.providerOptions,
279
+ },
280
+ };
281
+ const url = `${this.baseURL}/models/${options.modelId}:generateContent?key=${apiKey}`;
282
+ const response = await this.fetchFn(url, {
283
+ method: "POST",
284
+ headers: {
285
+ "Content-Type": "application/json",
286
+ ...options.headers,
287
+ },
288
+ body: JSON.stringify(body),
289
+ signal: options.abortSignal,
290
+ });
291
+ await handleErrorResponse(response, `google/${options.modelId}`);
292
+ const json = (await response.json());
293
+ const part = json.candidates?.[0]?.content?.parts?.find((p) => p.inlineData?.data);
294
+ if (!part?.inlineData) {
295
+ throw new SpeechSDKError(`google/${options.modelId}: no inline audio in response`);
296
+ }
297
+ const pcm = base64ToBytes(part.inlineData.data);
298
+ const sampleRate = parseMediaTypeParam(part.inlineData.mimeType ?? "", "rate") ??
299
+ DEFAULT_GEMINI_SAMPLE_RATE;
300
+ const wav = await wrapPcm16Mono(pcm, sampleRate);
301
+ return {
302
+ audio: wav,
303
+ mediaType: "audio/wav",
304
+ };
305
+ }
193
306
  }
194
307
  export function createGoogle(config = {}) {
195
308
  const provider = new GoogleSpeechProvider(config);