@speech-sdk/core 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio-decode.js +4 -1
- package/dist/audio-decode.js.map +1 -1
- package/dist/audio-output.d.ts +6 -0
- package/dist/audio-output.d.ts.map +1 -1
- package/dist/audio-output.js +20 -5
- package/dist/audio-output.js.map +1 -1
- package/dist/conversation/dispatch.d.ts +4 -0
- package/dist/conversation/dispatch.d.ts.map +1 -1
- package/dist/conversation/dispatch.js +20 -5
- package/dist/conversation/dispatch.js.map +1 -1
- package/dist/conversation/pcm-concat.d.ts.map +1 -1
- package/dist/conversation/pcm-concat.js +17 -1
- package/dist/conversation/pcm-concat.js.map +1 -1
- package/dist/conversation/stitch.d.ts.map +1 -1
- package/dist/conversation/stitch.js +12 -6
- package/dist/conversation/stitch.js.map +1 -1
- package/dist/encoders/mp3.d.ts.map +1 -1
- package/dist/encoders/mp3.js +3 -1
- package/dist/encoders/mp3.js.map +1 -1
- package/dist/errors.d.ts +5 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -1
- package/dist/generate-conversation.d.ts.map +1 -1
- package/dist/generate-conversation.js +12 -9
- package/dist/generate-conversation.js.map +1 -1
- package/dist/generate-speech.d.ts.map +1 -1
- package/dist/generate-speech.js +14 -4
- package/dist/generate-speech.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/cartesia/index.d.ts +4 -1
- package/dist/providers/cartesia/index.d.ts.map +1 -1
- package/dist/providers/cartesia/index.js +59 -23
- package/dist/providers/cartesia/index.js.map +1 -1
- package/dist/providers/deepgram/index.d.ts +5 -2
- package/dist/providers/deepgram/index.d.ts.map +1 -1
- package/dist/providers/deepgram/index.js +48 -25
- package/dist/providers/deepgram/index.js.map +1 -1
- package/dist/providers/elevenlabs/index.d.ts +4 -1
- package/dist/providers/elevenlabs/index.d.ts.map +1 -1
- package/dist/providers/elevenlabs/index.js +42 -16
- package/dist/providers/elevenlabs/index.js.map +1 -1
- package/dist/providers/fal/index.d.ts +4 -2
- package/dist/providers/fal/index.d.ts.map +1 -1
- package/dist/providers/fal/index.js +10 -4
- package/dist/providers/fal/index.js.map +1 -1
- package/dist/providers/fish-audio/index.d.ts +6 -1
- package/dist/providers/fish-audio/index.d.ts.map +1 -1
- package/dist/providers/fish-audio/index.js +31 -14
- package/dist/providers/fish-audio/index.js.map +1 -1
- package/dist/providers/google/index.d.ts +4 -1
- package/dist/providers/google/index.d.ts.map +1 -1
- package/dist/providers/google/index.js +17 -9
- package/dist/providers/google/index.js.map +1 -1
- package/dist/providers/hume/index.d.ts +5 -2
- package/dist/providers/hume/index.d.ts.map +1 -1
- package/dist/providers/hume/index.js +30 -11
- package/dist/providers/hume/index.js.map +1 -1
- package/dist/providers/inworld/index.d.ts +5 -2
- package/dist/providers/inworld/index.d.ts.map +1 -1
- package/dist/providers/inworld/index.js +26 -14
- package/dist/providers/inworld/index.js.map +1 -1
- package/dist/providers/mistral/index.d.ts +5 -2
- package/dist/providers/mistral/index.d.ts.map +1 -1
- package/dist/providers/mistral/index.js +18 -8
- package/dist/providers/mistral/index.js.map +1 -1
- package/dist/providers/murf/index.d.ts +9 -3
- package/dist/providers/murf/index.d.ts.map +1 -1
- package/dist/providers/murf/index.js +32 -15
- package/dist/providers/murf/index.js.map +1 -1
- package/dist/providers/openai/index.d.ts +4 -1
- package/dist/providers/openai/index.d.ts.map +1 -1
- package/dist/providers/openai/index.js +37 -10
- package/dist/providers/openai/index.js.map +1 -1
- package/dist/providers/resemble/index.d.ts +8 -2
- package/dist/providers/resemble/index.d.ts.map +1 -1
- package/dist/providers/resemble/index.js +33 -11
- package/dist/providers/resemble/index.js.map +1 -1
- package/dist/providers/smallest-ai/index.d.ts +5 -2
- package/dist/providers/smallest-ai/index.d.ts.map +1 -1
- package/dist/providers/smallest-ai/index.js +17 -7
- package/dist/providers/smallest-ai/index.js.map +1 -1
- package/dist/providers/xai/index.d.ts +9 -6
- package/dist/providers/xai/index.d.ts.map +1 -1
- package/dist/providers/xai/index.js +37 -22
- package/dist/providers/xai/index.js.map +1 -1
- package/dist/speech-provider.d.ts +17 -1
- package/dist/speech-provider.d.ts.map +1 -1
- package/dist/speech-provider.js +18 -0
- package/dist/speech-provider.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { handleErrorResponse, resolveApiKey, SDK_USER_AGENT, } from "../../provider-utils.js";
|
|
2
|
+
import { resolveSampleRate, } from "../../speech-provider.js";
|
|
2
3
|
export const XAI_PROVIDER_ID = "xai";
|
|
4
|
+
const XAI_SAMPLE_RATES = [
|
|
5
|
+
8000, 16_000, 22_050, 24_000, 44_100, 48_000,
|
|
6
|
+
];
|
|
3
7
|
// ISO 639-1 codes; xAI also accepts BCP-47 (e.g. pt-BR) and "auto" via providerOptions.language.
|
|
4
8
|
const XAI_LANGUAGES = [
|
|
5
9
|
"en",
|
|
@@ -56,12 +60,15 @@ export class XaiSpeechProvider {
|
|
|
56
60
|
}
|
|
57
61
|
return body;
|
|
58
62
|
}
|
|
59
|
-
|
|
63
|
+
mediaTypeForBody(body) {
|
|
64
|
+
const output = body.output_format;
|
|
65
|
+
const codec = output?.codec;
|
|
60
66
|
if (codec === "wav") {
|
|
61
67
|
return "audio/wav";
|
|
62
68
|
}
|
|
63
69
|
if (codec === "pcm") {
|
|
64
|
-
|
|
70
|
+
const rate = typeof output?.sample_rate === "number" ? output.sample_rate : null;
|
|
71
|
+
return rate == null ? "audio/pcm" : `audio/pcm;rate=${rate}`;
|
|
65
72
|
}
|
|
66
73
|
if (codec === "mulaw") {
|
|
67
74
|
return "audio/basic";
|
|
@@ -71,10 +78,6 @@ export class XaiSpeechProvider {
|
|
|
71
78
|
}
|
|
72
79
|
return "audio/mpeg";
|
|
73
80
|
}
|
|
74
|
-
codecFromBody(body) {
|
|
75
|
-
const output = body.output_format;
|
|
76
|
-
return output?.codec;
|
|
77
|
-
}
|
|
78
81
|
async generate(options) {
|
|
79
82
|
const body = this.buildBody(options);
|
|
80
83
|
const response = await this.fetchFn(`${this.baseURL}/tts`, {
|
|
@@ -90,8 +93,8 @@ export class XaiSpeechProvider {
|
|
|
90
93
|
});
|
|
91
94
|
await handleErrorResponse(response);
|
|
92
95
|
const arrayBuffer = await response.arrayBuffer();
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
// xAI returns bare "audio/pcm" without rate for pcm codec; derive from the requested body so the rate is always present.
|
|
97
|
+
const mediaType = this.mediaTypeForBody(body);
|
|
95
98
|
return {
|
|
96
99
|
audio: new Uint8Array(arrayBuffer),
|
|
97
100
|
mediaType,
|
|
@@ -116,41 +119,53 @@ export class XaiSpeechProvider {
|
|
|
116
119
|
}
|
|
117
120
|
return {
|
|
118
121
|
stream: response.body,
|
|
119
|
-
mediaType:
|
|
120
|
-
this.mediaTypeForCodec(this.codecFromBody(body)),
|
|
122
|
+
mediaType: this.mediaTypeForBody(body),
|
|
121
123
|
};
|
|
122
124
|
}
|
|
123
|
-
|
|
124
|
-
if (this.models.some((m) => m.id === modelId)) {
|
|
125
|
-
return
|
|
126
|
-
providerOptions: { output_format: { codec: "wav" } },
|
|
127
|
-
mediaType: "audio/wav",
|
|
128
|
-
};
|
|
125
|
+
supportedSampleRates(modelId) {
|
|
126
|
+
if (!this.models.some((m) => m.id === modelId)) {
|
|
127
|
+
return [];
|
|
129
128
|
}
|
|
130
|
-
return;
|
|
129
|
+
return XAI_SAMPLE_RATES;
|
|
130
|
+
}
|
|
131
|
+
getStitchOptions(modelId, opts) {
|
|
132
|
+
if (!this.models.some((m) => m.id === modelId)) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const rate = resolveSampleRate(`xai/${modelId}`, this.supportedSampleRates(modelId), opts?.sampleRate);
|
|
136
|
+
return {
|
|
137
|
+
providerOptions: { output_format: { codec: "wav", sample_rate: rate } },
|
|
138
|
+
mediaType: "audio/wav",
|
|
139
|
+
};
|
|
131
140
|
}
|
|
132
141
|
resolveOutputFormat(modelId, output) {
|
|
133
142
|
if (!this.models.some((m) => m.id === modelId)) {
|
|
134
143
|
return;
|
|
135
144
|
}
|
|
136
145
|
switch (output.format) {
|
|
137
|
-
case "wav":
|
|
146
|
+
case "wav": {
|
|
147
|
+
const rate = resolveSampleRate(`xai/${modelId}`, this.supportedSampleRates(modelId), output.sampleRate);
|
|
138
148
|
return {
|
|
139
|
-
providerOptions: {
|
|
149
|
+
providerOptions: {
|
|
150
|
+
output_format: { codec: "wav", sample_rate: rate },
|
|
151
|
+
},
|
|
140
152
|
expectedMediaType: "audio/wav",
|
|
141
153
|
};
|
|
154
|
+
}
|
|
142
155
|
case "mp3":
|
|
143
156
|
return {
|
|
144
157
|
providerOptions: { output_format: { codec: "mp3" } },
|
|
145
158
|
expectedMediaType: "audio/mpeg",
|
|
146
159
|
};
|
|
147
|
-
case "pcm":
|
|
160
|
+
case "pcm": {
|
|
161
|
+
const rate = resolveSampleRate(`xai/${modelId}`, this.supportedSampleRates(modelId), output.sampleRate);
|
|
148
162
|
return {
|
|
149
163
|
providerOptions: {
|
|
150
|
-
output_format: { codec: "pcm", sample_rate:
|
|
164
|
+
output_format: { codec: "pcm", sample_rate: rate },
|
|
151
165
|
},
|
|
152
|
-
expectedMediaType:
|
|
166
|
+
expectedMediaType: `audio/pcm;rate=${rate}`,
|
|
153
167
|
};
|
|
168
|
+
}
|
|
154
169
|
default:
|
|
155
170
|
return;
|
|
156
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/xai/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/xai/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAUlC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAc,CAAC;AAE9C,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CACpC,CAAC;AAEX,iGAAiG;AACjG,MAAM,aAAa,GAAG;IACpB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACI,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C;QACE,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;QACrC,aAAa,EAAE,MAAM;KACtB;CACO,CAAC;AAEX,MAAM,OAAO,iBAAiB;IACnB,EAAE,GAAG,eAAe,CAAC;IACrB,YAAY,GAAG,UAAU,CAAC;IAE1B,MAAM,GAAG,UAAU,CAAC;IAEZ,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,qBAAqB,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,sFAAsF;IACtF,gBAAgB,CAAC,IAAY;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAEO,SAAS,CAAC,OAIjB;QACC,8FAA8F;QAC9F,MAAM,IAAI,GAA4B;YACpC,QAAQ,EAAE,MAAM;YAChB,GAAG,OAAO,CAAC,eAAe;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB,CAAC,IAA6B;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,aAEP,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC;QAC5B,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,GACR,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;YACtE,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAOd;QAIC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,MAAM,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE;gBAC3E,cAAc,EAAE,cAAc;gBAC9B,GAAG,OAAO,CAAC,OAAO;aACnB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,CAAC,WAAW;SAC5B,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAEpC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,yHAAyH;QACzH,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC;YAClC,SAAS;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAOZ;QAIC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,MAAM,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE;gBAC3E,cAAc,EAAE,cAAc;gBAC9B,GAAG,OAAO,CAAC,OAAO;aACnB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,CAAC,WAAW;SAC5B,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,OAAO,OAAO,CAAC,OAAO,wBAAwB,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,IAAI;YACrB,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;SACvC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,OAAe;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,gBAAgB,CAAC,OAAe,EAAE,IAA8B;QAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,iBAAiB,CAC5B,OAAO,OAAO,EAAE,EAChB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAClC,IAAI,EAAE,UAAU,CACjB,CAAC;QACF,OAAO;YACL,eAAe,EAAE,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;YACvE,SAAS,EAAE,WAAW;SACvB,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAe,EAAE,MAAmB;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,IAAI,GAAG,iBAAiB,CAC5B,OAAO,OAAO,EAAE,EAChB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAClC,MAAM,CAAC,UAAU,CAClB,CAAC;gBACF,OAAO;oBACL,eAAe,EAAE;wBACf,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;qBACnD;oBACD,iBAAiB,EAAE,WAAW;iBAC/B,CAAC;YACJ,CAAC;YACD,KAAK,KAAK;gBACR,OAAO;oBACL,eAAe,EAAE,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBACpD,iBAAiB,EAAE,YAAY;iBAChC,CAAC;YACJ,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,IAAI,GAAG,iBAAiB,CAC5B,OAAO,OAAO,EAAE,EAChB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAClC,MAAM,CAAC,UAAU,CAClB,CAAC;gBACF,OAAO;oBACL,eAAe,EAAE;wBACf,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;qBACnD;oBACD,iBAAiB,EAAE,kBAAkB,IAAI,EAAE;iBAC5C,CAAC;YACJ,CAAC;YACD;gBACE,OAAO;QACX,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,SAAS,CAAC,SAAkC,EAAE;IAC5D,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,OAAO,SAAS,GAAG,CAAC,OAAgB;QAClC,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY;YACzC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -74,7 +74,9 @@ export interface SpeechProvider<TModel extends string = string, TVoice extends V
|
|
|
74
74
|
providerMetadata?: Record<string, unknown>;
|
|
75
75
|
timestamps?: WordTimestamp[];
|
|
76
76
|
}>;
|
|
77
|
-
getStitchOptions?(modelId: string
|
|
77
|
+
getStitchOptions?(modelId: string, opts?: {
|
|
78
|
+
sampleRate?: number;
|
|
79
|
+
}): StitchTurnOptions | undefined;
|
|
78
80
|
id: string;
|
|
79
81
|
models: readonly ModelInfo[];
|
|
80
82
|
processAudioTags?(text: string, modelId: string): {
|
|
@@ -103,6 +105,14 @@ export interface SpeechProvider<TModel extends string = string, TVoice extends V
|
|
|
103
105
|
mediaType: string;
|
|
104
106
|
providerMetadata?: Record<string, unknown>;
|
|
105
107
|
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Sample rates (Hz) the provider's API can natively produce for this model.
|
|
110
|
+
* `getStitchOptions` and `resolveOutputFormat` validate any caller-supplied
|
|
111
|
+
* `sampleRate` against this set. The SDK defaults to `max(...)` when the
|
|
112
|
+
* caller doesn't supply one. Providers that don't expose rate selection may
|
|
113
|
+
* omit this; a runtime error is thrown if the caller supplies one.
|
|
114
|
+
*/
|
|
115
|
+
supportedSampleRates?(modelId: string): readonly number[];
|
|
106
116
|
}
|
|
107
117
|
export interface ResolvedModel<TVoice extends Voice = Voice> {
|
|
108
118
|
fallbackSTT?: ResolvedSTTModel;
|
|
@@ -114,4 +124,10 @@ export declare function isSpeechGatewayModel<V extends Voice>(model: ResolvedMod
|
|
|
114
124
|
};
|
|
115
125
|
export declare function modelDeclaresNativeTimestamps(resolved: ResolvedModel): boolean;
|
|
116
126
|
export declare function modelMaxInputChars(resolved: ResolvedModel): number | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Resolves a caller-requested sampleRate against a provider's supported set.
|
|
129
|
+
* Returns the requested rate if supported, the max supported rate if unspecified,
|
|
130
|
+
* or throws UnsupportedSampleRateError if the request is not in the set.
|
|
131
|
+
*/
|
|
132
|
+
export declare function resolveSampleRate(modelIdentifier: string, supported: readonly number[], requested: number | undefined): number;
|
|
117
133
|
//# sourceMappingURL=speech-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech-provider.d.ts","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"speech-provider.d.ts","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"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"}
|
package/dist/speech-provider.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UnsupportedSampleRateError } from "./errors.js";
|
|
1
2
|
import { SPEECH_GATEWAY_PROVIDER_ID, } from "./providers/gateway/index.js";
|
|
2
3
|
export const FEATURES = {
|
|
3
4
|
STREAMING: "streaming",
|
|
@@ -20,4 +21,21 @@ export function modelMaxInputChars(resolved) {
|
|
|
20
21
|
return resolved.provider.models?.find((m) => m.id === resolved.modelId)
|
|
21
22
|
?.maxInputChars;
|
|
22
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolves a caller-requested sampleRate against a provider's supported set.
|
|
26
|
+
* Returns the requested rate if supported, the max supported rate if unspecified,
|
|
27
|
+
* or throws UnsupportedSampleRateError if the request is not in the set.
|
|
28
|
+
*/
|
|
29
|
+
export function resolveSampleRate(modelIdentifier, supported, requested) {
|
|
30
|
+
if (supported.length === 0) {
|
|
31
|
+
throw new Error(`${modelIdentifier}: supportedSampleRates returned empty set`);
|
|
32
|
+
}
|
|
33
|
+
if (requested == null) {
|
|
34
|
+
return Math.max(...supported);
|
|
35
|
+
}
|
|
36
|
+
if (!supported.includes(requested)) {
|
|
37
|
+
throw new UnsupportedSampleRateError(modelIdentifier, requested, supported);
|
|
38
|
+
}
|
|
39
|
+
return requested;
|
|
40
|
+
}
|
|
23
41
|
//# sourceMappingURL=speech-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech-provider.js","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAE3B,MAAM,8BAA8B,CAAC;AA4BtC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,oBAAoB,EAAE,sBAAsB;IAC5C,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;CAChB,CAAC;AAEX,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,EAAU;IACrD,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAC/C,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"speech-provider.js","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,0BAA0B,GAE3B,MAAM,8BAA8B,CAAC;AA4BtC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,oBAAoB,EAAE,sBAAsB;IAC5C,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;CAChB,CAAC;AAEX,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,EAAU;IACrD,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAC/C,CAAC;AACJ,CAAC;AAuGD,MAAM,UAAU,oBAAoB,CAClC,KAAuB;IAEvB,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,0BAA0B,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,QAAuB;IAEvB,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,OAAO,CACjC,CAAC;IACF,OAAO,SAAS,IAAI,IAAI,IAAI,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAuB;IAEvB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,OAAO,CAAC;QACrE,EAAE,aAAa,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,eAAuB,EACvB,SAA4B,EAC5B,SAA6B;IAE7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,GAAG,eAAe,2CAA2C,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,0BAA0B,CAAC,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|