@speech-sdk/core 0.5.2 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -1
- package/dist/__tests__/e2e/_save-audio.d.ts +11 -0
- package/dist/__tests__/e2e/_save-audio.d.ts.map +1 -0
- package/dist/__tests__/e2e/_save-audio.js +43 -0
- package/dist/__tests__/e2e/_save-audio.js.map +1 -0
- package/dist/audio-utils.d.ts +12 -0
- package/dist/audio-utils.d.ts.map +1 -0
- package/dist/audio-utils.js +53 -0
- package/dist/audio-utils.js.map +1 -0
- package/dist/conversation/dispatch.d.ts +17 -0
- package/dist/conversation/dispatch.d.ts.map +1 -0
- package/dist/conversation/dispatch.js +60 -0
- package/dist/conversation/dispatch.js.map +1 -0
- package/dist/conversation/errors.d.ts +23 -0
- package/dist/conversation/errors.d.ts.map +1 -0
- package/dist/conversation/errors.js +28 -0
- package/dist/conversation/errors.js.map +1 -0
- package/dist/conversation/pcm-concat.d.ts +37 -0
- package/dist/conversation/pcm-concat.d.ts.map +1 -0
- package/dist/conversation/pcm-concat.js +246 -0
- package/dist/conversation/pcm-concat.js.map +1 -0
- package/dist/conversation/stitch.d.ts +33 -0
- package/dist/conversation/stitch.d.ts.map +1 -0
- package/dist/conversation/stitch.js +78 -0
- package/dist/conversation/stitch.js.map +1 -0
- package/dist/conversation/types.d.ts +39 -0
- package/dist/conversation/types.d.ts.map +1 -0
- package/dist/conversation/types.js +2 -0
- package/dist/conversation/types.js.map +1 -0
- package/dist/conversation/validate.d.ts +19 -0
- package/dist/conversation/validate.d.ts.map +1 -0
- package/dist/conversation/validate.js +50 -0
- package/dist/conversation/validate.js.map +1 -0
- package/dist/errors.d.ts +3 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -0
- package/dist/errors.js.map +1 -1
- package/dist/generate-conversation.d.ts +6 -0
- package/dist/generate-conversation.d.ts.map +1 -0
- package/dist/generate-conversation.js +154 -0
- package/dist/generate-conversation.js.map +1 -0
- package/dist/generate-speech.d.ts +10 -0
- package/dist/generate-speech.d.ts.map +1 -1
- package/dist/generate-speech.js +30 -5
- package/dist/generate-speech.js.map +1 -1
- package/dist/provider-utils.d.ts +1 -0
- package/dist/provider-utils.d.ts.map +1 -1
- package/dist/provider-utils.js +5 -0
- package/dist/provider-utils.js.map +1 -1
- package/dist/providers/cartesia/index.d.ts +10 -0
- package/dist/providers/cartesia/index.d.ts.map +1 -1
- package/dist/providers/cartesia/index.js +18 -1
- package/dist/providers/cartesia/index.js.map +1 -1
- package/dist/providers/deepgram/index.d.ts +8 -0
- package/dist/providers/deepgram/index.d.ts.map +1 -1
- package/dist/providers/deepgram/index.js +39 -19
- package/dist/providers/deepgram/index.js.map +1 -1
- package/dist/providers/elevenlabs/index.d.ts +25 -0
- package/dist/providers/elevenlabs/index.d.ts.map +1 -1
- package/dist/providers/elevenlabs/index.js +56 -1
- package/dist/providers/elevenlabs/index.js.map +1 -1
- package/dist/providers/fal/index.d.ts +25 -5
- package/dist/providers/fal/index.d.ts.map +1 -1
- package/dist/providers/fal/index.js +73 -11
- package/dist/providers/fal/index.js.map +1 -1
- package/dist/providers/fish-audio/index.d.ts +24 -0
- package/dist/providers/fish-audio/index.d.ts.map +1 -1
- package/dist/providers/fish-audio/index.js +57 -1
- package/dist/providers/fish-audio/index.js.map +1 -1
- package/dist/providers/google/index.d.ts +25 -2
- package/dist/providers/google/index.d.ts.map +1 -1
- package/dist/providers/google/index.js +166 -51
- package/dist/providers/google/index.js.map +1 -1
- package/dist/providers/hume/index.d.ts +26 -0
- package/dist/providers/hume/index.d.ts.map +1 -1
- package/dist/providers/hume/index.js +58 -1
- package/dist/providers/hume/index.js.map +1 -1
- package/dist/providers/inworld/index.d.ts +9 -0
- package/dist/providers/inworld/index.d.ts.map +1 -1
- package/dist/providers/inworld/index.js +15 -4
- package/dist/providers/inworld/index.js.map +1 -1
- package/dist/providers/mistral/index.d.ts +6 -0
- package/dist/providers/mistral/index.d.ts.map +1 -1
- package/dist/providers/mistral/index.js +34 -13
- package/dist/providers/mistral/index.js.map +1 -1
- package/dist/providers/murf/index.d.ts +4 -0
- package/dist/providers/murf/index.d.ts.map +1 -1
- package/dist/providers/murf/index.js +15 -1
- package/dist/providers/murf/index.js.map +1 -1
- package/dist/providers/openai/index.d.ts +6 -0
- package/dist/providers/openai/index.d.ts.map +1 -1
- package/dist/providers/openai/index.js +12 -1
- package/dist/providers/openai/index.js.map +1 -1
- package/dist/providers/resemble/index.d.ts +6 -0
- package/dist/providers/resemble/index.d.ts.map +1 -1
- package/dist/providers/resemble/index.js +15 -1
- package/dist/providers/resemble/index.js.map +1 -1
- package/dist/providers/xai/index.d.ts +8 -0
- package/dist/providers/xai/index.d.ts.map +1 -1
- package/dist/providers/xai/index.js +14 -1
- package/dist/providers/xai/index.js.map +1 -1
- package/dist/resolve-provider.d.ts.map +1 -1
- package/dist/resolve-provider.js +0 -3
- package/dist/resolve-provider.js.map +1 -1
- package/dist/speech-provider.d.ts +24 -0
- package/dist/speech-provider.d.ts.map +1 -1
- package/dist/volume-adjust.d.ts +14 -0
- package/dist/volume-adjust.d.ts.map +1 -0
- package/dist/volume-adjust.js +27 -0
- package/dist/volume-adjust.js.map +1 -0
- package/package.json +11 -7
- package/dist/providers/unreal-speech/index.d.ts +0 -46
- package/dist/providers/unreal-speech/index.d.ts.map +0 -1
- package/dist/providers/unreal-speech/index.js +0 -96
- package/dist/providers/unreal-speech/index.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { stripAudioTags } from "../../audio-tags.js";
|
|
2
2
|
import { SpeechSDKError } from "../../errors.js";
|
|
3
|
-
import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
|
|
3
|
+
import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
|
|
4
4
|
import { hasFeature, } from "../../speech-provider.js";
|
|
5
5
|
export class ElevenLabsSpeechProvider {
|
|
6
6
|
id = "elevenlabs";
|
|
@@ -192,6 +192,7 @@ export class ElevenLabsSpeechProvider {
|
|
|
192
192
|
headers: {
|
|
193
193
|
"Content-Type": "application/json",
|
|
194
194
|
"xi-api-key": resolveApiKey(this.apiKey, "ELEVENLABS_API_KEY", "ElevenLabs"),
|
|
195
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
195
196
|
...options.headers,
|
|
196
197
|
},
|
|
197
198
|
body: JSON.stringify(body),
|
|
@@ -227,6 +228,7 @@ export class ElevenLabsSpeechProvider {
|
|
|
227
228
|
headers: {
|
|
228
229
|
"Content-Type": "application/json",
|
|
229
230
|
"xi-api-key": resolveApiKey(this.apiKey, "ELEVENLABS_API_KEY", "ElevenLabs"),
|
|
231
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
230
232
|
...options.headers,
|
|
231
233
|
},
|
|
232
234
|
body: JSON.stringify(body),
|
|
@@ -249,6 +251,59 @@ export class ElevenLabsSpeechProvider {
|
|
|
249
251
|
providerMetadata: requestId ? { requestId } : undefined,
|
|
250
252
|
};
|
|
251
253
|
}
|
|
254
|
+
getStitchOptions(modelId) {
|
|
255
|
+
if (this.models.some((m) => m.id === modelId)) {
|
|
256
|
+
return {
|
|
257
|
+
providerOptions: { output_format: "pcm_24000" },
|
|
258
|
+
mediaType: "audio/pcm;rate=24000",
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
return undefined;
|
|
262
|
+
}
|
|
263
|
+
dialogueCapabilities(modelId) {
|
|
264
|
+
if (modelId === "eleven_v3") {
|
|
265
|
+
return { minVoices: 1, maxVoices: 10, maxTotalChars: 2000 };
|
|
266
|
+
}
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
async generateDialogue(options) {
|
|
270
|
+
if (options.modelId !== "eleven_v3") {
|
|
271
|
+
throw new SpeechSDKError(`elevenlabs/${options.modelId} does not support native dialogue; use eleven_v3.`);
|
|
272
|
+
}
|
|
273
|
+
const opts = (options.providerOptions ?? {});
|
|
274
|
+
const { output_format, ...bodyOpts } = opts;
|
|
275
|
+
const body = {
|
|
276
|
+
...bodyOpts,
|
|
277
|
+
model_id: options.modelId,
|
|
278
|
+
inputs: options.turns.map((t) => ({ text: t.text, voice_id: t.voice })),
|
|
279
|
+
};
|
|
280
|
+
const queryParams = new URLSearchParams();
|
|
281
|
+
if (output_format != null) {
|
|
282
|
+
queryParams.set("output_format", String(output_format));
|
|
283
|
+
}
|
|
284
|
+
const qs = queryParams.toString();
|
|
285
|
+
const url = `${this.baseURL}/v1/text-to-dialogue${qs ? `?${qs}` : ""}`;
|
|
286
|
+
const response = await this.fetchFn(url, {
|
|
287
|
+
method: "POST",
|
|
288
|
+
headers: {
|
|
289
|
+
"Content-Type": "application/json",
|
|
290
|
+
"xi-api-key": resolveApiKey(this.apiKey, "ELEVENLABS_API_KEY", "ElevenLabs"),
|
|
291
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
292
|
+
...options.headers,
|
|
293
|
+
},
|
|
294
|
+
body: JSON.stringify(body),
|
|
295
|
+
signal: options.abortSignal,
|
|
296
|
+
});
|
|
297
|
+
await handleErrorResponse(response, `elevenlabs/${options.modelId}`);
|
|
298
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
299
|
+
const mediaType = response.headers.get("content-type") ?? "audio/mpeg";
|
|
300
|
+
const requestId = response.headers.get("request-id");
|
|
301
|
+
return {
|
|
302
|
+
audio: new Uint8Array(arrayBuffer),
|
|
303
|
+
mediaType,
|
|
304
|
+
providerMetadata: requestId ? { requestId } : undefined,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
252
307
|
}
|
|
253
308
|
export function createElevenLabs(config = {}) {
|
|
254
309
|
const provider = new ElevenLabsSpeechProvider(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,11 +29,6 @@ export declare class FalSpeechProvider implements SpeechProvider<string, string
|
|
|
29
29
|
readonly releaseDate: "2025-03-18";
|
|
30
30
|
readonly languages: readonly ["en", "es", "fr", "de", "it", "pt", "zh"];
|
|
31
31
|
readonly features: readonly ["open-source"];
|
|
32
|
-
}, {
|
|
33
|
-
readonly id: "index-tts-2";
|
|
34
|
-
readonly releaseDate: "2025-09-08";
|
|
35
|
-
readonly languages: readonly ["en", "zh"];
|
|
36
|
-
readonly features: readonly ["open-source", "inline-voice-cloning"];
|
|
37
32
|
}];
|
|
38
33
|
private readonly apiKey;
|
|
39
34
|
private readonly baseURL;
|
|
@@ -53,9 +48,34 @@ export declare class FalSpeechProvider implements SpeechProvider<string, string
|
|
|
53
48
|
mediaType: string;
|
|
54
49
|
providerMetadata?: Record<string, unknown>;
|
|
55
50
|
}>;
|
|
51
|
+
private fetchAudio;
|
|
56
52
|
stream(options: {
|
|
57
53
|
modelId: string;
|
|
58
54
|
}): Promise<never>;
|
|
55
|
+
getStitchOptions(modelId: string): {
|
|
56
|
+
providerOptions: {};
|
|
57
|
+
mediaType: string;
|
|
58
|
+
} | undefined;
|
|
59
|
+
dialogueCapabilities(modelId: string): {
|
|
60
|
+
minVoices: number;
|
|
61
|
+
maxVoices: number;
|
|
62
|
+
} | undefined;
|
|
63
|
+
generateDialogue(options: {
|
|
64
|
+
modelId: string;
|
|
65
|
+
turns: readonly {
|
|
66
|
+
voice: string | {
|
|
67
|
+
url: string;
|
|
68
|
+
};
|
|
69
|
+
text: string;
|
|
70
|
+
}[];
|
|
71
|
+
providerOptions?: Record<string, unknown>;
|
|
72
|
+
abortSignal?: AbortSignal;
|
|
73
|
+
headers?: Record<string, string>;
|
|
74
|
+
}): Promise<{
|
|
75
|
+
audio: Uint8Array;
|
|
76
|
+
mediaType: string;
|
|
77
|
+
providerMetadata?: Record<string, unknown>;
|
|
78
|
+
}>;
|
|
59
79
|
}
|
|
60
80
|
export declare function createFal(config?: FalSpeechProviderConfig): (modelId?: string) => ResolvedModel<string | {
|
|
61
81
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/fal/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/fal/index.ts"],"names":[],"mappings":"AAMA,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;;;;;;;;;;;;;;;;;;;;OAyBJ;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;YA0CY,UAAU;IA4BxB,MAAM,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAMpD,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;IAahC,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;CAyDH;AAED,wBAAgB,SAAS,CAAC,MAAM,GAAE,uBAA4B,IAI1D,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAM3C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiError, StreamingNotSupportedError } from "../../errors.js";
|
|
2
|
-
import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
|
|
2
|
+
import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
|
|
3
3
|
export class FalSpeechProvider {
|
|
4
4
|
id = "fal-ai";
|
|
5
5
|
defaultModel = "";
|
|
@@ -28,12 +28,6 @@ export class FalSpeechProvider {
|
|
|
28
28
|
languages: ["en", "es", "fr", "de", "it", "pt", "zh"],
|
|
29
29
|
features: ["open-source"],
|
|
30
30
|
},
|
|
31
|
-
{
|
|
32
|
-
id: "index-tts-2",
|
|
33
|
-
releaseDate: "2025-09-08",
|
|
34
|
-
languages: ["en", "zh"],
|
|
35
|
-
features: ["open-source", "inline-voice-cloning"],
|
|
36
|
-
},
|
|
37
31
|
];
|
|
38
32
|
apiKey;
|
|
39
33
|
baseURL;
|
|
@@ -65,6 +59,7 @@ export class FalSpeechProvider {
|
|
|
65
59
|
headers: {
|
|
66
60
|
"Content-Type": "application/json",
|
|
67
61
|
Authorization: `Key ${resolveApiKey(this.apiKey, "FAL_API_KEY", "fal")}`,
|
|
62
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
68
63
|
...options.headers,
|
|
69
64
|
},
|
|
70
65
|
body: JSON.stringify(body),
|
|
@@ -72,6 +67,9 @@ export class FalSpeechProvider {
|
|
|
72
67
|
});
|
|
73
68
|
await handleErrorResponse(response, `fal-ai/${options.modelId}`);
|
|
74
69
|
const json = (await response.json());
|
|
70
|
+
return await this.fetchAudio(json, options);
|
|
71
|
+
}
|
|
72
|
+
async fetchAudio(json, options) {
|
|
75
73
|
const audioResponse = await this.fetchFn(json.audio.url, {
|
|
76
74
|
signal: options.abortSignal,
|
|
77
75
|
});
|
|
@@ -83,14 +81,78 @@ export class FalSpeechProvider {
|
|
|
83
81
|
});
|
|
84
82
|
}
|
|
85
83
|
const arrayBuffer = await audioResponse.arrayBuffer();
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
// fal includes the authoritative content_type in its JSON response.
|
|
85
|
+
// Fall back to the CDN response header, then to audio/wav (the format
|
|
86
|
+
// every currently-listed model emits).
|
|
87
|
+
const mediaType = json.audio.content_type ??
|
|
88
|
+
audioResponse.headers.get("content-type") ??
|
|
89
|
+
"audio/wav";
|
|
90
|
+
return { audio: new Uint8Array(arrayBuffer), mediaType };
|
|
90
91
|
}
|
|
91
92
|
stream(options) {
|
|
92
93
|
return Promise.reject(new StreamingNotSupportedError(`fal-ai/${options.modelId}`));
|
|
93
94
|
}
|
|
95
|
+
getStitchOptions(modelId) {
|
|
96
|
+
// All currently-listed fal models (dia-tts, orpheus-tts, f5-tts, kokoro)
|
|
97
|
+
// return WAV (16-bit mono PCM in a RIFF container) at fal's CDN URL.
|
|
98
|
+
// Pass through providerOptions empty — fal exposes no format selector.
|
|
99
|
+
if (this.models.some((m) => m.id === modelId)) {
|
|
100
|
+
return {
|
|
101
|
+
providerOptions: {},
|
|
102
|
+
mediaType: "audio/wav",
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
dialogueCapabilities(modelId) {
|
|
108
|
+
if (modelId === "dia-tts") {
|
|
109
|
+
return { minVoices: 1, maxVoices: 2 };
|
|
110
|
+
}
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
async generateDialogue(options) {
|
|
114
|
+
if (options.modelId !== "dia-tts") {
|
|
115
|
+
throw new Error(`fal-ai/${options.modelId} does not support native dialogue; use dia-tts.`);
|
|
116
|
+
}
|
|
117
|
+
const voiceKeyOf = (v) => typeof v === "string" ? `s:${v}` : `u:${v.url}`;
|
|
118
|
+
const voiceToTag = new Map();
|
|
119
|
+
const tagged = [];
|
|
120
|
+
for (const t of options.turns) {
|
|
121
|
+
const k = voiceKeyOf(t.voice);
|
|
122
|
+
let tag = voiceToTag.get(k);
|
|
123
|
+
if (!tag) {
|
|
124
|
+
tag = `[S${voiceToTag.size + 1}]`;
|
|
125
|
+
voiceToTag.set(k, tag);
|
|
126
|
+
}
|
|
127
|
+
tagged.push(`${tag} ${t.text}`);
|
|
128
|
+
}
|
|
129
|
+
const text = tagged.join(" ");
|
|
130
|
+
const body = {
|
|
131
|
+
...options.providerOptions,
|
|
132
|
+
text,
|
|
133
|
+
};
|
|
134
|
+
// If any turn carries a URL voice reference, forward the first one as
|
|
135
|
+
// audio_url (Dia supports one reference clip per request).
|
|
136
|
+
const firstUrlVoice = options.turns.find((t) => typeof t.voice !== "string" && "url" in t.voice)?.voice;
|
|
137
|
+
if (firstUrlVoice) {
|
|
138
|
+
body.audio_url = firstUrlVoice.url;
|
|
139
|
+
}
|
|
140
|
+
const url = `${this.baseURL}/fal-ai/${options.modelId}`;
|
|
141
|
+
const response = await this.fetchFn(url, {
|
|
142
|
+
method: "POST",
|
|
143
|
+
headers: {
|
|
144
|
+
"Content-Type": "application/json",
|
|
145
|
+
Authorization: `Key ${resolveApiKey(this.apiKey, "FAL_API_KEY", "fal")}`,
|
|
146
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
147
|
+
...options.headers,
|
|
148
|
+
},
|
|
149
|
+
body: JSON.stringify(body),
|
|
150
|
+
signal: options.abortSignal,
|
|
151
|
+
});
|
|
152
|
+
await handleErrorResponse(response, `fal-ai/${options.modelId}`);
|
|
153
|
+
const json = (await response.json());
|
|
154
|
+
return await this.fetchAudio(json, options);
|
|
155
|
+
}
|
|
94
156
|
}
|
|
95
157
|
export function createFal(config = {}) {
|
|
96
158
|
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,
|
|
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,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AASjC,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;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,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,EAAE,UAAU,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,IAAuD,EACvD,OAAuD;QAEvD,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;QACtD,oEAAoE;QACpE,sEAAsE;QACtE,uCAAuC;QACvC,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,CAAC,YAAY;YACvB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YACzC,WAAW,CAAC;QAEd,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,OAA4B;QACjC,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,0BAA0B,CAAC,UAAU,OAAO,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,yEAAyE;QACzE,qEAAqE;QACrE,uEAAuE;QACvE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,WAAW;aACvB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oBAAoB,CAAC,OAAe;QAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAMtB;QAKC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,OAAO,iDAAiD,CAC3E,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,CAA2B,EAAE,EAAE,CACjD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAElD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,KAAK,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;gBAClC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9B,MAAM,IAAI,GAA4B;YACpC,GAAG,OAAO,CAAC,eAAe;YAC1B,IAAI;SACL,CAAC;QAEF,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CACvD,EAAE,KAAoC,CAAC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC;QACrC,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC;QACxD,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,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,EAAE,UAAU,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,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"}
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"AAMA,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;IAoCI,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;IAoCF,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;CA8CH;AAED,wBAAgB,eAAe,CAAC,MAAM,GAAE,6BAAkC,IAG9C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAMnE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { stripAudioTags } from "../../audio-tags.js";
|
|
2
|
-
import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
|
|
2
|
+
import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
|
|
3
3
|
import { hasFeature, } from "../../speech-provider.js";
|
|
4
4
|
export class FishAudioSpeechProvider {
|
|
5
5
|
id = "fish-audio";
|
|
@@ -46,6 +46,7 @@ export class FishAudioSpeechProvider {
|
|
|
46
46
|
"Content-Type": "application/json",
|
|
47
47
|
Authorization: `Bearer ${resolveApiKey(this.apiKey, "FISH_AUDIO_API_KEY", "Fish Audio")}`,
|
|
48
48
|
model: options.modelId,
|
|
49
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
49
50
|
...options.headers,
|
|
50
51
|
},
|
|
51
52
|
body: JSON.stringify(body),
|
|
@@ -74,6 +75,7 @@ export class FishAudioSpeechProvider {
|
|
|
74
75
|
"Content-Type": "application/json",
|
|
75
76
|
Authorization: `Bearer ${resolveApiKey(this.apiKey, "FISH_AUDIO_API_KEY", "Fish Audio")}`,
|
|
76
77
|
model: options.modelId,
|
|
78
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
77
79
|
...options.headers,
|
|
78
80
|
},
|
|
79
81
|
body: JSON.stringify(body),
|
|
@@ -88,6 +90,60 @@ export class FishAudioSpeechProvider {
|
|
|
88
90
|
mediaType: response.headers.get("content-type") ?? "audio/mpeg",
|
|
89
91
|
};
|
|
90
92
|
}
|
|
93
|
+
getStitchOptions(modelId) {
|
|
94
|
+
if (this.models.some((m) => m.id === modelId)) {
|
|
95
|
+
return {
|
|
96
|
+
providerOptions: { format: "wav" },
|
|
97
|
+
mediaType: "audio/wav",
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
dialogueCapabilities(modelId) {
|
|
103
|
+
if (modelId === "s2-pro") {
|
|
104
|
+
return { minVoices: 1, maxVoices: 4 };
|
|
105
|
+
}
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
async generateDialogue(options) {
|
|
109
|
+
if (options.modelId !== "s2-pro") {
|
|
110
|
+
throw new Error(`fish-audio/${options.modelId} does not support native dialogue; use s2-pro.`);
|
|
111
|
+
}
|
|
112
|
+
const voiceToIndex = new Map();
|
|
113
|
+
const tagged = [];
|
|
114
|
+
for (const t of options.turns) {
|
|
115
|
+
let idx = voiceToIndex.get(t.voice);
|
|
116
|
+
if (idx === undefined) {
|
|
117
|
+
idx = voiceToIndex.size;
|
|
118
|
+
voiceToIndex.set(t.voice, idx);
|
|
119
|
+
}
|
|
120
|
+
tagged.push(`<|speaker:${idx}|>${t.text}`);
|
|
121
|
+
}
|
|
122
|
+
const text = tagged.join("\n");
|
|
123
|
+
const referenceIds = Array.from(voiceToIndex.keys());
|
|
124
|
+
const body = {
|
|
125
|
+
...options.providerOptions,
|
|
126
|
+
text,
|
|
127
|
+
reference_id: referenceIds,
|
|
128
|
+
};
|
|
129
|
+
const response = await this.fetchFn(`${this.baseURL}/v1/tts`, {
|
|
130
|
+
method: "POST",
|
|
131
|
+
headers: {
|
|
132
|
+
"Content-Type": "application/json",
|
|
133
|
+
Authorization: `Bearer ${resolveApiKey(this.apiKey, "FISH_AUDIO_API_KEY", "Fish Audio")}`,
|
|
134
|
+
model: options.modelId,
|
|
135
|
+
"X-User-Agent": SDK_USER_AGENT,
|
|
136
|
+
...options.headers,
|
|
137
|
+
},
|
|
138
|
+
body: JSON.stringify(body),
|
|
139
|
+
signal: options.abortSignal,
|
|
140
|
+
});
|
|
141
|
+
await handleErrorResponse(response, `fish-audio/${options.modelId}`);
|
|
142
|
+
return {
|
|
143
|
+
audio: new Uint8Array(await response.arrayBuffer()),
|
|
144
|
+
mediaType: response.headers.get("content-type") ?? "audio/mpeg",
|
|
145
|
+
};
|
|
146
|
+
}
|
|
91
147
|
}
|
|
92
148
|
export function createFishAudio(config = {}) {
|
|
93
149
|
const provider = new FishAudioSpeechProvider(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,
|
|
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
|
|
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 ["
|
|
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":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/google/index.ts"],"names":[],"mappings":"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"}
|