@speech-sdk/core 0.6.2 → 0.8.0-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 (202) hide show
  1. package/LICENSE +202 -21
  2. package/README.md +267 -264
  3. package/dist/__tests__/e2e/_save-audio.d.ts +5 -24
  4. package/dist/__tests__/e2e/_save-audio.d.ts.map +1 -1
  5. package/dist/__tests__/e2e/_save-audio.js +19 -42
  6. package/dist/__tests__/e2e/_save-audio.js.map +1 -1
  7. package/dist/audio-duration.d.ts +0 -5
  8. package/dist/audio-duration.d.ts.map +1 -1
  9. package/dist/audio-duration.js +3 -10
  10. package/dist/audio-duration.js.map +1 -1
  11. package/dist/audio-utils.d.ts +1 -9
  12. package/dist/audio-utils.d.ts.map +1 -1
  13. package/dist/audio-utils.js +10 -13
  14. package/dist/audio-utils.js.map +1 -1
  15. package/dist/captions.d.ts +29 -0
  16. package/dist/captions.d.ts.map +1 -0
  17. package/dist/captions.js +193 -0
  18. package/dist/captions.js.map +1 -0
  19. package/dist/conversation/attribute-timestamps.d.ts +26 -0
  20. package/dist/conversation/attribute-timestamps.d.ts.map +1 -0
  21. package/dist/conversation/attribute-timestamps.js +276 -0
  22. package/dist/conversation/attribute-timestamps.js.map +1 -0
  23. package/dist/conversation/dispatch.d.ts +5 -5
  24. package/dist/conversation/dispatch.d.ts.map +1 -1
  25. package/dist/conversation/dispatch.js +18 -8
  26. package/dist/conversation/dispatch.js.map +1 -1
  27. package/dist/conversation/errors.d.ts +3 -0
  28. package/dist/conversation/errors.d.ts.map +1 -1
  29. package/dist/conversation/errors.js +6 -0
  30. package/dist/conversation/errors.js.map +1 -1
  31. package/dist/conversation/pcm-concat.d.ts +0 -23
  32. package/dist/conversation/pcm-concat.d.ts.map +1 -1
  33. package/dist/conversation/pcm-concat.js +5 -43
  34. package/dist/conversation/pcm-concat.js.map +1 -1
  35. package/dist/conversation/proportional-fill.d.ts +10 -0
  36. package/dist/conversation/proportional-fill.d.ts.map +1 -0
  37. package/dist/conversation/proportional-fill.js +64 -0
  38. package/dist/conversation/proportional-fill.js.map +1 -0
  39. package/dist/conversation/silence-detection.d.ts +14 -0
  40. package/dist/conversation/silence-detection.d.ts.map +1 -0
  41. package/dist/conversation/silence-detection.js +52 -0
  42. package/dist/conversation/silence-detection.js.map +1 -0
  43. package/dist/conversation/stitch.d.ts +3 -1
  44. package/dist/conversation/stitch.d.ts.map +1 -1
  45. package/dist/conversation/stitch.js +54 -13
  46. package/dist/conversation/stitch.js.map +1 -1
  47. package/dist/conversation/types.d.ts +1 -19
  48. package/dist/conversation/types.d.ts.map +1 -1
  49. package/dist/conversation/validate.d.ts +1 -16
  50. package/dist/conversation/validate.d.ts.map +1 -1
  51. package/dist/conversation/validate.js +29 -29
  52. package/dist/conversation/validate.js.map +1 -1
  53. package/dist/default-stt-fallback.d.ts +3 -0
  54. package/dist/default-stt-fallback.d.ts.map +1 -0
  55. package/dist/default-stt-fallback.js +11 -0
  56. package/dist/default-stt-fallback.js.map +1 -0
  57. package/dist/derive-timestamps.d.ts +10 -0
  58. package/dist/derive-timestamps.d.ts.map +1 -0
  59. package/dist/derive-timestamps.js +24 -0
  60. package/dist/derive-timestamps.js.map +1 -0
  61. package/dist/errors.d.ts +20 -2
  62. package/dist/errors.d.ts.map +1 -1
  63. package/dist/errors.js +28 -2
  64. package/dist/errors.js.map +1 -1
  65. package/dist/generate-conversation.d.ts +5 -4
  66. package/dist/generate-conversation.d.ts.map +1 -1
  67. package/dist/generate-conversation.js +191 -38
  68. package/dist/generate-conversation.js.map +1 -1
  69. package/dist/generate-speech.d.ts +2 -10
  70. package/dist/generate-speech.d.ts.map +1 -1
  71. package/dist/generate-speech.js +111 -33
  72. package/dist/generate-speech.js.map +1 -1
  73. package/dist/index.d.ts +5 -8
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +6 -4
  76. package/dist/index.js.map +1 -1
  77. package/dist/logger.d.ts +2 -0
  78. package/dist/logger.d.ts.map +1 -0
  79. package/dist/logger.js +29 -0
  80. package/dist/logger.js.map +1 -0
  81. package/dist/metadata.d.ts +0 -22
  82. package/dist/metadata.d.ts.map +1 -1
  83. package/dist/provider-utils.d.ts +3 -1
  84. package/dist/provider-utils.d.ts.map +1 -1
  85. package/dist/provider-utils.js +36 -39
  86. package/dist/provider-utils.js.map +1 -1
  87. package/dist/providers/cartesia/alignment.d.ts +8 -0
  88. package/dist/providers/cartesia/alignment.d.ts.map +1 -0
  89. package/dist/providers/cartesia/alignment.js +18 -0
  90. package/dist/providers/cartesia/alignment.js.map +1 -0
  91. package/dist/providers/cartesia/index.d.ts +11 -13
  92. package/dist/providers/cartesia/index.d.ts.map +1 -1
  93. package/dist/providers/cartesia/index.js +184 -61
  94. package/dist/providers/cartesia/index.js.map +1 -1
  95. package/dist/providers/deepgram/index.d.ts +7 -8
  96. package/dist/providers/deepgram/index.d.ts.map +1 -1
  97. package/dist/providers/deepgram/index.js +17 -18
  98. package/dist/providers/deepgram/index.js.map +1 -1
  99. package/dist/providers/elevenlabs/alignment.d.ts +10 -0
  100. package/dist/providers/elevenlabs/alignment.d.ts.map +1 -0
  101. package/dist/providers/elevenlabs/alignment.js +47 -0
  102. package/dist/providers/elevenlabs/alignment.js.map +1 -0
  103. package/dist/providers/elevenlabs/index.d.ts +10 -26
  104. package/dist/providers/elevenlabs/index.d.ts.map +1 -1
  105. package/dist/providers/elevenlabs/index.js +216 -154
  106. package/dist/providers/elevenlabs/index.js.map +1 -1
  107. package/dist/providers/fal/index.d.ts +7 -43
  108. package/dist/providers/fal/index.d.ts.map +1 -1
  109. package/dist/providers/fal/index.js +37 -86
  110. package/dist/providers/fal/index.js.map +1 -1
  111. package/dist/providers/fish-audio/index.d.ts +7 -8
  112. package/dist/providers/fish-audio/index.d.ts.map +1 -1
  113. package/dist/providers/fish-audio/index.js +23 -19
  114. package/dist/providers/fish-audio/index.js.map +1 -1
  115. package/dist/providers/gateway/index.d.ts +68 -0
  116. package/dist/providers/gateway/index.d.ts.map +1 -0
  117. package/dist/providers/gateway/index.js +236 -0
  118. package/dist/providers/gateway/index.js.map +1 -0
  119. package/dist/providers/google/index.d.ts +7 -20
  120. package/dist/providers/google/index.d.ts.map +1 -1
  121. package/dist/providers/google/index.js +161 -151
  122. package/dist/providers/google/index.js.map +1 -1
  123. package/dist/providers/hume/alignment.d.ts +33 -0
  124. package/dist/providers/hume/alignment.d.ts.map +1 -0
  125. package/dist/providers/hume/alignment.js +37 -0
  126. package/dist/providers/hume/alignment.js.map +1 -0
  127. package/dist/providers/hume/index.d.ts +11 -13
  128. package/dist/providers/hume/index.d.ts.map +1 -1
  129. package/dist/providers/hume/index.js +105 -41
  130. package/dist/providers/hume/index.js.map +1 -1
  131. package/dist/providers/inworld/alignment.d.ts +11 -0
  132. package/dist/providers/inworld/alignment.d.ts.map +1 -0
  133. package/dist/providers/inworld/alignment.js +24 -0
  134. package/dist/providers/inworld/alignment.js.map +1 -0
  135. package/dist/providers/inworld/index.d.ts +10 -14
  136. package/dist/providers/inworld/index.d.ts.map +1 -1
  137. package/dist/providers/inworld/index.js +55 -38
  138. package/dist/providers/inworld/index.js.map +1 -1
  139. package/dist/providers/mistral/index.d.ts +7 -8
  140. package/dist/providers/mistral/index.d.ts.map +1 -1
  141. package/dist/providers/mistral/index.js +39 -38
  142. package/dist/providers/mistral/index.js.map +1 -1
  143. package/dist/providers/murf/alignment.d.ts +13 -0
  144. package/dist/providers/murf/alignment.d.ts.map +1 -0
  145. package/dist/providers/murf/alignment.js +22 -0
  146. package/dist/providers/murf/alignment.js.map +1 -0
  147. package/dist/providers/murf/index.d.ts +11 -13
  148. package/dist/providers/murf/index.d.ts.map +1 -1
  149. package/dist/providers/murf/index.js +73 -56
  150. package/dist/providers/murf/index.js.map +1 -1
  151. package/dist/providers/openai/index.d.ts +36 -20
  152. package/dist/providers/openai/index.d.ts.map +1 -1
  153. package/dist/providers/openai/index.js +270 -102
  154. package/dist/providers/openai/index.js.map +1 -1
  155. package/dist/providers/resemble/alignment.d.ts +11 -0
  156. package/dist/providers/resemble/alignment.d.ts.map +1 -0
  157. package/dist/providers/resemble/alignment.js +54 -0
  158. package/dist/providers/resemble/alignment.js.map +1 -0
  159. package/dist/providers/resemble/index.d.ts +10 -8
  160. package/dist/providers/resemble/index.d.ts.map +1 -1
  161. package/dist/providers/resemble/index.js +58 -40
  162. package/dist/providers/resemble/index.js.map +1 -1
  163. package/dist/providers/xai/index.d.ts +7 -9
  164. package/dist/providers/xai/index.d.ts.map +1 -1
  165. package/dist/providers/xai/index.js +37 -40
  166. package/dist/providers/xai/index.js.map +1 -1
  167. package/dist/providers.d.ts +29 -0
  168. package/dist/providers.d.ts.map +1 -0
  169. package/dist/providers.js +15 -0
  170. package/dist/providers.js.map +1 -0
  171. package/dist/resolve-provider.d.ts.map +1 -1
  172. package/dist/resolve-provider.js +7 -59
  173. package/dist/resolve-provider.js.map +1 -1
  174. package/dist/speech-provider.d.ts +19 -15
  175. package/dist/speech-provider.d.ts.map +1 -1
  176. package/dist/speech-provider.js +9 -14
  177. package/dist/speech-provider.js.map +1 -1
  178. package/dist/speech-result.d.ts +5 -0
  179. package/dist/speech-result.d.ts.map +1 -1
  180. package/dist/speech-result.js.map +1 -1
  181. package/dist/speech-to-text-provider.d.ts +28 -0
  182. package/dist/speech-to-text-provider.d.ts.map +1 -0
  183. package/dist/speech-to-text-provider.js +2 -0
  184. package/dist/speech-to-text-provider.js.map +1 -0
  185. package/dist/stream-speech.d.ts.map +1 -1
  186. package/dist/stream-speech.js +2 -3
  187. package/dist/stream-speech.js.map +1 -1
  188. package/dist/timestamps.d.ts +9 -0
  189. package/dist/timestamps.d.ts.map +1 -0
  190. package/dist/timestamps.js +2 -0
  191. package/dist/timestamps.js.map +1 -0
  192. package/dist/turns.d.ts +9 -0
  193. package/dist/turns.d.ts.map +1 -0
  194. package/dist/turns.js +21 -0
  195. package/dist/turns.js.map +1 -0
  196. package/dist/types.d.ts +25 -0
  197. package/dist/types.d.ts.map +1 -1
  198. package/dist/volume-adjust.d.ts +0 -6
  199. package/dist/volume-adjust.d.ts.map +1 -1
  200. package/dist/volume-adjust.js +0 -6
  201. package/dist/volume-adjust.js.map +1 -1
  202. package/package.json +12 -63
@@ -1,39 +1,52 @@
1
+ import { z } from "zod";
1
2
  import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
3
+ import { audioTimestampsToWordTimestamps, resembleAudioTimestampsSchema, } from "./alignment.js";
4
+ const synthesizeResponseSchema = z.object({
5
+ audio_content: z.string(),
6
+ audio_timestamps: resembleAudioTimestampsSchema.optional(),
7
+ });
8
+ export const RESEMBLE_PROVIDER_ID = "resemble";
9
+ export const RESEMBLE_MODELS = [
10
+ {
11
+ id: "default",
12
+ releaseDate: "2025-09-04",
13
+ languages: [
14
+ "en",
15
+ "ar",
16
+ "da",
17
+ "de",
18
+ "el",
19
+ "es",
20
+ "fi",
21
+ "fr",
22
+ "he",
23
+ "hi",
24
+ "it",
25
+ "ja",
26
+ "ko",
27
+ "ms",
28
+ "nl",
29
+ "no",
30
+ "pl",
31
+ "pt",
32
+ "ru",
33
+ "sv",
34
+ "sw",
35
+ "tr",
36
+ "zh",
37
+ ],
38
+ features: [
39
+ "streaming",
40
+ "open-source",
41
+ "inline-voice-cloning",
42
+ "timestamps",
43
+ ],
44
+ },
45
+ ];
2
46
  export class ResembleSpeechProvider {
3
- id = "resemble";
47
+ id = RESEMBLE_PROVIDER_ID;
4
48
  defaultModel = "default";
5
- models = [
6
- {
7
- id: "default",
8
- releaseDate: "2025-09-04",
9
- languages: [
10
- "en",
11
- "ar",
12
- "da",
13
- "de",
14
- "el",
15
- "es",
16
- "fi",
17
- "fr",
18
- "he",
19
- "hi",
20
- "it",
21
- "ja",
22
- "ko",
23
- "ms",
24
- "nl",
25
- "no",
26
- "pl",
27
- "pt",
28
- "ru",
29
- "sv",
30
- "sw",
31
- "tr",
32
- "zh",
33
- ],
34
- features: ["streaming", "open-source", "inline-voice-cloning"],
35
- },
36
- ];
49
+ models = RESEMBLE_MODELS;
37
50
  apiKey;
38
51
  baseURL;
39
52
  fetchFn;
@@ -60,11 +73,16 @@ export class ResembleSpeechProvider {
60
73
  body: JSON.stringify(body),
61
74
  signal: options.abortSignal,
62
75
  });
63
- await handleErrorResponse(response, `resemble/${options.modelId}`);
64
- const json = (await response.json());
76
+ await handleErrorResponse(response);
77
+ // Gate timestamp projection on caller opt-in, not the always-present audio_timestamps field.
78
+ const json = synthesizeResponseSchema.parse(await response.json());
79
+ const timestamps = options.includeTimestamps && json.audio_timestamps
80
+ ? audioTimestampsToWordTimestamps(json.audio_timestamps)
81
+ : undefined;
65
82
  return {
66
83
  audio: json.audio_content,
67
84
  mediaType: "audio/wav",
85
+ timestamps,
68
86
  };
69
87
  }
70
88
  async stream(options) {
@@ -85,7 +103,7 @@ export class ResembleSpeechProvider {
85
103
  body: JSON.stringify(body),
86
104
  signal: options.abortSignal,
87
105
  });
88
- await handleErrorResponse(response, `resemble/${options.modelId}`);
106
+ await handleErrorResponse(response);
89
107
  if (!response.body) {
90
108
  throw new Error(`resemble/${options.modelId}: response has no body`);
91
109
  }
@@ -96,23 +114,23 @@ export class ResembleSpeechProvider {
96
114
  }
97
115
  getStitchOptions(modelId) {
98
116
  if (this.models.some((m) => m.id === modelId)) {
99
- // Resemble's /synthesize defaults to PCM_32 (32-bit float WAV) which
100
- // the stitch decoder doesn't accept; pin precision to PCM_16 so the
101
- // returned WAV is 16-bit signed PCM.
117
+ // Pin precision to PCM_16 — Resemble defaults to PCM_32 (float WAV) which the stitch decoder rejects.
102
118
  return {
103
119
  providerOptions: { precision: "PCM_16" },
104
120
  mediaType: "audio/wav",
105
121
  };
106
122
  }
107
- return undefined;
123
+ return;
108
124
  }
109
125
  }
110
126
  export function createResemble(config = {}) {
111
127
  const provider = new ResembleSpeechProvider(config);
128
+ const fallbackSTT = config.fallbackSTT;
112
129
  return function resemble(modelId) {
113
130
  return {
114
131
  provider,
115
132
  modelId: modelId ?? provider.defaultModel,
133
+ ...(fallbackSTT && { fallbackSTT }),
116
134
  };
117
135
  };
118
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/resemble/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/resemble/index.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,17 @@
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
  export interface XaiSpeechProviderConfig {
3
4
  apiKey?: string;
4
5
  baseURL?: string;
6
+ fallbackSTT?: ResolvedSTTModel;
5
7
  fetch?: typeof globalThis.fetch;
6
8
  }
9
+ export declare const XAI_PROVIDER_ID: "xai";
10
+ export declare const XAI_MODELS: readonly ModelInfo[];
7
11
  export declare class XaiSpeechProvider implements SpeechProvider<string, string> {
8
- readonly id = "xai";
12
+ readonly id: "xai";
9
13
  readonly defaultModel = "grok-tts";
10
- private static readonly LANGUAGES;
11
- readonly models: readonly [{
12
- readonly id: "grok-tts";
13
- readonly releaseDate: "2025-11-01";
14
- readonly languages: readonly ["en", "ar", "bn", "zh", "fr", "de", "hi", "id", "it", "ja", "ko", "pt", "ru", "es", "tr", "vi"];
15
- readonly features: readonly ["streaming", "audio-tags"];
16
- }];
14
+ readonly models: readonly ModelInfo[];
17
15
  private readonly apiKey;
18
16
  private readonly baseURL;
19
17
  private readonly fetchFn;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/xai/index.ts"],"names":[],"mappings":"AAKA,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,iBAAkB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACtE,QAAQ,CAAC,EAAE,SAAS;IACpB,QAAQ,CAAC,YAAY,cAAc;IAKnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAiBtB;IAEX,QAAQ,CAAC,MAAM;;;;;OAOJ;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;IAS3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IAIpE,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,aAAa;IAKf,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;KACnB,CAAC;IA2BI,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;KACnB,CAAC;IA4BF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;;;CAWjC;AAED,wBAAgB,SAAS,CAAC,MAAM,GAAE,uBAA4B,IAExC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAM7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/xai/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,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,eAAe,EAAG,KAAc,CAAC;AAsB9C,eAAO,MAAM,UAAU,EAAE,SAAS,SAAS,EAOjC,CAAC;AAEX,qBAAa,iBAAkB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACtE,QAAQ,CAAC,EAAE,QAAmB;IAC9B,QAAQ,CAAC,YAAY,cAAc;IAEnC,QAAQ,CAAC,MAAM,uBAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,uBAAuB;IAO3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IAIpE,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,aAAa;IAKf,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;KACnB,CAAC;IA2BI,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;KACnB,CAAC;IA4BF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;;;CASjC;AAED,wBAAgB,SAAS,CAAC,MAAM,GAAE,uBAA4B,IAGxC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAO7D"}
@@ -1,36 +1,36 @@
1
1
  import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
2
+ export const XAI_PROVIDER_ID = "xai";
3
+ // ISO 639-1 codes; xAI also accepts BCP-47 (e.g. pt-BR) and "auto" via providerOptions.language.
4
+ const XAI_LANGUAGES = [
5
+ "en",
6
+ "ar",
7
+ "bn",
8
+ "zh",
9
+ "fr",
10
+ "de",
11
+ "hi",
12
+ "id",
13
+ "it",
14
+ "ja",
15
+ "ko",
16
+ "pt",
17
+ "ru",
18
+ "es",
19
+ "tr",
20
+ "vi",
21
+ ];
22
+ export const XAI_MODELS = [
23
+ {
24
+ id: "grok-tts",
25
+ releaseDate: "2025-11-01",
26
+ languages: XAI_LANGUAGES,
27
+ features: ["streaming", "audio-tags"],
28
+ },
29
+ ];
2
30
  export class XaiSpeechProvider {
3
- id = "xai";
31
+ id = XAI_PROVIDER_ID;
4
32
  defaultModel = "grok-tts";
5
- // ISO 639-1 codes, matching the rest of the SDK. xAI's API also accepts
6
- // region-qualified BCP-47 codes (e.g. `pt-BR`, `es-MX`) and `auto` for
7
- // detection — callers can pass either via `providerOptions.language`.
8
- static LANGUAGES = [
9
- "en",
10
- "ar",
11
- "bn",
12
- "zh",
13
- "fr",
14
- "de",
15
- "hi",
16
- "id",
17
- "it",
18
- "ja",
19
- "ko",
20
- "pt",
21
- "ru",
22
- "es",
23
- "tr",
24
- "vi",
25
- ];
26
- models = [
27
- {
28
- id: "grok-tts",
29
- releaseDate: "2025-11-01",
30
- languages: XaiSpeechProvider.LANGUAGES,
31
- features: ["streaming", "audio-tags"],
32
- },
33
- ];
33
+ models = XAI_MODELS;
34
34
  apiKey;
35
35
  baseURL;
36
36
  fetchFn;
@@ -39,15 +39,12 @@ export class XaiSpeechProvider {
39
39
  this.baseURL = config.baseURL ?? "https://api.x.ai/v1";
40
40
  this.fetchFn = config.fetch ?? globalThis.fetch.bind(globalThis);
41
41
  }
42
- // xAI natively supports bracket inline tags (`[pause]`, `[laugh]`) and
43
- // angle-bracket wrapping tags (`<whisper>...</whisper>`), so we pass text
44
- // through unchanged.
42
+ // xAI natively supports bracket and angle-bracket audio tags, so passthrough is safe.
45
43
  processAudioTags(text) {
46
44
  return { text, warnings: [] };
47
45
  }
48
46
  buildBody(options) {
49
- // `language` is required by xAI. Default to "auto" for language detection;
50
- // users can override via providerOptions.language with a BCP-47 code.
47
+ // `language` is required by xAI; default to "auto" so detection runs unless caller overrides.
51
48
  const body = {
52
49
  language: "auto",
53
50
  ...options.providerOptions,
@@ -90,7 +87,7 @@ export class XaiSpeechProvider {
90
87
  body: JSON.stringify(body),
91
88
  signal: options.abortSignal,
92
89
  });
93
- await handleErrorResponse(response, `xai/${options.modelId}`);
90
+ await handleErrorResponse(response);
94
91
  const arrayBuffer = await response.arrayBuffer();
95
92
  const mediaType = response.headers.get("content-type") ??
96
93
  this.mediaTypeForCodec(this.codecFromBody(body));
@@ -112,7 +109,7 @@ export class XaiSpeechProvider {
112
109
  body: JSON.stringify(body),
113
110
  signal: options.abortSignal,
114
111
  });
115
- await handleErrorResponse(response, `xai/${options.modelId}`);
112
+ await handleErrorResponse(response);
116
113
  if (!response.body) {
117
114
  throw new Error(`xai/${options.modelId}: response has no body`);
118
115
  }
@@ -124,22 +121,22 @@ export class XaiSpeechProvider {
124
121
  }
125
122
  getStitchOptions(modelId) {
126
123
  if (this.models.some((m) => m.id === modelId)) {
127
- // xAI Grok TTS accepts output_format.codec and its mediaTypeForCodec
128
- // helper maps "wav" → "audio/wav", which the stitch layer can decode.
129
124
  return {
130
125
  providerOptions: { output_format: { codec: "wav" } },
131
126
  mediaType: "audio/wav",
132
127
  };
133
128
  }
134
- return undefined;
129
+ return;
135
130
  }
136
131
  }
137
132
  export function createXai(config = {}) {
138
133
  const provider = new XaiSpeechProvider(config);
134
+ const fallbackSTT = config.fallbackSTT;
139
135
  return function xai(modelId) {
140
136
  return {
141
137
  provider,
142
138
  modelId: modelId ?? provider.defaultModel,
139
+ ...(fallbackSTT && { fallbackSTT }),
143
140
  };
144
141
  };
145
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/xai/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/xai/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export type { CartesiaSpeechProviderConfig } from "./providers/cartesia/index.js";
2
+ export { createCartesia } from "./providers/cartesia/index.js";
3
+ export type { DeepgramSpeechProviderConfig } from "./providers/deepgram/index.js";
4
+ export { createDeepgram } from "./providers/deepgram/index.js";
5
+ export type { ElevenLabsSpeechProviderConfig } from "./providers/elevenlabs/index.js";
6
+ export { createElevenLabs } from "./providers/elevenlabs/index.js";
7
+ export type { FalSpeechProviderConfig } from "./providers/fal/index.js";
8
+ export { createFal } from "./providers/fal/index.js";
9
+ export type { FishAudioSpeechProviderConfig } from "./providers/fish-audio/index.js";
10
+ export { createFishAudio } from "./providers/fish-audio/index.js";
11
+ export type { SpeechGatewayProviderConfig } from "./providers/gateway/index.js";
12
+ export { createSpeechGateway } from "./providers/gateway/index.js";
13
+ export type { GoogleSpeechProviderConfig } from "./providers/google/index.js";
14
+ export { createGoogle } from "./providers/google/index.js";
15
+ export type { HumeSpeechProviderConfig } from "./providers/hume/index.js";
16
+ export { createHume } from "./providers/hume/index.js";
17
+ export type { InworldSpeechProviderConfig } from "./providers/inworld/index.js";
18
+ export { createInworld } from "./providers/inworld/index.js";
19
+ export type { MistralSpeechProviderConfig } from "./providers/mistral/index.js";
20
+ export { createMistral } from "./providers/mistral/index.js";
21
+ export type { MurfSpeechProviderConfig } from "./providers/murf/index.js";
22
+ export { createMurf } from "./providers/murf/index.js";
23
+ export type { OpenAISpeechProviderConfig } from "./providers/openai/index.js";
24
+ export { createOpenAI } from "./providers/openai/index.js";
25
+ export type { ResembleSpeechProviderConfig } from "./providers/resemble/index.js";
26
+ export { createResemble } from "./providers/resemble/index.js";
27
+ export type { XaiSpeechProviderConfig } from "./providers/xai/index.js";
28
+ export { createXai } from "./providers/xai/index.js";
29
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,YAAY,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { createCartesia } from "./providers/cartesia/index.js";
2
+ export { createDeepgram } from "./providers/deepgram/index.js";
3
+ export { createElevenLabs } from "./providers/elevenlabs/index.js";
4
+ export { createFal } from "./providers/fal/index.js";
5
+ export { createFishAudio } from "./providers/fish-audio/index.js";
6
+ export { createSpeechGateway } from "./providers/gateway/index.js";
7
+ export { createGoogle } from "./providers/google/index.js";
8
+ export { createHume } from "./providers/hume/index.js";
9
+ export { createInworld } from "./providers/inworld/index.js";
10
+ export { createMistral } from "./providers/mistral/index.js";
11
+ export { createMurf } from "./providers/murf/index.js";
12
+ export { createOpenAI } from "./providers/openai/index.js";
13
+ export { createResemble } from "./providers/resemble/index.js";
14
+ export { createXai } from "./providers/xai/index.js";
15
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-provider.d.ts","sourceRoot":"","sources":["../src/resolve-provider.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAgD1E,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,aAAa,CAsBf"}
1
+ {"version":3,"file":"resolve-provider.d.ts","sourceRoot":"","sources":["../src/resolve-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAW1D,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,aAAa,CAiBf"}
@@ -1,75 +1,23 @@
1
- import { SpeechSDKError } from "./errors.js";
2
- import { CartesiaSpeechProvider } from "./providers/cartesia/index.js";
3
- import { DeepgramSpeechProvider } from "./providers/deepgram/index.js";
4
- import { ElevenLabsSpeechProvider } from "./providers/elevenlabs/index.js";
5
- import { FalSpeechProvider } from "./providers/fal/index.js";
6
- import { FishAudioSpeechProvider } from "./providers/fish-audio/index.js";
7
- import { GoogleSpeechProvider } from "./providers/google/index.js";
8
- import { HumeSpeechProvider } from "./providers/hume/index.js";
9
- import { InworldSpeechProvider } from "./providers/inworld/index.js";
10
- import { MistralSpeechProvider } from "./providers/mistral/index.js";
11
- import { MurfSpeechProvider } from "./providers/murf/index.js";
12
- import { OpenAISpeechProvider } from "./providers/openai/index.js";
13
- import { ResembleSpeechProvider } from "./providers/resemble/index.js";
14
- import { XaiSpeechProvider } from "./providers/xai/index.js";
1
+ import { SpeechGatewayProvider } from "./providers/gateway/index.js";
15
2
  function isResolvedModel(model) {
16
3
  return (model != null &&
17
4
  typeof model === "object" &&
18
5
  "provider" in model &&
19
6
  "modelId" in model);
20
7
  }
21
- function createBuiltinProvider(name, options) {
22
- const config = options?.apiKey ? { apiKey: options.apiKey } : {};
23
- switch (name) {
24
- case "openai":
25
- return new OpenAISpeechProvider(config);
26
- case "elevenlabs":
27
- return new ElevenLabsSpeechProvider(config);
28
- case "deepgram":
29
- return new DeepgramSpeechProvider(config);
30
- case "cartesia":
31
- return new CartesiaSpeechProvider(config);
32
- case "hume":
33
- return new HumeSpeechProvider(config);
34
- case "inworld":
35
- return new InworldSpeechProvider(config);
36
- case "google":
37
- return new GoogleSpeechProvider(config);
38
- case "fish-audio":
39
- return new FishAudioSpeechProvider(config);
40
- case "murf":
41
- return new MurfSpeechProvider(config);
42
- case "resemble":
43
- return new ResembleSpeechProvider(config);
44
- case "fal-ai":
45
- return new FalSpeechProvider(config);
46
- case "mistral":
47
- return new MistralSpeechProvider(config);
48
- case "xai":
49
- return new XaiSpeechProvider(config);
50
- default:
51
- throw new SpeechSDKError(`Unknown provider: ${name}`);
52
- }
53
- }
54
8
  export function resolveModel(model, options) {
55
9
  if (isResolvedModel(model)) {
56
10
  return model;
57
11
  }
58
- const slashIndex = model.indexOf("/");
59
- let providerName;
60
- let modelId;
61
- if (slashIndex === -1) {
62
- providerName = model;
63
- modelId = undefined;
12
+ if (!model) {
13
+ throw new Error('A model is required. Pass a "provider/model" string (e.g., "openai/gpt-4o-mini-tts") to route through Speech Gateway, or a ResolvedModel from a factory like createOpenAI()().');
64
14
  }
65
- else {
66
- providerName = model.slice(0, slashIndex);
67
- modelId = model.slice(slashIndex + 1);
68
- }
69
- const provider = createBuiltinProvider(providerName, options);
15
+ // Bare `"provider/model"` strings route through the speech gateway; direct provider access requires a ResolvedModel from the factory.
16
+ const config = options?.apiKey ? { apiKey: options.apiKey } : {};
17
+ const provider = new SpeechGatewayProvider(config);
70
18
  return {
71
19
  provider,
72
- modelId: modelId || provider.defaultModel,
20
+ modelId: model,
73
21
  };
74
22
  }
75
23
  //# sourceMappingURL=resolve-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-provider.js","sourceRoot":"","sources":["../src/resolve-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-provider.js","sourceRoot":"","sources":["../src/resolve-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,KAAK,IAAI,IAAI;QACb,OAAO,KAAK,KAAK,QAAQ;QACzB,UAAU,IAAI,KAAK;QACnB,SAAS,IAAI,KAAK,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAA6B,EAC7B,OAA6B;IAE7B,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,gLAAgL,CACjL,CAAC;IACJ,CAAC;IACD,sIAAsI;IACtI,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}
@@ -1,15 +1,15 @@
1
+ import { type SpeechGatewayProvider } from "./providers/gateway/index.js";
2
+ import type { ResolvedSTTModel } from "./speech-to-text-provider.js";
3
+ import type { WordTimestamp } from "./timestamps.js";
1
4
  export type Voice = string | {
2
5
  url: string;
3
6
  } | {
4
7
  audio: string | Uint8Array;
5
8
  };
6
- /**
7
- * A capability supported by a model. Today every feature is just an id (a
8
- * string), meaning "this model has feature X". The union also accepts an
9
- * object form `{ id, ...params }` so future features that need parameters
10
- * (e.g. max input tokens, supported sample rates) can extend the type
11
- * without breaking existing string-based features.
12
- */
9
+ export interface StitchTurnOptions {
10
+ mediaType: string;
11
+ providerOptions: Record<string, unknown>;
12
+ }
13
13
  export type Feature = string | {
14
14
  readonly id: string;
15
15
  };
@@ -19,17 +19,14 @@ export interface ModelInfo {
19
19
  readonly languages: readonly string[];
20
20
  readonly releaseDate: string;
21
21
  }
22
- /** Built-in feature ids the SDK uses. Providers may add custom strings. */
23
22
  export declare const FEATURES: {
24
23
  readonly STREAMING: "streaming";
25
24
  readonly AUDIO_TAGS: "audio-tags";
26
25
  readonly INLINE_VOICE_CLONING: "inline-voice-cloning";
27
26
  readonly OPEN_SOURCE: "open-source";
27
+ readonly TIMESTAMPS: "timestamps";
28
28
  };
29
29
  export declare function hasFeature(model: ModelInfo, id: string): boolean;
30
- export declare function getFeature<T extends {
31
- id: string;
32
- }>(model: ModelInfo, id: string): T | undefined;
33
30
  export interface SpeechProvider<TModel extends string = string, TVoice extends Voice = Voice> {
34
31
  defaultModel: TModel;
35
32
  dialogueCapabilities?(modelId: string): {
@@ -44,11 +41,14 @@ export interface SpeechProvider<TModel extends string = string, TVoice extends V
44
41
  providerOptions?: Record<string, unknown>;
45
42
  abortSignal?: AbortSignal;
46
43
  headers?: Record<string, string>;
44
+ includeTimestamps?: boolean;
47
45
  }): Promise<{
48
46
  audio: string | Uint8Array;
49
47
  audioDurationMs?: number;
50
48
  mediaType: string;
51
49
  providerMetadata?: Record<string, unknown>;
50
+ timestamps?: WordTimestamp[];
51
+ warnings?: string[];
52
52
  }>;
53
53
  generateDialogue?(options: {
54
54
  modelId: string;
@@ -59,16 +59,15 @@ export interface SpeechProvider<TModel extends string = string, TVoice extends V
59
59
  providerOptions?: Record<string, unknown>;
60
60
  abortSignal?: AbortSignal;
61
61
  headers?: Record<string, string>;
62
+ includeTimestamps?: boolean;
62
63
  }): Promise<{
63
64
  audio: string | Uint8Array;
64
65
  audioDurationMs?: number;
65
66
  mediaType: string;
66
67
  providerMetadata?: Record<string, unknown>;
68
+ timestamps?: WordTimestamp[];
67
69
  }>;
68
- getStitchOptions?(modelId: string): {
69
- providerOptions: Record<string, unknown>;
70
- mediaType: string;
71
- } | undefined;
70
+ getStitchOptions?(modelId: string): StitchTurnOptions | undefined;
72
71
  id: string;
73
72
  models: readonly ModelInfo[];
74
73
  processAudioTags?(text: string, modelId: string): {
@@ -90,7 +89,12 @@ export interface SpeechProvider<TModel extends string = string, TVoice extends V
90
89
  }>;
91
90
  }
92
91
  export interface ResolvedModel<TVoice extends Voice = Voice> {
92
+ fallbackSTT?: ResolvedSTTModel;
93
93
  modelId: string;
94
94
  provider: SpeechProvider<string, TVoice>;
95
95
  }
96
+ export declare function isSpeechGatewayModel<V extends Voice>(model: ResolvedModel<V>): model is ResolvedModel<V> & {
97
+ provider: SpeechGatewayProvider;
98
+ };
99
+ export declare function modelDeclaresNativeTimestamps(resolved: ResolvedModel): boolean;
96
100
  //# sourceMappingURL=speech-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"speech-provider.d.ts","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speech-provider.d.ts","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"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"}