@speech-sdk/core 0.7.0 → 0.8.1-alpha

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 (200) hide show
  1. package/README.md +165 -108
  2. package/dist/__tests__/e2e/_save-audio.d.ts +0 -42
  3. package/dist/__tests__/e2e/_save-audio.d.ts.map +1 -1
  4. package/dist/__tests__/e2e/_save-audio.js +0 -59
  5. package/dist/__tests__/e2e/_save-audio.js.map +1 -1
  6. package/dist/audio-duration.d.ts +0 -5
  7. package/dist/audio-duration.d.ts.map +1 -1
  8. package/dist/audio-duration.js +3 -10
  9. package/dist/audio-duration.js.map +1 -1
  10. package/dist/audio-utils.d.ts +0 -10
  11. package/dist/audio-utils.d.ts.map +1 -1
  12. package/dist/audio-utils.js +2 -14
  13. package/dist/audio-utils.js.map +1 -1
  14. package/dist/captions.d.ts +0 -108
  15. package/dist/captions.d.ts.map +1 -1
  16. package/dist/captions.js +8 -98
  17. package/dist/captions.js.map +1 -1
  18. package/dist/conversation/attribute-timestamps.d.ts +26 -0
  19. package/dist/conversation/attribute-timestamps.d.ts.map +1 -0
  20. package/dist/conversation/attribute-timestamps.js +276 -0
  21. package/dist/conversation/attribute-timestamps.js.map +1 -0
  22. package/dist/conversation/dispatch.d.ts +5 -5
  23. package/dist/conversation/dispatch.d.ts.map +1 -1
  24. package/dist/conversation/dispatch.js +18 -8
  25. package/dist/conversation/dispatch.js.map +1 -1
  26. package/dist/conversation/errors.d.ts +3 -0
  27. package/dist/conversation/errors.d.ts.map +1 -1
  28. package/dist/conversation/errors.js +6 -0
  29. package/dist/conversation/errors.js.map +1 -1
  30. package/dist/conversation/pcm-concat.d.ts +0 -23
  31. package/dist/conversation/pcm-concat.d.ts.map +1 -1
  32. package/dist/conversation/pcm-concat.js +5 -43
  33. package/dist/conversation/pcm-concat.js.map +1 -1
  34. package/dist/conversation/proportional-fill.d.ts +10 -0
  35. package/dist/conversation/proportional-fill.d.ts.map +1 -0
  36. package/dist/conversation/proportional-fill.js +64 -0
  37. package/dist/conversation/proportional-fill.js.map +1 -0
  38. package/dist/conversation/silence-detection.d.ts +14 -0
  39. package/dist/conversation/silence-detection.d.ts.map +1 -0
  40. package/dist/conversation/silence-detection.js +52 -0
  41. package/dist/conversation/silence-detection.js.map +1 -0
  42. package/dist/conversation/stitch.d.ts +5 -6
  43. package/dist/conversation/stitch.d.ts.map +1 -1
  44. package/dist/conversation/stitch.js +42 -36
  45. package/dist/conversation/stitch.js.map +1 -1
  46. package/dist/conversation/types.d.ts +1 -35
  47. package/dist/conversation/types.d.ts.map +1 -1
  48. package/dist/conversation/validate.d.ts +1 -16
  49. package/dist/conversation/validate.d.ts.map +1 -1
  50. package/dist/conversation/validate.js +29 -29
  51. package/dist/conversation/validate.js.map +1 -1
  52. package/dist/default-stt-fallback.d.ts +3 -0
  53. package/dist/default-stt-fallback.d.ts.map +1 -0
  54. package/dist/default-stt-fallback.js +11 -0
  55. package/dist/default-stt-fallback.js.map +1 -0
  56. package/dist/derive-timestamps.d.ts +1 -5
  57. package/dist/derive-timestamps.d.ts.map +1 -1
  58. package/dist/derive-timestamps.js +1 -15
  59. package/dist/derive-timestamps.js.map +1 -1
  60. package/dist/errors.d.ts +5 -12
  61. package/dist/errors.d.ts.map +1 -1
  62. package/dist/errors.js +12 -14
  63. package/dist/errors.js.map +1 -1
  64. package/dist/generate-conversation.d.ts +4 -3
  65. package/dist/generate-conversation.d.ts.map +1 -1
  66. package/dist/generate-conversation.js +162 -67
  67. package/dist/generate-conversation.js.map +1 -1
  68. package/dist/generate-speech.d.ts +1 -26
  69. package/dist/generate-speech.d.ts.map +1 -1
  70. package/dist/generate-speech.js +85 -64
  71. package/dist/generate-speech.js.map +1 -1
  72. package/dist/index.d.ts +4 -11
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +5 -4
  75. package/dist/index.js.map +1 -1
  76. package/dist/logger.d.ts.map +1 -1
  77. package/dist/logger.js +2 -13
  78. package/dist/logger.js.map +1 -1
  79. package/dist/metadata.d.ts +0 -22
  80. package/dist/metadata.d.ts.map +1 -1
  81. package/dist/provider-utils.d.ts +3 -9
  82. package/dist/provider-utils.d.ts.map +1 -1
  83. package/dist/provider-utils.js +34 -51
  84. package/dist/provider-utils.js.map +1 -1
  85. package/dist/providers/cartesia/alignment.d.ts +0 -16
  86. package/dist/providers/cartesia/alignment.d.ts.map +1 -1
  87. package/dist/providers/cartesia/alignment.js +1 -6
  88. package/dist/providers/cartesia/alignment.js.map +1 -1
  89. package/dist/providers/cartesia/index.d.ts +7 -19
  90. package/dist/providers/cartesia/index.d.ts.map +1 -1
  91. package/dist/providers/cartesia/index.js +68 -80
  92. package/dist/providers/cartesia/index.js.map +1 -1
  93. package/dist/providers/deepgram/index.d.ts +7 -8
  94. package/dist/providers/deepgram/index.d.ts.map +1 -1
  95. package/dist/providers/deepgram/index.js +17 -18
  96. package/dist/providers/deepgram/index.js.map +1 -1
  97. package/dist/providers/elevenlabs/alignment.d.ts +7 -21
  98. package/dist/providers/elevenlabs/alignment.d.ts.map +1 -1
  99. package/dist/providers/elevenlabs/alignment.js +8 -9
  100. package/dist/providers/elevenlabs/alignment.js.map +1 -1
  101. package/dist/providers/elevenlabs/index.d.ts +7 -38
  102. package/dist/providers/elevenlabs/index.d.ts.map +1 -1
  103. package/dist/providers/elevenlabs/index.js +161 -169
  104. package/dist/providers/elevenlabs/index.js.map +1 -1
  105. package/dist/providers/fal/index.d.ts +7 -18
  106. package/dist/providers/fal/index.d.ts.map +1 -1
  107. package/dist/providers/fal/index.js +37 -31
  108. package/dist/providers/fal/index.js.map +1 -1
  109. package/dist/providers/fish-audio/index.d.ts +7 -8
  110. package/dist/providers/fish-audio/index.d.ts.map +1 -1
  111. package/dist/providers/fish-audio/index.js +23 -19
  112. package/dist/providers/fish-audio/index.js.map +1 -1
  113. package/dist/providers/gateway/index.d.ts +68 -0
  114. package/dist/providers/gateway/index.d.ts.map +1 -0
  115. package/dist/providers/gateway/index.js +236 -0
  116. package/dist/providers/gateway/index.js.map +1 -0
  117. package/dist/providers/google/index.d.ts +7 -20
  118. package/dist/providers/google/index.d.ts.map +1 -1
  119. package/dist/providers/google/index.js +161 -151
  120. package/dist/providers/google/index.js.map +1 -1
  121. package/dist/providers/hume/alignment.d.ts +30 -35
  122. package/dist/providers/hume/alignment.d.ts.map +1 -1
  123. package/dist/providers/hume/alignment.js +14 -8
  124. package/dist/providers/hume/alignment.js.map +1 -1
  125. package/dist/providers/hume/index.d.ts +7 -16
  126. package/dist/providers/hume/index.d.ts.map +1 -1
  127. package/dist/providers/hume/index.js +55 -65
  128. package/dist/providers/hume/index.js.map +1 -1
  129. package/dist/providers/inworld/alignment.d.ts +8 -22
  130. package/dist/providers/inworld/alignment.d.ts.map +1 -1
  131. package/dist/providers/inworld/alignment.js +9 -8
  132. package/dist/providers/inworld/alignment.js.map +1 -1
  133. package/dist/providers/inworld/index.d.ts +7 -20
  134. package/dist/providers/inworld/index.d.ts.map +1 -1
  135. package/dist/providers/inworld/index.js +47 -39
  136. package/dist/providers/inworld/index.js.map +1 -1
  137. package/dist/providers/mistral/index.d.ts +7 -8
  138. package/dist/providers/mistral/index.d.ts.map +1 -1
  139. package/dist/providers/mistral/index.js +39 -38
  140. package/dist/providers/mistral/index.js.map +1 -1
  141. package/dist/providers/murf/alignment.d.ts +10 -19
  142. package/dist/providers/murf/alignment.d.ts.map +1 -1
  143. package/dist/providers/murf/alignment.js +10 -5
  144. package/dist/providers/murf/alignment.js.map +1 -1
  145. package/dist/providers/murf/index.d.ts +7 -16
  146. package/dist/providers/murf/index.d.ts.map +1 -1
  147. package/dist/providers/murf/index.js +65 -57
  148. package/dist/providers/murf/index.js.map +1 -1
  149. package/dist/providers/openai/index.d.ts +36 -29
  150. package/dist/providers/openai/index.d.ts.map +1 -1
  151. package/dist/providers/openai/index.js +270 -106
  152. package/dist/providers/openai/index.js.map +1 -1
  153. package/dist/providers/resemble/alignment.d.ts +8 -29
  154. package/dist/providers/resemble/alignment.d.ts.map +1 -1
  155. package/dist/providers/resemble/alignment.js +9 -12
  156. package/dist/providers/resemble/alignment.js.map +1 -1
  157. package/dist/providers/resemble/index.d.ts +7 -11
  158. package/dist/providers/resemble/index.d.ts.map +1 -1
  159. package/dist/providers/resemble/index.js +54 -48
  160. package/dist/providers/resemble/index.js.map +1 -1
  161. package/dist/providers/xai/index.d.ts +7 -9
  162. package/dist/providers/xai/index.d.ts.map +1 -1
  163. package/dist/providers/xai/index.js +37 -40
  164. package/dist/providers/xai/index.js.map +1 -1
  165. package/dist/providers.d.ts +29 -0
  166. package/dist/providers.d.ts.map +1 -0
  167. package/dist/providers.js +15 -0
  168. package/dist/providers.js.map +1 -0
  169. package/dist/resolve-provider.d.ts.map +1 -1
  170. package/dist/resolve-provider.js +8 -51
  171. package/dist/resolve-provider.js.map +1 -1
  172. package/dist/speech-provider.d.ts +13 -53
  173. package/dist/speech-provider.d.ts.map +1 -1
  174. package/dist/speech-provider.js +5 -26
  175. package/dist/speech-provider.js.map +1 -1
  176. package/dist/speech-result.d.ts +8 -9
  177. package/dist/speech-result.d.ts.map +1 -1
  178. package/dist/speech-result.js.map +1 -1
  179. package/dist/speech-to-text-provider.d.ts +0 -12
  180. package/dist/speech-to-text-provider.d.ts.map +1 -1
  181. package/dist/stream-speech.d.ts.map +1 -1
  182. package/dist/stream-speech.js +2 -3
  183. package/dist/stream-speech.js.map +1 -1
  184. package/dist/timestamps.d.ts +3 -17
  185. package/dist/timestamps.d.ts.map +1 -1
  186. package/dist/turns.d.ts +9 -0
  187. package/dist/turns.d.ts.map +1 -0
  188. package/dist/turns.js +21 -0
  189. package/dist/turns.js.map +1 -0
  190. package/dist/types.d.ts +25 -0
  191. package/dist/types.d.ts.map +1 -1
  192. package/dist/volume-adjust.d.ts +0 -6
  193. package/dist/volume-adjust.d.ts.map +1 -1
  194. package/dist/volume-adjust.js +0 -6
  195. package/dist/volume-adjust.js.map +1 -1
  196. package/package.json +11 -66
  197. package/dist/stt-providers/openai/index.d.ts +0 -42
  198. package/dist/stt-providers/openai/index.d.ts.map +0 -1
  199. package/dist/stt-providers/openai/index.js +0 -184
  200. package/dist/stt-providers/openai/index.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { z } from "zod";
1
2
  import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
2
3
  import { parseSseBase64Stream } from "../../sse-stream.js";
3
4
  function safeParseJson(input) {
@@ -8,27 +9,31 @@ function safeParseJson(input) {
8
9
  return null;
9
10
  }
10
11
  }
12
+ const speechResponseSchema = z.object({
13
+ audio_data: z.string(),
14
+ usage: z.object({ audio_duration_seconds: z.number().optional() }).optional(),
15
+ });
16
+ const audioDeltaEventSchema = z.object({
17
+ type: z.literal("speech.audio.delta"),
18
+ audio_data: z.string(),
19
+ });
20
+ const audioDoneEventSchema = z.object({
21
+ type: z.literal("speech.audio.done"),
22
+ usage: z.record(z.string(), z.unknown()),
23
+ });
24
+ export const MISTRAL_PROVIDER_ID = "mistral";
25
+ export const MISTRAL_MODELS = [
26
+ {
27
+ id: "voxtral-mini-tts-2603",
28
+ releaseDate: "2026-03-23",
29
+ languages: ["en", "fr", "de", "es", "nl", "pt", "it", "hi", "ar"],
30
+ features: ["streaming", "open-source", "inline-voice-cloning"],
31
+ },
32
+ ];
11
33
  export class MistralSpeechProvider {
12
- id = "mistral";
34
+ id = MISTRAL_PROVIDER_ID;
13
35
  defaultModel = "voxtral-mini-tts-2603";
14
- models = [
15
- {
16
- id: "voxtral-mini-tts-2603",
17
- releaseDate: "2026-03-23",
18
- languages: [
19
- "en",
20
- "fr",
21
- "de",
22
- "es",
23
- "nl",
24
- "pt",
25
- "it",
26
- "hi",
27
- "ar",
28
- ],
29
- features: ["streaming", "open-source", "inline-voice-cloning"],
30
- },
31
- ];
36
+ models = MISTRAL_MODELS;
32
37
  apiKey;
33
38
  baseURL;
34
39
  fetchFn;
@@ -74,8 +79,8 @@ export class MistralSpeechProvider {
74
79
  body: JSON.stringify(body),
75
80
  signal: options.abortSignal,
76
81
  });
77
- await handleErrorResponse(response, `mistral/${options.modelId}`);
78
- const json = (await response.json());
82
+ await handleErrorResponse(response);
83
+ const json = speechResponseSchema.parse(await response.json());
79
84
  const audioDurationMs = json.usage?.audio_duration_seconds == null
80
85
  ? undefined
81
86
  : Math.round(json.usage.audio_duration_seconds * 1000);
@@ -124,25 +129,18 @@ export class MistralSpeechProvider {
124
129
  body: JSON.stringify(body),
125
130
  signal: options.abortSignal,
126
131
  });
127
- await handleErrorResponse(response, `mistral/${options.modelId}`);
132
+ await handleErrorResponse(response);
128
133
  if (!response.body) {
129
134
  throw new Error(`mistral/${options.modelId}: response has no body`);
130
135
  }
131
136
  const { stream } = parseSseBase64Stream(response.body, {
132
137
  extractBase64(eventData) {
133
- const json = safeParseJson(eventData);
134
- if (json?.type === "speech.audio.delta" &&
135
- typeof json.audio_data === "string") {
136
- return json.audio_data;
137
- }
138
- return null;
138
+ const result = audioDeltaEventSchema.safeParse(safeParseJson(eventData));
139
+ return result.success ? result.data.audio_data : null;
139
140
  },
140
141
  extractMetadata(eventData) {
141
- const json = safeParseJson(eventData);
142
- if (json?.type === "speech.audio.done" && json.usage) {
143
- return { usage: json.usage };
144
- }
145
- return null;
142
+ const result = audioDoneEventSchema.safeParse(safeParseJson(eventData));
143
+ return result.success ? { usage: result.data.usage } : null;
146
144
  },
147
145
  });
148
146
  return {
@@ -152,15 +150,13 @@ export class MistralSpeechProvider {
152
150
  }
153
151
  getStitchOptions(modelId) {
154
152
  if (this.models.some((m) => m.id === modelId)) {
155
- // voxtral's `pcm` format is headerless float32 little-endian, mono,
156
- // 24 kHz — declared via the `encoding=float32` mediaType param so the
157
- // stitch decoder converts to int16 before concatenation.
153
+ // voxtral pcm is headerless float32 LE 24kHz mono; encoding=float32 tells the stitch decoder to convert to int16.
158
154
  return {
159
155
  providerOptions: { response_format: "pcm" },
160
156
  mediaType: "audio/pcm;rate=24000;encoding=float32",
161
157
  };
162
158
  }
163
- return undefined;
159
+ return;
164
160
  }
165
161
  }
166
162
  function mediaTypeForResponseFormat(format) {
@@ -180,8 +176,13 @@ function mediaTypeForResponseFormat(format) {
180
176
  }
181
177
  export function createMistral(config = {}) {
182
178
  const provider = new MistralSpeechProvider(config);
179
+ const fallbackSTT = config.fallbackSTT;
183
180
  return function mistral(modelId) {
184
- return { provider, modelId: modelId ?? provider.defaultModel };
181
+ return {
182
+ provider,
183
+ modelId: modelId ?? provider.defaultModel,
184
+ ...(fallbackSTT && { fallbackSTT }),
185
+ };
185
186
  };
186
187
  }
187
188
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/mistral/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/mistral/index.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,13 @@
1
+ import { z } from "zod";
1
2
  import type { WordTimestamp } from "../../timestamps.js";
2
- /**
3
- * Shape of a single entry in Murf's `wordDurations` array returned from
4
- * `/v1/speech/generate`. `startMs` / `endMs` are integer milliseconds from
5
- * the start of the audio. `word` is the spoken token (or the original input
6
- * token when `wordDurationsAsOriginalText: true` was requested).
7
- */
8
- export interface MurfWordDuration {
9
- readonly endMs: number;
10
- readonly pitchScaleMaximum?: number;
11
- readonly pitchScaleMinimum?: number;
12
- readonly sourceWordIndex?: number;
13
- readonly startMs: number;
14
- readonly word: string;
15
- }
16
- /**
17
- * Converts Murf's word-level durations (milliseconds) into the SDK's
18
- * `WordTimestamp[]` (seconds). Murf already groups output by word, so no
19
- * aggregation is needed — this is just a unit conversion.
20
- */
3
+ export declare const murfWordDurationSchema: z.ZodObject<{
4
+ endMs: z.ZodNumber;
5
+ pitchScaleMaximum: z.ZodOptional<z.ZodNumber>;
6
+ pitchScaleMinimum: z.ZodOptional<z.ZodNumber>;
7
+ sourceWordIndex: z.ZodOptional<z.ZodNumber>;
8
+ startMs: z.ZodNumber;
9
+ word: z.ZodString;
10
+ }, z.core.$strip>;
11
+ export type MurfWordDuration = z.infer<typeof murfWordDurationSchema>;
21
12
  export declare function wordDurationsToWordTimestamps(durations: readonly MurfWordDuration[]): WordTimestamp[];
22
13
  //# sourceMappingURL=alignment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/providers/murf/alignment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,gBAAgB,EAAE,GACrC,aAAa,EAAE,CAUjB"}
1
+ {"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/providers/murf/alignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,eAAO,MAAM,sBAAsB;;;;;;;iBAOjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,gBAAgB,EAAE,GACrC,aAAa,EAAE,CAUjB"}
@@ -1,8 +1,13 @@
1
- /**
2
- * Converts Murf's word-level durations (milliseconds) into the SDK's
3
- * `WordTimestamp[]` (seconds). Murf already groups output by word, so no
4
- * aggregation is needed — this is just a unit conversion.
5
- */
1
+ import { z } from "zod";
2
+ // Murf `/v1/speech/generate` `wordDurations` entry. Times are integer ms.
3
+ export const murfWordDurationSchema = z.object({
4
+ endMs: z.number(),
5
+ pitchScaleMaximum: z.number().optional(),
6
+ pitchScaleMinimum: z.number().optional(),
7
+ sourceWordIndex: z.number().optional(),
8
+ startMs: z.number(),
9
+ word: z.string(),
10
+ });
6
11
  export function wordDurationsToWordTimestamps(durations) {
7
12
  const out = [];
8
13
  for (const d of durations) {
@@ -1 +1 @@
1
- {"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/providers/murf/alignment.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,SAAsC;IAEtC,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI;YACvB,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/providers/murf/alignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAGH,MAAM,UAAU,6BAA6B,CAC3C,SAAsC;IAEtC,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI;YACvB,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,27 +1,18 @@
1
- import type { ResolvedModel, SpeechProvider } from "../../speech-provider.js";
1
+ import type { ModelInfo, ResolvedModel, SpeechProvider } from "../../speech-provider.js";
2
+ import type { ResolvedSTTModel } from "../../speech-to-text-provider.js";
2
3
  import type { WordTimestamp } from "../../timestamps.js";
3
4
  export interface MurfSpeechProviderConfig {
4
5
  apiKey?: string;
5
6
  baseURL?: string;
7
+ fallbackSTT?: ResolvedSTTModel;
6
8
  fetch?: typeof globalThis.fetch;
7
9
  }
10
+ export declare const MURF_PROVIDER_ID: "murf";
11
+ export declare const MURF_MODELS: readonly ModelInfo[];
8
12
  export declare class MurfSpeechProvider implements SpeechProvider<string, string> {
9
- readonly id = "murf";
13
+ readonly id: "murf";
10
14
  readonly defaultModel = "GEN2";
11
- readonly models: readonly [{
12
- readonly id: "GEN2";
13
- readonly releaseDate: "2025-01-01";
14
- readonly languages: readonly ["en", "de", "es", "fr", "zh", "ar", "hi", "bn", "ta", "pt", "it", "ja", "ko", "nl", "pl", "ru", "sv", "tr", "id", "ms", "tl", "cs", "fi", "th", "vi", "da", "no", "ro", "el", "hu", "uk", "sk", "bg"];
15
- readonly features: readonly ["streaming", {
16
- readonly id: "timestamps";
17
- readonly mode: "native";
18
- }];
19
- }, {
20
- readonly id: "FALCON";
21
- readonly releaseDate: "2025-01-01";
22
- readonly languages: readonly ["en"];
23
- readonly features: readonly ["streaming"];
24
- }];
15
+ readonly models: readonly ModelInfo[];
25
16
  private readonly apiKey;
26
17
  private readonly baseURL;
27
18
  private readonly fetchFn;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/murf/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,kBAAmB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACvE,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,YAAY,UAAU;IAE/B,QAAQ,CAAC,MAAM;;;;;;;;;;;;;OA+CJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,wBAAwB;IAMtC,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;QACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAC;IA8DI,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;IAkCF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;CAYjC;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,wBAA6B,IAGzC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAM9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/murf/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,eAAO,MAAM,gBAAgB,EAAG,MAAe,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EA+ClC,CAAC;AAEX,qBAAa,kBAAmB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACvE,QAAQ,CAAC,EAAE,SAAoB;IAC/B,QAAQ,CAAC,YAAY,UAAU;IAE/B,QAAQ,CAAC,MAAM,uBAAe;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,wBAAwB;IAMtC,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;QACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAC;IA0DI,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;IAkCF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;CAUjC;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,wBAA6B,IAIzC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAO9D"}
@@ -1,56 +1,64 @@
1
+ import { z } from "zod";
1
2
  import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
2
- import { wordDurationsToWordTimestamps, } from "./alignment.js";
3
+ import { murfWordDurationSchema, wordDurationsToWordTimestamps, } from "./alignment.js";
4
+ const speechResponseSchema = z.object({
5
+ encodedAudio: z.string(),
6
+ audioLengthInSeconds: z.number().optional(),
7
+ wordDurations: z.array(murfWordDurationSchema).optional(),
8
+ });
9
+ export const MURF_PROVIDER_ID = "murf";
10
+ export const MURF_MODELS = [
11
+ {
12
+ id: "GEN2",
13
+ releaseDate: "2025-01-01",
14
+ languages: [
15
+ "en",
16
+ "de",
17
+ "es",
18
+ "fr",
19
+ "zh",
20
+ "ar",
21
+ "hi",
22
+ "bn",
23
+ "ta",
24
+ "pt",
25
+ "it",
26
+ "ja",
27
+ "ko",
28
+ "nl",
29
+ "pl",
30
+ "ru",
31
+ "sv",
32
+ "tr",
33
+ "id",
34
+ "ms",
35
+ "tl",
36
+ "cs",
37
+ "fi",
38
+ "th",
39
+ "vi",
40
+ "da",
41
+ "no",
42
+ "ro",
43
+ "el",
44
+ "hu",
45
+ "uk",
46
+ "sk",
47
+ "bg",
48
+ ],
49
+ features: ["streaming", "timestamps"],
50
+ },
51
+ {
52
+ id: "FALCON",
53
+ releaseDate: "2025-01-01",
54
+ languages: ["en"],
55
+ features: ["streaming"],
56
+ },
57
+ ];
3
58
  export class MurfSpeechProvider {
4
- id = "murf";
59
+ id = MURF_PROVIDER_ID;
5
60
  defaultModel = "GEN2";
6
- models = [
7
- {
8
- id: "GEN2",
9
- releaseDate: "2025-01-01",
10
- languages: [
11
- "en",
12
- "de",
13
- "es",
14
- "fr",
15
- "zh",
16
- "ar",
17
- "hi",
18
- "bn",
19
- "ta",
20
- "pt",
21
- "it",
22
- "ja",
23
- "ko",
24
- "nl",
25
- "pl",
26
- "ru",
27
- "sv",
28
- "tr",
29
- "id",
30
- "ms",
31
- "tl",
32
- "cs",
33
- "fi",
34
- "th",
35
- "vi",
36
- "da",
37
- "no",
38
- "ro",
39
- "el",
40
- "hu",
41
- "uk",
42
- "sk",
43
- "bg",
44
- ],
45
- features: ["streaming", { id: "timestamps", mode: "native" }],
46
- },
47
- {
48
- id: "FALCON",
49
- releaseDate: "2025-01-01",
50
- languages: ["en"],
51
- features: ["streaming"],
52
- },
53
- ];
61
+ models = MURF_MODELS;
54
62
  apiKey;
55
63
  baseURL;
56
64
  fetchFn;
@@ -86,7 +94,7 @@ export class MurfSpeechProvider {
86
94
  body: JSON.stringify(body),
87
95
  signal: options.abortSignal,
88
96
  });
89
- await handleErrorResponse(response, `murf/${options.modelId}`);
97
+ await handleErrorResponse(response);
90
98
  if (isFalcon) {
91
99
  const arrayBuffer = await response.arrayBuffer();
92
100
  const mediaType = response.headers.get("content-type") ?? "audio/wav";
@@ -95,7 +103,7 @@ export class MurfSpeechProvider {
95
103
  mediaType,
96
104
  };
97
105
  }
98
- const json = (await response.json());
106
+ const json = speechResponseSchema.parse(await response.json());
99
107
  const audioDurationMs = typeof json.audioLengthInSeconds === "number"
100
108
  ? Math.round(json.audioLengthInSeconds * 1000)
101
109
  : undefined;
@@ -128,7 +136,7 @@ export class MurfSpeechProvider {
128
136
  body: JSON.stringify(body),
129
137
  signal: options.abortSignal,
130
138
  });
131
- await handleErrorResponse(response, `murf/${options.modelId}`);
139
+ await handleErrorResponse(response);
132
140
  if (!response.body) {
133
141
  throw new Error(`murf/${options.modelId}: response has no body`);
134
142
  }
@@ -139,23 +147,23 @@ export class MurfSpeechProvider {
139
147
  }
140
148
  getStitchOptions(modelId) {
141
149
  if (this.models.some((m) => m.id === modelId)) {
142
- // Murf GEN2 returns base64 WAV (PCM s16) by default; FALCON streams WAV.
143
- // Both paths already yield audio/wav so no provider-side overrides are
144
- // required.
150
+ // GEN2 base64 WAV and FALCON streamed WAV both yield audio/wav with no overrides needed.
145
151
  return {
146
152
  providerOptions: {},
147
153
  mediaType: "audio/wav",
148
154
  };
149
155
  }
150
- return undefined;
156
+ return;
151
157
  }
152
158
  }
153
159
  export function createMurf(config = {}) {
154
160
  const provider = new MurfSpeechProvider(config);
161
+ const fallbackSTT = config.fallbackSTT;
155
162
  return function murf(modelId) {
156
163
  return {
157
164
  provider,
158
165
  modelId: modelId ?? provider.defaultModel,
166
+ ...(fallbackSTT && { fallbackSTT }),
159
167
  };
160
168
  };
161
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/murf/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/murf/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE;YACT,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;SACL;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;KACtC;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,CAAC,IAAI,CAAC;QACjB,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;CACO,CAAC;AAEX,MAAM,OAAO,kBAAkB;IACpB,EAAE,GAAG,gBAAgB,CAAC;IACtB,YAAY,GAAG,MAAM,CAAC;IAEtB,MAAM,GAAG,WAAW,CAAC;IAEb,MAAM,CAAqB;IAC3B,OAAO,CAAS;IAChB,OAAO,CAA0B;IAElD,YAAY,MAAgC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,wBAAwB,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAQd;QAOC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC;QAC9C,MAAM,GAAG,GAAG,QAAQ;YAClB,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,gBAAgB;YACjC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,kBAAkB,CAAC;QAEtC,MAAM,IAAI,GAA4B;YACpC,GAAG,OAAO,CAAC,eAAe;YAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC;gBAC7D,cAAc,EAAE,cAAc;gBAC9B,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,CAAC,CAAC;QAEpC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC;YACtE,OAAO;gBACL,KAAK,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC;gBAClC,SAAS;aACV,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,eAAe,GACnB,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ;YAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,UAAU,GACd,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa;YAC7C,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,aAAa,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,eAAe;YACf,SAAS,EAAE,WAAW;YACtB,UAAU;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAOZ;QAKC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,gBAAgB,CAAC;QAE5C,MAAM,IAAI,GAA4B;YACpC,GAAG,OAAO,CAAC,eAAe;YAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,OAAO;SACvB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC;gBAC7D,cAAc,EAAE,cAAc;gBAC9B,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,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,QAAQ,OAAO,CAAC,OAAO,wBAAwB,CAAC,CAAC;QACnE,CAAC;QAED,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,IAAI;YACrB,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,WAAW;SAC/D,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YAC9C,yFAAyF;YACzF,OAAO;gBACL,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,WAAW;aACvB,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,SAAmC,EAAE;IAC9D,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,OAAO,SAAS,IAAI,CAAC,OAAgB;QACnC,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY;YACzC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -1,38 +1,18 @@
1
- import { type ResolvedModel, type SpeechProvider } from "../../speech-provider.js";
1
+ import { type ModelInfo, type ResolvedModel, type SpeechProvider } from "../../speech-provider.js";
2
+ import type { ResolvedSTTModel, SpeechToTextProvider } from "../../speech-to-text-provider.js";
3
+ import type { WordTimestamp } from "../../timestamps.js";
2
4
  export interface OpenAISpeechProviderConfig {
3
5
  apiKey?: string;
4
6
  baseURL?: string;
7
+ fallbackSTT?: ResolvedSTTModel;
5
8
  fetch?: typeof globalThis.fetch;
6
9
  }
10
+ export declare const OPENAI_PROVIDER_ID: "openai";
11
+ export declare const OPENAI_MODELS: readonly ModelInfo[];
7
12
  export declare class OpenAISpeechProvider implements SpeechProvider<string, string> {
8
- readonly id = "openai";
13
+ readonly id: "openai";
9
14
  readonly defaultModel = "gpt-4o-mini-tts";
10
- private static readonly LANGUAGES;
11
- readonly models: readonly [{
12
- readonly id: "gpt-4o-mini-tts";
13
- readonly releaseDate: "2025-03-20";
14
- readonly languages: readonly ["af", "ar", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "es", "et", "fi", "fr", "gl", "gu", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "lo", "lt", "lv", "mk", "ml", "mn", "mr", "ms", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "so", "sq", "sr", "su", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "vi", "zh"];
15
- readonly features: readonly ["streaming", "audio-tags", {
16
- readonly id: "timestamps";
17
- readonly mode: "derived";
18
- }];
19
- }, {
20
- readonly id: "tts-1";
21
- readonly releaseDate: "2023-11-06";
22
- readonly languages: readonly ["af", "ar", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "es", "et", "fi", "fr", "gl", "gu", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "lo", "lt", "lv", "mk", "ml", "mn", "mr", "ms", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "so", "sq", "sr", "su", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "vi", "zh"];
23
- readonly features: readonly ["streaming", {
24
- readonly id: "timestamps";
25
- readonly mode: "derived";
26
- }];
27
- }, {
28
- readonly id: "tts-1-hd";
29
- readonly releaseDate: "2023-11-06";
30
- readonly languages: readonly ["af", "ar", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "es", "et", "fi", "fr", "gl", "gu", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "lo", "lt", "lv", "mk", "ml", "mn", "mr", "ms", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "so", "sq", "sr", "su", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "vi", "zh"];
31
- readonly features: readonly ["streaming", {
32
- readonly id: "timestamps";
33
- readonly mode: "derived";
34
- }];
35
- }];
15
+ readonly models: readonly ModelInfo[];
36
16
  private readonly apiKey;
37
17
  private readonly baseURL;
38
18
  private readonly fetchFn;
@@ -73,5 +53,32 @@ export declare class OpenAISpeechProvider implements SpeechProvider<string, stri
73
53
  mediaType: string;
74
54
  } | undefined;
75
55
  }
76
- export declare function createOpenAI(config?: OpenAISpeechProviderConfig): (modelId?: string) => ResolvedModel<string>;
56
+ export declare class OpenAISpeechToTextProvider implements SpeechToTextProvider {
57
+ readonly id: "openai";
58
+ readonly defaultModel = "whisper-1";
59
+ readonly models: readonly [{
60
+ readonly id: "whisper-1";
61
+ readonly releaseDate: "2023-03-01";
62
+ readonly languages: readonly ["af", "ar", "az", "be", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "es", "et", "fa", "fi", "fr", "gl", "he", "hi", "hr", "hu", "hy", "id", "is", "it", "ja", "kk", "kn", "ko", "lt", "lv", "mi", "mk", "mr", "ms", "ne", "nl", "no", "pl", "pt", "ro", "ru", "sk", "sl", "sr", "sv", "sw", "ta", "th", "tl", "tr", "uk", "ur", "vi", "zh"];
63
+ }];
64
+ private readonly apiKey;
65
+ private readonly baseURL;
66
+ private readonly fetchFn;
67
+ constructor(config?: OpenAISpeechProviderConfig);
68
+ transcribe(options: {
69
+ modelId: string;
70
+ audio: Uint8Array;
71
+ mediaType: string;
72
+ language?: string;
73
+ abortSignal?: AbortSignal;
74
+ headers?: Record<string, string>;
75
+ }): Promise<{
76
+ timestamps: WordTimestamp[];
77
+ text?: string;
78
+ providerMetadata?: Record<string, unknown>;
79
+ }>;
80
+ }
81
+ export declare function createOpenAI(config?: OpenAISpeechProviderConfig): ((modelId?: string) => ResolvedModel<string>) & {
82
+ stt: (modelId?: string) => ResolvedSTTModel;
83
+ };
77
84
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAGlC,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,qBAAqB;IAE1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAoEtB;IAEX,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;OAuBJ;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;IAM9C,OAAO,CAAC,iBAAiB;IA8BzB,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IAYjC,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;IA0CI,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;IA2CF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;CASjC;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/openai/index.ts"],"names":[],"mappings":"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"}