@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.
- package/README.md +165 -108
- package/dist/__tests__/e2e/_save-audio.d.ts +0 -42
- package/dist/__tests__/e2e/_save-audio.d.ts.map +1 -1
- package/dist/__tests__/e2e/_save-audio.js +0 -59
- package/dist/__tests__/e2e/_save-audio.js.map +1 -1
- package/dist/audio-duration.d.ts +0 -5
- package/dist/audio-duration.d.ts.map +1 -1
- package/dist/audio-duration.js +3 -10
- package/dist/audio-duration.js.map +1 -1
- package/dist/audio-utils.d.ts +0 -10
- package/dist/audio-utils.d.ts.map +1 -1
- package/dist/audio-utils.js +2 -14
- package/dist/audio-utils.js.map +1 -1
- package/dist/captions.d.ts +0 -108
- package/dist/captions.d.ts.map +1 -1
- package/dist/captions.js +8 -98
- package/dist/captions.js.map +1 -1
- package/dist/conversation/attribute-timestamps.d.ts +26 -0
- package/dist/conversation/attribute-timestamps.d.ts.map +1 -0
- package/dist/conversation/attribute-timestamps.js +276 -0
- package/dist/conversation/attribute-timestamps.js.map +1 -0
- package/dist/conversation/dispatch.d.ts +5 -5
- package/dist/conversation/dispatch.d.ts.map +1 -1
- package/dist/conversation/dispatch.js +18 -8
- package/dist/conversation/dispatch.js.map +1 -1
- package/dist/conversation/errors.d.ts +3 -0
- package/dist/conversation/errors.d.ts.map +1 -1
- package/dist/conversation/errors.js +6 -0
- package/dist/conversation/errors.js.map +1 -1
- package/dist/conversation/pcm-concat.d.ts +0 -23
- package/dist/conversation/pcm-concat.d.ts.map +1 -1
- package/dist/conversation/pcm-concat.js +5 -43
- package/dist/conversation/pcm-concat.js.map +1 -1
- package/dist/conversation/proportional-fill.d.ts +10 -0
- package/dist/conversation/proportional-fill.d.ts.map +1 -0
- package/dist/conversation/proportional-fill.js +64 -0
- package/dist/conversation/proportional-fill.js.map +1 -0
- package/dist/conversation/silence-detection.d.ts +14 -0
- package/dist/conversation/silence-detection.d.ts.map +1 -0
- package/dist/conversation/silence-detection.js +52 -0
- package/dist/conversation/silence-detection.js.map +1 -0
- package/dist/conversation/stitch.d.ts +5 -6
- package/dist/conversation/stitch.d.ts.map +1 -1
- package/dist/conversation/stitch.js +42 -36
- package/dist/conversation/stitch.js.map +1 -1
- package/dist/conversation/types.d.ts +1 -35
- package/dist/conversation/types.d.ts.map +1 -1
- package/dist/conversation/validate.d.ts +1 -16
- package/dist/conversation/validate.d.ts.map +1 -1
- package/dist/conversation/validate.js +29 -29
- package/dist/conversation/validate.js.map +1 -1
- package/dist/default-stt-fallback.d.ts +3 -0
- package/dist/default-stt-fallback.d.ts.map +1 -0
- package/dist/default-stt-fallback.js +11 -0
- package/dist/default-stt-fallback.js.map +1 -0
- package/dist/derive-timestamps.d.ts +1 -5
- package/dist/derive-timestamps.d.ts.map +1 -1
- package/dist/derive-timestamps.js +1 -15
- package/dist/derive-timestamps.js.map +1 -1
- package/dist/errors.d.ts +5 -12
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +12 -14
- package/dist/errors.js.map +1 -1
- package/dist/generate-conversation.d.ts +4 -3
- package/dist/generate-conversation.d.ts.map +1 -1
- package/dist/generate-conversation.js +162 -67
- package/dist/generate-conversation.js.map +1 -1
- package/dist/generate-speech.d.ts +1 -26
- package/dist/generate-speech.d.ts.map +1 -1
- package/dist/generate-speech.js +85 -64
- package/dist/generate-speech.js.map +1 -1
- package/dist/index.d.ts +4 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +2 -13
- package/dist/logger.js.map +1 -1
- package/dist/metadata.d.ts +0 -22
- package/dist/metadata.d.ts.map +1 -1
- package/dist/provider-utils.d.ts +3 -9
- package/dist/provider-utils.d.ts.map +1 -1
- package/dist/provider-utils.js +34 -51
- package/dist/provider-utils.js.map +1 -1
- package/dist/providers/cartesia/alignment.d.ts +0 -16
- package/dist/providers/cartesia/alignment.d.ts.map +1 -1
- package/dist/providers/cartesia/alignment.js +1 -6
- package/dist/providers/cartesia/alignment.js.map +1 -1
- package/dist/providers/cartesia/index.d.ts +7 -19
- package/dist/providers/cartesia/index.d.ts.map +1 -1
- package/dist/providers/cartesia/index.js +68 -80
- package/dist/providers/cartesia/index.js.map +1 -1
- package/dist/providers/deepgram/index.d.ts +7 -8
- package/dist/providers/deepgram/index.d.ts.map +1 -1
- package/dist/providers/deepgram/index.js +17 -18
- package/dist/providers/deepgram/index.js.map +1 -1
- package/dist/providers/elevenlabs/alignment.d.ts +7 -21
- package/dist/providers/elevenlabs/alignment.d.ts.map +1 -1
- package/dist/providers/elevenlabs/alignment.js +8 -9
- package/dist/providers/elevenlabs/alignment.js.map +1 -1
- package/dist/providers/elevenlabs/index.d.ts +7 -38
- package/dist/providers/elevenlabs/index.d.ts.map +1 -1
- package/dist/providers/elevenlabs/index.js +161 -169
- package/dist/providers/elevenlabs/index.js.map +1 -1
- package/dist/providers/fal/index.d.ts +7 -18
- package/dist/providers/fal/index.d.ts.map +1 -1
- package/dist/providers/fal/index.js +37 -31
- package/dist/providers/fal/index.js.map +1 -1
- package/dist/providers/fish-audio/index.d.ts +7 -8
- package/dist/providers/fish-audio/index.d.ts.map +1 -1
- package/dist/providers/fish-audio/index.js +23 -19
- package/dist/providers/fish-audio/index.js.map +1 -1
- package/dist/providers/gateway/index.d.ts +68 -0
- package/dist/providers/gateway/index.d.ts.map +1 -0
- package/dist/providers/gateway/index.js +236 -0
- package/dist/providers/gateway/index.js.map +1 -0
- package/dist/providers/google/index.d.ts +7 -20
- package/dist/providers/google/index.d.ts.map +1 -1
- package/dist/providers/google/index.js +161 -151
- package/dist/providers/google/index.js.map +1 -1
- package/dist/providers/hume/alignment.d.ts +30 -35
- package/dist/providers/hume/alignment.d.ts.map +1 -1
- package/dist/providers/hume/alignment.js +14 -8
- package/dist/providers/hume/alignment.js.map +1 -1
- package/dist/providers/hume/index.d.ts +7 -16
- package/dist/providers/hume/index.d.ts.map +1 -1
- package/dist/providers/hume/index.js +55 -65
- package/dist/providers/hume/index.js.map +1 -1
- package/dist/providers/inworld/alignment.d.ts +8 -22
- package/dist/providers/inworld/alignment.d.ts.map +1 -1
- package/dist/providers/inworld/alignment.js +9 -8
- package/dist/providers/inworld/alignment.js.map +1 -1
- package/dist/providers/inworld/index.d.ts +7 -20
- package/dist/providers/inworld/index.d.ts.map +1 -1
- package/dist/providers/inworld/index.js +47 -39
- package/dist/providers/inworld/index.js.map +1 -1
- package/dist/providers/mistral/index.d.ts +7 -8
- package/dist/providers/mistral/index.d.ts.map +1 -1
- package/dist/providers/mistral/index.js +39 -38
- package/dist/providers/mistral/index.js.map +1 -1
- package/dist/providers/murf/alignment.d.ts +10 -19
- package/dist/providers/murf/alignment.d.ts.map +1 -1
- package/dist/providers/murf/alignment.js +10 -5
- package/dist/providers/murf/alignment.js.map +1 -1
- package/dist/providers/murf/index.d.ts +7 -16
- package/dist/providers/murf/index.d.ts.map +1 -1
- package/dist/providers/murf/index.js +65 -57
- package/dist/providers/murf/index.js.map +1 -1
- package/dist/providers/openai/index.d.ts +36 -29
- package/dist/providers/openai/index.d.ts.map +1 -1
- package/dist/providers/openai/index.js +270 -106
- package/dist/providers/openai/index.js.map +1 -1
- package/dist/providers/resemble/alignment.d.ts +8 -29
- package/dist/providers/resemble/alignment.d.ts.map +1 -1
- package/dist/providers/resemble/alignment.js +9 -12
- package/dist/providers/resemble/alignment.js.map +1 -1
- package/dist/providers/resemble/index.d.ts +7 -11
- package/dist/providers/resemble/index.d.ts.map +1 -1
- package/dist/providers/resemble/index.js +54 -48
- package/dist/providers/resemble/index.js.map +1 -1
- package/dist/providers/xai/index.d.ts +7 -9
- package/dist/providers/xai/index.d.ts.map +1 -1
- package/dist/providers/xai/index.js +37 -40
- package/dist/providers/xai/index.js.map +1 -1
- package/dist/providers.d.ts +29 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +15 -0
- package/dist/providers.js.map +1 -0
- package/dist/resolve-provider.d.ts.map +1 -1
- package/dist/resolve-provider.js +8 -51
- package/dist/resolve-provider.js.map +1 -1
- package/dist/speech-provider.d.ts +13 -53
- package/dist/speech-provider.d.ts.map +1 -1
- package/dist/speech-provider.js +5 -26
- package/dist/speech-provider.js.map +1 -1
- package/dist/speech-result.d.ts +8 -9
- package/dist/speech-result.d.ts.map +1 -1
- package/dist/speech-result.js.map +1 -1
- package/dist/speech-to-text-provider.d.ts +0 -12
- package/dist/speech-to-text-provider.d.ts.map +1 -1
- package/dist/stream-speech.d.ts.map +1 -1
- package/dist/stream-speech.js +2 -3
- package/dist/stream-speech.js.map +1 -1
- package/dist/timestamps.d.ts +3 -17
- package/dist/timestamps.d.ts.map +1 -1
- package/dist/turns.d.ts +9 -0
- package/dist/turns.d.ts.map +1 -0
- package/dist/turns.js +21 -0
- package/dist/turns.js.map +1 -0
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/volume-adjust.d.ts +0 -6
- package/dist/volume-adjust.d.ts.map +1 -1
- package/dist/volume-adjust.js +0 -6
- package/dist/volume-adjust.js.map +1 -1
- package/package.json +11 -66
- package/dist/stt-providers/openai/index.d.ts +0 -42
- package/dist/stt-providers/openai/index.d.ts.map +0 -1
- package/dist/stt-providers/openai/index.js +0 -184
- package/dist/stt-providers/openai/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/cartesia/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,sBAAuB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3E,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/cartesia/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,WAAW,4BAA4B;IAC3C,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,oBAAoB,EAAG,UAAmB,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAwDtC,CAAC;AAEX,qBAAa,sBAAuB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3E,QAAQ,CAAC,EAAE,aAAwB;IACnC,QAAQ,CAAC,YAAY,aAAa;IAElC,QAAQ,CAAC,MAAM,uBAAmB;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAEjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CA2DrB;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,4BAA4B;IAMhD,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IA2CjC,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,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAC;YA4CY,sBAAsB;IA+D9B,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;IAwCF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;CAejC;AAED,wBAAgB,cAAc,CAAC,MAAM,GAAE,4BAAiC,IAI7C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAOlE"}
|
|
@@ -4,71 +4,68 @@ import { SpeechSDKError } from "../../errors.js";
|
|
|
4
4
|
import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
|
|
5
5
|
import { hasFeature, } from "../../speech-provider.js";
|
|
6
6
|
import { mergeWordTimestampMessages, } from "./alignment.js";
|
|
7
|
+
export const CARTESIA_PROVIDER_ID = "cartesia";
|
|
8
|
+
export const CARTESIA_MODELS = [
|
|
9
|
+
{
|
|
10
|
+
id: "sonic-3",
|
|
11
|
+
releaseDate: "2025-10-27",
|
|
12
|
+
languages: [
|
|
13
|
+
"en",
|
|
14
|
+
"fr",
|
|
15
|
+
"de",
|
|
16
|
+
"es",
|
|
17
|
+
"pt",
|
|
18
|
+
"zh",
|
|
19
|
+
"ja",
|
|
20
|
+
"hi",
|
|
21
|
+
"it",
|
|
22
|
+
"ko",
|
|
23
|
+
"nl",
|
|
24
|
+
"pl",
|
|
25
|
+
"ru",
|
|
26
|
+
"sv",
|
|
27
|
+
"tr",
|
|
28
|
+
"tl",
|
|
29
|
+
"bg",
|
|
30
|
+
"ro",
|
|
31
|
+
"ar",
|
|
32
|
+
"cs",
|
|
33
|
+
"el",
|
|
34
|
+
"fi",
|
|
35
|
+
"hr",
|
|
36
|
+
"ms",
|
|
37
|
+
"sk",
|
|
38
|
+
"da",
|
|
39
|
+
"ta",
|
|
40
|
+
"uk",
|
|
41
|
+
"hu",
|
|
42
|
+
"no",
|
|
43
|
+
"vi",
|
|
44
|
+
"bn",
|
|
45
|
+
"th",
|
|
46
|
+
"he",
|
|
47
|
+
"ka",
|
|
48
|
+
"id",
|
|
49
|
+
"te",
|
|
50
|
+
"gu",
|
|
51
|
+
"kn",
|
|
52
|
+
"ml",
|
|
53
|
+
"mr",
|
|
54
|
+
"pa",
|
|
55
|
+
],
|
|
56
|
+
features: ["streaming", "audio-tags", "inline-voice-cloning", "timestamps"],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "sonic-2",
|
|
60
|
+
releaseDate: "2025-03-13",
|
|
61
|
+
languages: ["en"],
|
|
62
|
+
features: ["streaming", "timestamps"],
|
|
63
|
+
},
|
|
64
|
+
];
|
|
7
65
|
export class CartesiaSpeechProvider {
|
|
8
|
-
id =
|
|
66
|
+
id = CARTESIA_PROVIDER_ID;
|
|
9
67
|
defaultModel = "sonic-3";
|
|
10
|
-
models =
|
|
11
|
-
{
|
|
12
|
-
id: "sonic-3",
|
|
13
|
-
releaseDate: "2025-10-27",
|
|
14
|
-
languages: [
|
|
15
|
-
"en",
|
|
16
|
-
"fr",
|
|
17
|
-
"de",
|
|
18
|
-
"es",
|
|
19
|
-
"pt",
|
|
20
|
-
"zh",
|
|
21
|
-
"ja",
|
|
22
|
-
"hi",
|
|
23
|
-
"it",
|
|
24
|
-
"ko",
|
|
25
|
-
"nl",
|
|
26
|
-
"pl",
|
|
27
|
-
"ru",
|
|
28
|
-
"sv",
|
|
29
|
-
"tr",
|
|
30
|
-
"tl",
|
|
31
|
-
"bg",
|
|
32
|
-
"ro",
|
|
33
|
-
"ar",
|
|
34
|
-
"cs",
|
|
35
|
-
"el",
|
|
36
|
-
"fi",
|
|
37
|
-
"hr",
|
|
38
|
-
"ms",
|
|
39
|
-
"sk",
|
|
40
|
-
"da",
|
|
41
|
-
"ta",
|
|
42
|
-
"uk",
|
|
43
|
-
"hu",
|
|
44
|
-
"no",
|
|
45
|
-
"vi",
|
|
46
|
-
"bn",
|
|
47
|
-
"th",
|
|
48
|
-
"he",
|
|
49
|
-
"ka",
|
|
50
|
-
"id",
|
|
51
|
-
"te",
|
|
52
|
-
"gu",
|
|
53
|
-
"kn",
|
|
54
|
-
"ml",
|
|
55
|
-
"mr",
|
|
56
|
-
"pa",
|
|
57
|
-
],
|
|
58
|
-
features: [
|
|
59
|
-
"streaming",
|
|
60
|
-
"audio-tags",
|
|
61
|
-
"inline-voice-cloning",
|
|
62
|
-
{ id: "timestamps", mode: "native" },
|
|
63
|
-
],
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
id: "sonic-2",
|
|
67
|
-
releaseDate: "2025-03-13",
|
|
68
|
-
languages: ["en"],
|
|
69
|
-
features: ["streaming", { id: "timestamps", mode: "native" }],
|
|
70
|
-
},
|
|
71
|
-
];
|
|
68
|
+
models = CARTESIA_MODELS;
|
|
72
69
|
static PASSTHROUGH_TAGS = ["laughter"];
|
|
73
70
|
static EMOTIONS = [
|
|
74
71
|
"neutral",
|
|
@@ -192,7 +189,7 @@ export class CartesiaSpeechProvider {
|
|
|
192
189
|
body: JSON.stringify(body),
|
|
193
190
|
signal: options.abortSignal,
|
|
194
191
|
});
|
|
195
|
-
await handleErrorResponse(response
|
|
192
|
+
await handleErrorResponse(response);
|
|
196
193
|
const arrayBuffer = await response.arrayBuffer();
|
|
197
194
|
const mediaType = response.headers.get("content-type") ?? "audio/wav";
|
|
198
195
|
return {
|
|
@@ -201,10 +198,7 @@ export class CartesiaSpeechProvider {
|
|
|
201
198
|
};
|
|
202
199
|
}
|
|
203
200
|
async generateWithTimestamps(options) {
|
|
204
|
-
// Force raw pcm_s16le @ 24kHz
|
|
205
|
-
// wraps them in a WAV header at end-of-stream. Allowing a caller to
|
|
206
|
-
// override the container would corrupt the merged audio since Cartesia
|
|
207
|
-
// SSE's wav/mp3 chunks are not safely concat-able.
|
|
201
|
+
// Force raw pcm_s16le @ 24kHz — Cartesia SSE wav/mp3 chunks aren't safely concat-able.
|
|
208
202
|
const sampleRate = 24_000;
|
|
209
203
|
const body = {
|
|
210
204
|
...options.providerOptions,
|
|
@@ -231,13 +225,11 @@ export class CartesiaSpeechProvider {
|
|
|
231
225
|
body: JSON.stringify(body),
|
|
232
226
|
signal: options.abortSignal,
|
|
233
227
|
});
|
|
234
|
-
await handleErrorResponse(response
|
|
228
|
+
await handleErrorResponse(response);
|
|
235
229
|
if (!response.body) {
|
|
236
230
|
throw new SpeechSDKError(`cartesia/${options.modelId}: /tts/sse response has no body`);
|
|
237
231
|
}
|
|
238
232
|
const { audio: pcmAudio, timestamps } = await collectCartesiaSse(response.body, `cartesia/${options.modelId}`);
|
|
239
|
-
// Concatenated PCM → standard WAV file, so callers don't need to know
|
|
240
|
-
// sample rate / encoding out-of-band to decode.
|
|
241
233
|
const audio = await wrapPcm16Mono(pcmAudio, sampleRate);
|
|
242
234
|
return {
|
|
243
235
|
audio,
|
|
@@ -270,7 +262,7 @@ export class CartesiaSpeechProvider {
|
|
|
270
262
|
body: JSON.stringify(body),
|
|
271
263
|
signal: options.abortSignal,
|
|
272
264
|
});
|
|
273
|
-
await handleErrorResponse(response
|
|
265
|
+
await handleErrorResponse(response);
|
|
274
266
|
if (!response.body) {
|
|
275
267
|
throw new Error(`cartesia/${options.modelId}: response has no body`);
|
|
276
268
|
}
|
|
@@ -292,26 +284,22 @@ export class CartesiaSpeechProvider {
|
|
|
292
284
|
mediaType: "audio/wav",
|
|
293
285
|
};
|
|
294
286
|
}
|
|
295
|
-
return
|
|
287
|
+
return;
|
|
296
288
|
}
|
|
297
289
|
}
|
|
298
290
|
export function createCartesia(config = {}) {
|
|
299
291
|
const provider = new CartesiaSpeechProvider(config);
|
|
292
|
+
const fallbackSTT = config.fallbackSTT;
|
|
300
293
|
return function cartesia(modelId) {
|
|
301
294
|
return {
|
|
302
295
|
provider,
|
|
303
296
|
modelId: modelId ?? provider.defaultModel,
|
|
297
|
+
...(fallbackSTT && { fallbackSTT }),
|
|
304
298
|
};
|
|
305
299
|
};
|
|
306
300
|
}
|
|
307
301
|
const SSE_LEADING_SPACE = /^ /;
|
|
308
|
-
|
|
309
|
-
* Drain a Cartesia `/tts/sse` response body into a single audio buffer plus
|
|
310
|
-
* a flat `WordTimestamp[]`. Buffers are collected separately because the
|
|
311
|
-
* server may interleave `chunk` and `timestamps` events in any order — we
|
|
312
|
-
* concatenate audio chunks in arrival order and flatten timestamp messages
|
|
313
|
-
* the same way at end-of-stream (`type: "done"`).
|
|
314
|
-
*/
|
|
302
|
+
// Server interleaves chunk + timestamps events; collect both in arrival order.
|
|
315
303
|
async function collectCartesiaSse(body, modelLabel) {
|
|
316
304
|
const audioParts = [];
|
|
317
305
|
const timestampMessages = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/cartesia/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/cartesia/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +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 DeepgramSpeechProviderConfig {
|
|
3
4
|
apiKey?: string;
|
|
4
5
|
baseURL?: string;
|
|
6
|
+
fallbackSTT?: ResolvedSTTModel;
|
|
5
7
|
fetch?: typeof globalThis.fetch;
|
|
6
8
|
}
|
|
9
|
+
export declare const DEEPGRAM_PROVIDER_ID: "deepgram";
|
|
10
|
+
export declare const DEEPGRAM_MODELS: readonly ModelInfo[];
|
|
7
11
|
export declare class DeepgramSpeechProvider implements SpeechProvider<string, string> {
|
|
8
|
-
readonly id
|
|
12
|
+
readonly id: "deepgram";
|
|
9
13
|
readonly defaultModel = "aura-2";
|
|
10
|
-
readonly models: readonly [
|
|
11
|
-
readonly id: "aura-2";
|
|
12
|
-
readonly releaseDate: "2025-04-15";
|
|
13
|
-
readonly languages: readonly ["en", "es", "de", "fr", "it", "ja", "nl"];
|
|
14
|
-
readonly features: readonly ["streaming"];
|
|
15
|
-
}];
|
|
14
|
+
readonly models: readonly ModelInfo[];
|
|
16
15
|
private readonly apiKey;
|
|
17
16
|
private readonly baseURL;
|
|
18
17
|
private readonly fetchFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/deepgram/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/deepgram/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;AAwBzE,MAAM,WAAW,4BAA4B;IAC3C,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,oBAAoB,EAAG,UAAmB,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAOtC,CAAC;AAEX,qBAAa,sBAAuB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3E,QAAQ,CAAC,EAAE,aAAwB;IACnC,QAAQ,CAAC,YAAY,YAAY;IAEjC,QAAQ,CAAC,MAAM,uBAAmB;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,4BAA4B;IAM1C,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;IA0BI,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;IA2BF,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;;;CAajC;AAED,wBAAgB,cAAc,CAAC,MAAM,GAAE,4BAAiC,IAI7C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAOlE"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
|
|
2
|
-
|
|
3
|
-
* Deepgram's /v1/speak endpoint takes audio-shaping parameters (model,
|
|
4
|
-
* encoding, sample_rate, container, bit_rate, ...) as query-string params.
|
|
5
|
-
* Only `text` (or `url`) belongs in the JSON body — putting anything else
|
|
6
|
-
* there causes a PAYLOAD_ERROR.
|
|
7
|
-
*/
|
|
2
|
+
// Deepgram /v1/speak takes audio-shaping params on the query string; only `text` in body or it returns PAYLOAD_ERROR.
|
|
8
3
|
function buildSpeakUrl(baseURL, options) {
|
|
9
4
|
const modelParam = options.voice
|
|
10
5
|
? `${options.modelId}-${options.voice}`
|
|
@@ -18,17 +13,19 @@ function buildSpeakUrl(baseURL, options) {
|
|
|
18
13
|
}
|
|
19
14
|
return `${baseURL}/speak?${qs.toString()}`;
|
|
20
15
|
}
|
|
16
|
+
export const DEEPGRAM_PROVIDER_ID = "deepgram";
|
|
17
|
+
export const DEEPGRAM_MODELS = [
|
|
18
|
+
{
|
|
19
|
+
id: "aura-2",
|
|
20
|
+
releaseDate: "2025-04-15",
|
|
21
|
+
languages: ["en", "es", "de", "fr", "it", "ja", "nl"],
|
|
22
|
+
features: ["streaming"],
|
|
23
|
+
},
|
|
24
|
+
];
|
|
21
25
|
export class DeepgramSpeechProvider {
|
|
22
|
-
id =
|
|
26
|
+
id = DEEPGRAM_PROVIDER_ID;
|
|
23
27
|
defaultModel = "aura-2";
|
|
24
|
-
models =
|
|
25
|
-
{
|
|
26
|
-
id: "aura-2",
|
|
27
|
-
releaseDate: "2025-04-15",
|
|
28
|
-
languages: ["en", "es", "de", "fr", "it", "ja", "nl"],
|
|
29
|
-
features: ["streaming"],
|
|
30
|
-
},
|
|
31
|
-
];
|
|
28
|
+
models = DEEPGRAM_MODELS;
|
|
32
29
|
apiKey;
|
|
33
30
|
baseURL;
|
|
34
31
|
fetchFn;
|
|
@@ -50,7 +47,7 @@ export class DeepgramSpeechProvider {
|
|
|
50
47
|
body: JSON.stringify({ text: options.text }),
|
|
51
48
|
signal: options.abortSignal,
|
|
52
49
|
});
|
|
53
|
-
await handleErrorResponse(response
|
|
50
|
+
await handleErrorResponse(response);
|
|
54
51
|
const arrayBuffer = await response.arrayBuffer();
|
|
55
52
|
const mediaType = response.headers.get("content-type") ?? "audio/mpeg";
|
|
56
53
|
return {
|
|
@@ -71,7 +68,7 @@ export class DeepgramSpeechProvider {
|
|
|
71
68
|
body: JSON.stringify({ text: options.text }),
|
|
72
69
|
signal: options.abortSignal,
|
|
73
70
|
});
|
|
74
|
-
await handleErrorResponse(response
|
|
71
|
+
await handleErrorResponse(response);
|
|
75
72
|
if (!response.body) {
|
|
76
73
|
throw new Error(`deepgram/${options.modelId}: response has no body`);
|
|
77
74
|
}
|
|
@@ -91,15 +88,17 @@ export class DeepgramSpeechProvider {
|
|
|
91
88
|
mediaType: "audio/wav",
|
|
92
89
|
};
|
|
93
90
|
}
|
|
94
|
-
return
|
|
91
|
+
return;
|
|
95
92
|
}
|
|
96
93
|
}
|
|
97
94
|
export function createDeepgram(config = {}) {
|
|
98
95
|
const provider = new DeepgramSpeechProvider(config);
|
|
96
|
+
const fallbackSTT = config.fallbackSTT;
|
|
99
97
|
return function deepgram(modelId) {
|
|
100
98
|
return {
|
|
101
99
|
provider,
|
|
102
100
|
modelId: modelId ?? provider.defaultModel,
|
|
101
|
+
...(fallbackSTT && { fallbackSTT }),
|
|
103
102
|
};
|
|
104
103
|
};
|
|
105
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/deepgram/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/deepgram/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
import type { WordTimestamp } from "../../timestamps.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*/
|
|
9
|
-
export interface ElevenLabsAlignment {
|
|
10
|
-
readonly character_end_times_seconds: readonly number[];
|
|
11
|
-
readonly character_start_times_seconds: readonly number[];
|
|
12
|
-
readonly characters: readonly string[];
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Aggregates ElevenLabs character-level alignment into word-level timestamps
|
|
16
|
-
* by splitting on whitespace. Non-whitespace runs become words; the word's
|
|
17
|
-
* start is the first char's start time, the end is the last char's end time.
|
|
18
|
-
*
|
|
19
|
-
* Prefer `normalized_alignment` when the input contains numbers or
|
|
20
|
-
* abbreviations — ElevenLabs expands those during synthesis ("$5" → "five
|
|
21
|
-
* dollars"), and normalized alignment matches what was actually spoken.
|
|
22
|
-
*/
|
|
3
|
+
export declare const elevenLabsAlignmentSchema: z.ZodObject<{
|
|
4
|
+
character_end_times_seconds: z.ZodArray<z.ZodNumber>;
|
|
5
|
+
character_start_times_seconds: z.ZodArray<z.ZodNumber>;
|
|
6
|
+
characters: z.ZodArray<z.ZodString>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export type ElevenLabsAlignment = z.infer<typeof elevenLabsAlignmentSchema>;
|
|
23
9
|
export declare function alignmentToWordTimestamps(alignment: ElevenLabsAlignment): WordTimestamp[];
|
|
24
10
|
//# sourceMappingURL=alignment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/providers/elevenlabs/alignment.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/providers/elevenlabs/alignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAK5E,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,mBAAmB,GAC7B,aAAa,EAAE,CA2CjB"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// ElevenLabs `/with-timestamps` `alignment` / `normalized_alignment`.
|
|
3
|
+
export const elevenLabsAlignmentSchema = z.object({
|
|
4
|
+
character_end_times_seconds: z.array(z.number()),
|
|
5
|
+
character_start_times_seconds: z.array(z.number()),
|
|
6
|
+
characters: z.array(z.string()),
|
|
7
|
+
});
|
|
1
8
|
const WHITESPACE_CHAR = /^\s$/;
|
|
2
|
-
|
|
3
|
-
* Aggregates ElevenLabs character-level alignment into word-level timestamps
|
|
4
|
-
* by splitting on whitespace. Non-whitespace runs become words; the word's
|
|
5
|
-
* start is the first char's start time, the end is the last char's end time.
|
|
6
|
-
*
|
|
7
|
-
* Prefer `normalized_alignment` when the input contains numbers or
|
|
8
|
-
* abbreviations — ElevenLabs expands those during synthesis ("$5" → "five
|
|
9
|
-
* dollars"), and normalized alignment matches what was actually spoken.
|
|
10
|
-
*/
|
|
9
|
+
// Prefer normalized_alignment for inputs with numbers/abbreviations — ElevenLabs expands those during synthesis.
|
|
11
10
|
export function alignmentToWordTimestamps(alignment) {
|
|
12
11
|
const chars = alignment.characters;
|
|
13
12
|
const starts = alignment.character_start_times_seconds;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/alignment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/alignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,2BAA2B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChD,6BAA6B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAC;AAGH,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B,iHAAiH;AACjH,MAAM,UAAU,yBAAyB,CACvC,SAA8B;IAE9B,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,6BAA6B,CAAC;IACvD,MAAM,IAAI,GAAG,SAAS,CAAC,2BAA2B,CAAC;IAEnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1D,GAAG,GAAG,EAAE,CAAC;gBACT,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS,GAAG,CAAC,CAAC;YACd,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,GAAG,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,CAAC,CAAC;IACd,CAAC;IAED,IAAI,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,49 +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 } from "../../speech-to-text-provider.js";
|
|
2
3
|
import type { WordTimestamp } from "../../timestamps.js";
|
|
3
4
|
export interface ElevenLabsSpeechProviderConfig {
|
|
4
5
|
apiKey?: string;
|
|
5
6
|
baseURL?: string;
|
|
7
|
+
fallbackSTT?: ResolvedSTTModel;
|
|
6
8
|
fetch?: typeof globalThis.fetch;
|
|
7
9
|
}
|
|
10
|
+
export declare const ELEVENLABS_PROVIDER_ID: "elevenlabs";
|
|
11
|
+
export declare const ELEVENLABS_MODELS: readonly ModelInfo[];
|
|
8
12
|
export declare class ElevenLabsSpeechProvider implements SpeechProvider<string, string> {
|
|
9
|
-
readonly id
|
|
13
|
+
readonly id: "elevenlabs";
|
|
10
14
|
readonly defaultModel = "eleven_multilingual_v2";
|
|
11
|
-
|
|
12
|
-
private static readonly FLASH_V2_5_LANGUAGES;
|
|
13
|
-
private static readonly V3_LANGUAGES;
|
|
14
|
-
readonly models: readonly [{
|
|
15
|
-
readonly id: "eleven_v3";
|
|
16
|
-
readonly releaseDate: "2025-06-08";
|
|
17
|
-
readonly languages: readonly ["af", "ar", "hy", "as", "az", "be", "bn", "bs", "bg", "ca", "ceb", "ny", "hr", "cs", "da", "nl", "en", "et", "fil", "fi", "fr", "gl", "ka", "de", "el", "gu", "ha", "he", "hi", "hu", "is", "id", "ga", "it", "ja", "jv", "kn", "kk", "ky", "ko", "lv", "ln", "lt", "lb", "mk", "ms", "ml", "zh", "mr", "ne", "no", "ps", "fa", "pl", "pt", "pa", "ro", "ru", "sr", "sd", "sk", "sl", "so", "es", "sw", "sv", "ta", "te", "th", "tr", "uk", "ur", "vi", "cy"];
|
|
18
|
-
readonly features: readonly ["streaming", "audio-tags", {
|
|
19
|
-
readonly id: "timestamps";
|
|
20
|
-
readonly mode: "native";
|
|
21
|
-
}];
|
|
22
|
-
}, {
|
|
23
|
-
readonly id: "eleven_multilingual_v2";
|
|
24
|
-
readonly releaseDate: "2023-08-22";
|
|
25
|
-
readonly languages: readonly ["ar", "bg", "cs", "da", "de", "el", "en", "es", "fi", "fil", "fr", "he", "hi", "hr", "id", "it", "ja", "ko", "ms", "nl", "pl", "pt", "ro", "ru", "sk", "sv", "ta", "uk", "zh"];
|
|
26
|
-
readonly features: readonly ["streaming", {
|
|
27
|
-
readonly id: "timestamps";
|
|
28
|
-
readonly mode: "native";
|
|
29
|
-
}];
|
|
30
|
-
}, {
|
|
31
|
-
readonly id: "eleven_flash_v2_5";
|
|
32
|
-
readonly releaseDate: "2024-12-01";
|
|
33
|
-
readonly languages: readonly ["ar", "bg", "cs", "da", "de", "el", "en", "es", "fi", "fil", "fr", "he", "hi", "hr", "id", "it", "ja", "ko", "ms", "nl", "pl", "pt", "ro", "ru", "sk", "sv", "ta", "uk", "zh", "hu", "no", "vi"];
|
|
34
|
-
readonly features: readonly ["streaming", {
|
|
35
|
-
readonly id: "timestamps";
|
|
36
|
-
readonly mode: "native";
|
|
37
|
-
}];
|
|
38
|
-
}, {
|
|
39
|
-
readonly id: "eleven_flash_v2";
|
|
40
|
-
readonly releaseDate: "2024-12-01";
|
|
41
|
-
readonly languages: readonly ["en"];
|
|
42
|
-
readonly features: readonly ["streaming", {
|
|
43
|
-
readonly id: "timestamps";
|
|
44
|
-
readonly mode: "native";
|
|
45
|
-
}];
|
|
46
|
-
}];
|
|
15
|
+
readonly models: readonly ModelInfo[];
|
|
47
16
|
private readonly apiKey;
|
|
48
17
|
private readonly baseURL;
|
|
49
18
|
private readonly fetchFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/elevenlabs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/elevenlabs/index.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,MAAM,WAAW,8BAA8B;IAC7C,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,sBAAsB,EAAG,YAAqB,CAAC;AAsH5D,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAyBxC,CAAC;AAEX,qBAAa,wBACX,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzC,QAAQ,CAAC,EAAE,eAA0B;IACrC,QAAQ,CAAC,YAAY,4BAA4B;IAEjD,QAAQ,CAAC,MAAM,uBAAqB;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,8BAA8B;IAMlD,OAAO,CAAC,YAAY;IA0CpB,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;QACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAC;IAsFI,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,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,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;IAwDF,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;CAmDH;AAED,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,8BAAmC,IAI/C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAOpE"}
|