@ai-sdk/elevenlabs 3.0.0-beta.2 → 3.0.0-beta.20
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/CHANGELOG.md +146 -4
- package/README.md +2 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +93 -105
- package/dist/index.js.map +1 -1
- package/package.json +7 -9
- package/src/elevenlabs-provider.ts +7 -7
- package/src/elevenlabs-speech-model.ts +7 -7
- package/src/elevenlabs-transcription-model.ts +7 -7
- package/dist/index.d.mts +0 -122
- package/dist/index.mjs +0 -423
- package/dist/index.mjs.map +0 -1
package/dist/index.mjs
DELETED
|
@@ -1,423 +0,0 @@
|
|
|
1
|
-
// src/elevenlabs-provider.ts
|
|
2
|
-
import {
|
|
3
|
-
NoSuchModelError
|
|
4
|
-
} from "@ai-sdk/provider";
|
|
5
|
-
import {
|
|
6
|
-
loadApiKey,
|
|
7
|
-
withUserAgentSuffix
|
|
8
|
-
} from "@ai-sdk/provider-utils";
|
|
9
|
-
|
|
10
|
-
// src/elevenlabs-transcription-model.ts
|
|
11
|
-
import {
|
|
12
|
-
combineHeaders,
|
|
13
|
-
convertBase64ToUint8Array,
|
|
14
|
-
createJsonResponseHandler,
|
|
15
|
-
mediaTypeToExtension,
|
|
16
|
-
parseProviderOptions,
|
|
17
|
-
postFormDataToApi
|
|
18
|
-
} from "@ai-sdk/provider-utils";
|
|
19
|
-
import { z as z2 } from "zod/v4";
|
|
20
|
-
|
|
21
|
-
// src/elevenlabs-error.ts
|
|
22
|
-
import { z } from "zod/v4";
|
|
23
|
-
import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
|
|
24
|
-
var elevenlabsErrorDataSchema = z.object({
|
|
25
|
-
error: z.object({
|
|
26
|
-
message: z.string(),
|
|
27
|
-
code: z.number()
|
|
28
|
-
})
|
|
29
|
-
});
|
|
30
|
-
var elevenlabsFailedResponseHandler = createJsonErrorResponseHandler({
|
|
31
|
-
errorSchema: elevenlabsErrorDataSchema,
|
|
32
|
-
errorToMessage: (data) => data.error.message
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
// src/elevenlabs-transcription-model.ts
|
|
36
|
-
var elevenLabsTranscriptionModelOptionsSchema = z2.object({
|
|
37
|
-
languageCode: z2.string().nullish(),
|
|
38
|
-
tagAudioEvents: z2.boolean().nullish().default(true),
|
|
39
|
-
numSpeakers: z2.number().int().min(1).max(32).nullish(),
|
|
40
|
-
timestampsGranularity: z2.enum(["none", "word", "character"]).nullish().default("word"),
|
|
41
|
-
diarize: z2.boolean().nullish().default(false),
|
|
42
|
-
fileFormat: z2.enum(["pcm_s16le_16", "other"]).nullish().default("other")
|
|
43
|
-
});
|
|
44
|
-
var ElevenLabsTranscriptionModel = class {
|
|
45
|
-
constructor(modelId, config) {
|
|
46
|
-
this.modelId = modelId;
|
|
47
|
-
this.config = config;
|
|
48
|
-
this.specificationVersion = "v3";
|
|
49
|
-
}
|
|
50
|
-
get provider() {
|
|
51
|
-
return this.config.provider;
|
|
52
|
-
}
|
|
53
|
-
async getArgs({
|
|
54
|
-
audio,
|
|
55
|
-
mediaType,
|
|
56
|
-
providerOptions
|
|
57
|
-
}) {
|
|
58
|
-
var _a, _b, _c, _d, _e;
|
|
59
|
-
const warnings = [];
|
|
60
|
-
const elevenlabsOptions = await parseProviderOptions({
|
|
61
|
-
provider: "elevenlabs",
|
|
62
|
-
providerOptions,
|
|
63
|
-
schema: elevenLabsTranscriptionModelOptionsSchema
|
|
64
|
-
});
|
|
65
|
-
const formData = new FormData();
|
|
66
|
-
const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array(audio)]);
|
|
67
|
-
formData.append("model_id", this.modelId);
|
|
68
|
-
const fileExtension = mediaTypeToExtension(mediaType);
|
|
69
|
-
formData.append(
|
|
70
|
-
"file",
|
|
71
|
-
new File([blob], "audio", { type: mediaType }),
|
|
72
|
-
`audio.${fileExtension}`
|
|
73
|
-
);
|
|
74
|
-
formData.append("diarize", "true");
|
|
75
|
-
if (elevenlabsOptions) {
|
|
76
|
-
const transcriptionModelOptions = {
|
|
77
|
-
language_code: (_a = elevenlabsOptions.languageCode) != null ? _a : void 0,
|
|
78
|
-
tag_audio_events: (_b = elevenlabsOptions.tagAudioEvents) != null ? _b : void 0,
|
|
79
|
-
num_speakers: (_c = elevenlabsOptions.numSpeakers) != null ? _c : void 0,
|
|
80
|
-
timestamps_granularity: (_d = elevenlabsOptions.timestampsGranularity) != null ? _d : void 0,
|
|
81
|
-
file_format: (_e = elevenlabsOptions.fileFormat) != null ? _e : void 0
|
|
82
|
-
};
|
|
83
|
-
if (typeof elevenlabsOptions.diarize === "boolean") {
|
|
84
|
-
formData.append("diarize", String(elevenlabsOptions.diarize));
|
|
85
|
-
}
|
|
86
|
-
for (const key in transcriptionModelOptions) {
|
|
87
|
-
const value = transcriptionModelOptions[key];
|
|
88
|
-
if (value !== void 0) {
|
|
89
|
-
formData.append(key, String(value));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
formData,
|
|
95
|
-
warnings
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
async doGenerate(options) {
|
|
99
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
100
|
-
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
101
|
-
const { formData, warnings } = await this.getArgs(options);
|
|
102
|
-
const {
|
|
103
|
-
value: response,
|
|
104
|
-
responseHeaders,
|
|
105
|
-
rawValue: rawResponse
|
|
106
|
-
} = await postFormDataToApi({
|
|
107
|
-
url: this.config.url({
|
|
108
|
-
path: "/v1/speech-to-text",
|
|
109
|
-
modelId: this.modelId
|
|
110
|
-
}),
|
|
111
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
112
|
-
formData,
|
|
113
|
-
failedResponseHandler: elevenlabsFailedResponseHandler,
|
|
114
|
-
successfulResponseHandler: createJsonResponseHandler(
|
|
115
|
-
elevenlabsTranscriptionResponseSchema
|
|
116
|
-
),
|
|
117
|
-
abortSignal: options.abortSignal,
|
|
118
|
-
fetch: this.config.fetch
|
|
119
|
-
});
|
|
120
|
-
return {
|
|
121
|
-
text: response.text,
|
|
122
|
-
segments: (_e = (_d = response.words) == null ? void 0 : _d.map((word) => {
|
|
123
|
-
var _a2, _b2;
|
|
124
|
-
return {
|
|
125
|
-
text: word.text,
|
|
126
|
-
startSecond: (_a2 = word.start) != null ? _a2 : 0,
|
|
127
|
-
endSecond: (_b2 = word.end) != null ? _b2 : 0
|
|
128
|
-
};
|
|
129
|
-
})) != null ? _e : [],
|
|
130
|
-
language: response.language_code,
|
|
131
|
-
durationInSeconds: (_h = (_g = (_f = response.words) == null ? void 0 : _f.at(-1)) == null ? void 0 : _g.end) != null ? _h : void 0,
|
|
132
|
-
warnings,
|
|
133
|
-
response: {
|
|
134
|
-
timestamp: currentDate,
|
|
135
|
-
modelId: this.modelId,
|
|
136
|
-
headers: responseHeaders,
|
|
137
|
-
body: rawResponse
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
var elevenlabsTranscriptionResponseSchema = z2.object({
|
|
143
|
-
language_code: z2.string(),
|
|
144
|
-
language_probability: z2.number(),
|
|
145
|
-
text: z2.string(),
|
|
146
|
-
words: z2.array(
|
|
147
|
-
z2.object({
|
|
148
|
-
text: z2.string(),
|
|
149
|
-
type: z2.enum(["word", "spacing", "audio_event"]),
|
|
150
|
-
start: z2.number().nullish(),
|
|
151
|
-
end: z2.number().nullish(),
|
|
152
|
-
speaker_id: z2.string().nullish(),
|
|
153
|
-
characters: z2.array(
|
|
154
|
-
z2.object({
|
|
155
|
-
text: z2.string(),
|
|
156
|
-
start: z2.number().nullish(),
|
|
157
|
-
end: z2.number().nullish()
|
|
158
|
-
})
|
|
159
|
-
).nullish()
|
|
160
|
-
})
|
|
161
|
-
).nullish()
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
// src/elevenlabs-speech-model.ts
|
|
165
|
-
import {
|
|
166
|
-
combineHeaders as combineHeaders2,
|
|
167
|
-
createBinaryResponseHandler,
|
|
168
|
-
parseProviderOptions as parseProviderOptions2,
|
|
169
|
-
postJsonToApi
|
|
170
|
-
} from "@ai-sdk/provider-utils";
|
|
171
|
-
import { z as z3 } from "zod/v4";
|
|
172
|
-
var elevenLabsSpeechModelOptionsSchema = z3.object({
|
|
173
|
-
languageCode: z3.string().optional(),
|
|
174
|
-
voiceSettings: z3.object({
|
|
175
|
-
stability: z3.number().min(0).max(1).optional(),
|
|
176
|
-
similarityBoost: z3.number().min(0).max(1).optional(),
|
|
177
|
-
style: z3.number().min(0).max(1).optional(),
|
|
178
|
-
useSpeakerBoost: z3.boolean().optional()
|
|
179
|
-
}).optional(),
|
|
180
|
-
pronunciationDictionaryLocators: z3.array(
|
|
181
|
-
z3.object({
|
|
182
|
-
pronunciationDictionaryId: z3.string(),
|
|
183
|
-
versionId: z3.string().optional()
|
|
184
|
-
})
|
|
185
|
-
).max(3).optional(),
|
|
186
|
-
seed: z3.number().min(0).max(4294967295).optional(),
|
|
187
|
-
previousText: z3.string().optional(),
|
|
188
|
-
nextText: z3.string().optional(),
|
|
189
|
-
previousRequestIds: z3.array(z3.string()).max(3).optional(),
|
|
190
|
-
nextRequestIds: z3.array(z3.string()).max(3).optional(),
|
|
191
|
-
applyTextNormalization: z3.enum(["auto", "on", "off"]).optional(),
|
|
192
|
-
applyLanguageTextNormalization: z3.boolean().optional(),
|
|
193
|
-
enableLogging: z3.boolean().optional()
|
|
194
|
-
});
|
|
195
|
-
var ElevenLabsSpeechModel = class {
|
|
196
|
-
constructor(modelId, config) {
|
|
197
|
-
this.modelId = modelId;
|
|
198
|
-
this.config = config;
|
|
199
|
-
this.specificationVersion = "v3";
|
|
200
|
-
}
|
|
201
|
-
get provider() {
|
|
202
|
-
return this.config.provider;
|
|
203
|
-
}
|
|
204
|
-
async getArgs({
|
|
205
|
-
text,
|
|
206
|
-
voice = "21m00Tcm4TlvDq8ikWAM",
|
|
207
|
-
outputFormat = "mp3_44100_128",
|
|
208
|
-
instructions,
|
|
209
|
-
language,
|
|
210
|
-
speed,
|
|
211
|
-
providerOptions
|
|
212
|
-
}) {
|
|
213
|
-
const warnings = [];
|
|
214
|
-
const elevenLabsOptions = await parseProviderOptions2({
|
|
215
|
-
provider: "elevenlabs",
|
|
216
|
-
providerOptions,
|
|
217
|
-
schema: elevenLabsSpeechModelOptionsSchema
|
|
218
|
-
});
|
|
219
|
-
const requestBody = {
|
|
220
|
-
text,
|
|
221
|
-
model_id: this.modelId
|
|
222
|
-
};
|
|
223
|
-
const queryParams = {};
|
|
224
|
-
if (outputFormat) {
|
|
225
|
-
const formatMap = {
|
|
226
|
-
mp3: "mp3_44100_128",
|
|
227
|
-
mp3_32: "mp3_44100_32",
|
|
228
|
-
mp3_64: "mp3_44100_64",
|
|
229
|
-
mp3_96: "mp3_44100_96",
|
|
230
|
-
mp3_128: "mp3_44100_128",
|
|
231
|
-
mp3_192: "mp3_44100_192",
|
|
232
|
-
pcm: "pcm_44100",
|
|
233
|
-
pcm_16000: "pcm_16000",
|
|
234
|
-
pcm_22050: "pcm_22050",
|
|
235
|
-
pcm_24000: "pcm_24000",
|
|
236
|
-
pcm_44100: "pcm_44100",
|
|
237
|
-
ulaw: "ulaw_8000"
|
|
238
|
-
};
|
|
239
|
-
const mappedFormat = formatMap[outputFormat] || outputFormat;
|
|
240
|
-
queryParams.output_format = mappedFormat;
|
|
241
|
-
}
|
|
242
|
-
if (language) {
|
|
243
|
-
requestBody.language_code = language;
|
|
244
|
-
}
|
|
245
|
-
const voiceSettings = {};
|
|
246
|
-
if (speed != null) {
|
|
247
|
-
voiceSettings.speed = speed;
|
|
248
|
-
}
|
|
249
|
-
if (elevenLabsOptions) {
|
|
250
|
-
if (elevenLabsOptions.voiceSettings) {
|
|
251
|
-
if (elevenLabsOptions.voiceSettings.stability != null) {
|
|
252
|
-
voiceSettings.stability = elevenLabsOptions.voiceSettings.stability;
|
|
253
|
-
}
|
|
254
|
-
if (elevenLabsOptions.voiceSettings.similarityBoost != null) {
|
|
255
|
-
voiceSettings.similarity_boost = elevenLabsOptions.voiceSettings.similarityBoost;
|
|
256
|
-
}
|
|
257
|
-
if (elevenLabsOptions.voiceSettings.style != null) {
|
|
258
|
-
voiceSettings.style = elevenLabsOptions.voiceSettings.style;
|
|
259
|
-
}
|
|
260
|
-
if (elevenLabsOptions.voiceSettings.useSpeakerBoost != null) {
|
|
261
|
-
voiceSettings.use_speaker_boost = elevenLabsOptions.voiceSettings.useSpeakerBoost;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
if (elevenLabsOptions.languageCode && !requestBody.language_code) {
|
|
265
|
-
requestBody.language_code = elevenLabsOptions.languageCode;
|
|
266
|
-
}
|
|
267
|
-
if (elevenLabsOptions.pronunciationDictionaryLocators) {
|
|
268
|
-
requestBody.pronunciation_dictionary_locators = elevenLabsOptions.pronunciationDictionaryLocators.map((locator) => ({
|
|
269
|
-
pronunciation_dictionary_id: locator.pronunciationDictionaryId,
|
|
270
|
-
...locator.versionId && { version_id: locator.versionId }
|
|
271
|
-
}));
|
|
272
|
-
}
|
|
273
|
-
if (elevenLabsOptions.seed != null) {
|
|
274
|
-
requestBody.seed = elevenLabsOptions.seed;
|
|
275
|
-
}
|
|
276
|
-
if (elevenLabsOptions.previousText) {
|
|
277
|
-
requestBody.previous_text = elevenLabsOptions.previousText;
|
|
278
|
-
}
|
|
279
|
-
if (elevenLabsOptions.nextText) {
|
|
280
|
-
requestBody.next_text = elevenLabsOptions.nextText;
|
|
281
|
-
}
|
|
282
|
-
if (elevenLabsOptions.previousRequestIds) {
|
|
283
|
-
requestBody.previous_request_ids = elevenLabsOptions.previousRequestIds;
|
|
284
|
-
}
|
|
285
|
-
if (elevenLabsOptions.nextRequestIds) {
|
|
286
|
-
requestBody.next_request_ids = elevenLabsOptions.nextRequestIds;
|
|
287
|
-
}
|
|
288
|
-
if (elevenLabsOptions.applyTextNormalization) {
|
|
289
|
-
requestBody.apply_text_normalization = elevenLabsOptions.applyTextNormalization;
|
|
290
|
-
}
|
|
291
|
-
if (elevenLabsOptions.applyLanguageTextNormalization != null) {
|
|
292
|
-
requestBody.apply_language_text_normalization = elevenLabsOptions.applyLanguageTextNormalization;
|
|
293
|
-
}
|
|
294
|
-
if (elevenLabsOptions.enableLogging != null) {
|
|
295
|
-
queryParams.enable_logging = String(elevenLabsOptions.enableLogging);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
if (Object.keys(voiceSettings).length > 0) {
|
|
299
|
-
requestBody.voice_settings = voiceSettings;
|
|
300
|
-
}
|
|
301
|
-
if (instructions) {
|
|
302
|
-
warnings.push({
|
|
303
|
-
type: "unsupported",
|
|
304
|
-
feature: "instructions",
|
|
305
|
-
details: `ElevenLabs speech models do not support instructions. Instructions parameter was ignored.`
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
return {
|
|
309
|
-
requestBody,
|
|
310
|
-
queryParams,
|
|
311
|
-
warnings,
|
|
312
|
-
voiceId: voice
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
async doGenerate(options) {
|
|
316
|
-
var _a, _b, _c;
|
|
317
|
-
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
318
|
-
const { requestBody, queryParams, warnings, voiceId } = await this.getArgs(options);
|
|
319
|
-
const {
|
|
320
|
-
value: audio,
|
|
321
|
-
responseHeaders,
|
|
322
|
-
rawValue: rawResponse
|
|
323
|
-
} = await postJsonToApi({
|
|
324
|
-
url: (() => {
|
|
325
|
-
const baseUrl = this.config.url({
|
|
326
|
-
path: `/v1/text-to-speech/${voiceId}`,
|
|
327
|
-
modelId: this.modelId
|
|
328
|
-
});
|
|
329
|
-
const queryString = new URLSearchParams(queryParams).toString();
|
|
330
|
-
return queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
331
|
-
})(),
|
|
332
|
-
headers: combineHeaders2(this.config.headers(), options.headers),
|
|
333
|
-
body: requestBody,
|
|
334
|
-
failedResponseHandler: elevenlabsFailedResponseHandler,
|
|
335
|
-
successfulResponseHandler: createBinaryResponseHandler(),
|
|
336
|
-
abortSignal: options.abortSignal,
|
|
337
|
-
fetch: this.config.fetch
|
|
338
|
-
});
|
|
339
|
-
return {
|
|
340
|
-
audio,
|
|
341
|
-
warnings,
|
|
342
|
-
request: {
|
|
343
|
-
body: JSON.stringify(requestBody)
|
|
344
|
-
},
|
|
345
|
-
response: {
|
|
346
|
-
timestamp: currentDate,
|
|
347
|
-
modelId: this.modelId,
|
|
348
|
-
headers: responseHeaders,
|
|
349
|
-
body: rawResponse
|
|
350
|
-
}
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
|
-
};
|
|
354
|
-
|
|
355
|
-
// src/version.ts
|
|
356
|
-
var VERSION = true ? "3.0.0-beta.2" : "0.0.0-test";
|
|
357
|
-
|
|
358
|
-
// src/elevenlabs-provider.ts
|
|
359
|
-
function createElevenLabs(options = {}) {
|
|
360
|
-
const getHeaders = () => withUserAgentSuffix(
|
|
361
|
-
{
|
|
362
|
-
"xi-api-key": loadApiKey({
|
|
363
|
-
apiKey: options.apiKey,
|
|
364
|
-
environmentVariableName: "ELEVENLABS_API_KEY",
|
|
365
|
-
description: "ElevenLabs"
|
|
366
|
-
}),
|
|
367
|
-
...options.headers
|
|
368
|
-
},
|
|
369
|
-
`ai-sdk/elevenlabs/${VERSION}`
|
|
370
|
-
);
|
|
371
|
-
const createTranscriptionModel = (modelId) => new ElevenLabsTranscriptionModel(modelId, {
|
|
372
|
-
provider: `elevenlabs.transcription`,
|
|
373
|
-
url: ({ path }) => `https://api.elevenlabs.io${path}`,
|
|
374
|
-
headers: getHeaders,
|
|
375
|
-
fetch: options.fetch
|
|
376
|
-
});
|
|
377
|
-
const createSpeechModel = (modelId) => new ElevenLabsSpeechModel(modelId, {
|
|
378
|
-
provider: `elevenlabs.speech`,
|
|
379
|
-
url: ({ path }) => `https://api.elevenlabs.io${path}`,
|
|
380
|
-
headers: getHeaders,
|
|
381
|
-
fetch: options.fetch
|
|
382
|
-
});
|
|
383
|
-
const provider = function(modelId) {
|
|
384
|
-
return {
|
|
385
|
-
transcription: createTranscriptionModel(modelId)
|
|
386
|
-
};
|
|
387
|
-
};
|
|
388
|
-
provider.specificationVersion = "v3";
|
|
389
|
-
provider.transcription = createTranscriptionModel;
|
|
390
|
-
provider.transcriptionModel = createTranscriptionModel;
|
|
391
|
-
provider.speech = createSpeechModel;
|
|
392
|
-
provider.speechModel = createSpeechModel;
|
|
393
|
-
provider.languageModel = (modelId) => {
|
|
394
|
-
throw new NoSuchModelError({
|
|
395
|
-
modelId,
|
|
396
|
-
modelType: "languageModel",
|
|
397
|
-
message: "ElevenLabs does not provide language models"
|
|
398
|
-
});
|
|
399
|
-
};
|
|
400
|
-
provider.embeddingModel = (modelId) => {
|
|
401
|
-
throw new NoSuchModelError({
|
|
402
|
-
modelId,
|
|
403
|
-
modelType: "embeddingModel",
|
|
404
|
-
message: "ElevenLabs does not provide embedding models"
|
|
405
|
-
});
|
|
406
|
-
};
|
|
407
|
-
provider.textEmbeddingModel = provider.embeddingModel;
|
|
408
|
-
provider.imageModel = (modelId) => {
|
|
409
|
-
throw new NoSuchModelError({
|
|
410
|
-
modelId,
|
|
411
|
-
modelType: "imageModel",
|
|
412
|
-
message: "ElevenLabs does not provide image models"
|
|
413
|
-
});
|
|
414
|
-
};
|
|
415
|
-
return provider;
|
|
416
|
-
}
|
|
417
|
-
var elevenlabs = createElevenLabs();
|
|
418
|
-
export {
|
|
419
|
-
VERSION,
|
|
420
|
-
createElevenLabs,
|
|
421
|
-
elevenlabs
|
|
422
|
-
};
|
|
423
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/elevenlabs-provider.ts","../src/elevenlabs-transcription-model.ts","../src/elevenlabs-error.ts","../src/elevenlabs-speech-model.ts","../src/version.ts"],"sourcesContent":["import {\n TranscriptionModelV3,\n SpeechModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { ElevenLabsTranscriptionModel } from './elevenlabs-transcription-model';\nimport { ElevenLabsTranscriptionModelId } from './elevenlabs-transcription-options';\nimport { ElevenLabsSpeechModel } from './elevenlabs-speech-model';\nimport { ElevenLabsSpeechModelId } from './elevenlabs-speech-options';\nimport { VERSION } from './version';\n\nexport interface ElevenLabsProvider extends ProviderV3 {\n (\n modelId: 'scribe_v1',\n settings?: {},\n ): {\n transcription: ElevenLabsTranscriptionModel;\n };\n\n /**\n * Creates a model for transcription.\n */\n transcription(modelId: ElevenLabsTranscriptionModelId): TranscriptionModelV3;\n\n /**\n * Creates a model for speech generation.\n */\n speech(modelId: ElevenLabsSpeechModelId): SpeechModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface ElevenLabsProviderSettings {\n /**\n * API key for authenticating requests.\n */\n apiKey?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\n * Create an ElevenLabs provider instance.\n */\nexport function createElevenLabs(\n options: ElevenLabsProviderSettings = {},\n): ElevenLabsProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n 'xi-api-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'ELEVENLABS_API_KEY',\n description: 'ElevenLabs',\n }),\n ...options.headers,\n },\n `ai-sdk/elevenlabs/${VERSION}`,\n );\n\n const createTranscriptionModel = (modelId: ElevenLabsTranscriptionModelId) =>\n new ElevenLabsTranscriptionModel(modelId, {\n provider: `elevenlabs.transcription`,\n url: ({ path }) => `https://api.elevenlabs.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createSpeechModel = (modelId: ElevenLabsSpeechModelId) =>\n new ElevenLabsSpeechModel(modelId, {\n provider: `elevenlabs.speech`,\n url: ({ path }) => `https://api.elevenlabs.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (modelId: ElevenLabsTranscriptionModelId) {\n return {\n transcription: createTranscriptionModel(modelId),\n };\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'ElevenLabs does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'ElevenLabs does not provide embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'ElevenLabs does not provide image models',\n });\n };\n\n return provider as ElevenLabsProvider;\n}\n\n/**\n * Default ElevenLabs provider instance.\n */\nexport const elevenlabs = createElevenLabs();\n","import { TranscriptionModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n mediaTypeToExtension,\n parseProviderOptions,\n postFormDataToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { ElevenLabsConfig } from './elevenlabs-config';\nimport { elevenlabsFailedResponseHandler } from './elevenlabs-error';\nimport { ElevenLabsTranscriptionModelId } from './elevenlabs-transcription-options';\nimport { ElevenLabsTranscriptionAPITypes } from './elevenlabs-api-types';\n\n// https://elevenlabs.io/docs/api-reference/speech-to-text/convert\nconst elevenLabsTranscriptionModelOptionsSchema = z.object({\n languageCode: z.string().nullish(),\n tagAudioEvents: z.boolean().nullish().default(true),\n numSpeakers: z.number().int().min(1).max(32).nullish(),\n timestampsGranularity: z\n .enum(['none', 'word', 'character'])\n .nullish()\n .default('word'),\n diarize: z.boolean().nullish().default(false),\n fileFormat: z.enum(['pcm_s16le_16', 'other']).nullish().default('other'),\n});\n\nexport type ElevenLabsTranscriptionModelOptions = z.infer<\n typeof elevenLabsTranscriptionModelOptionsSchema\n>;\n\ninterface ElevenLabsTranscriptionModelConfig extends ElevenLabsConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ElevenLabsTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ElevenLabsTranscriptionModelId,\n private readonly config: ElevenLabsTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n audio,\n mediaType,\n providerOptions,\n }: Parameters<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const elevenlabsOptions = await parseProviderOptions({\n provider: 'elevenlabs',\n providerOptions,\n schema: elevenLabsTranscriptionModelOptionsSchema,\n });\n\n // Create form data with base fields\n const formData = new FormData();\n const blob =\n audio instanceof Uint8Array\n ? new Blob([audio])\n : new Blob([convertBase64ToUint8Array(audio)]);\n\n formData.append('model_id', this.modelId);\n const fileExtension = mediaTypeToExtension(mediaType);\n formData.append(\n 'file',\n new File([blob], 'audio', { type: mediaType }),\n `audio.${fileExtension}`,\n );\n formData.append('diarize', 'true');\n\n // Add provider-specific options\n if (elevenlabsOptions) {\n const transcriptionModelOptions: ElevenLabsTranscriptionAPITypes = {\n language_code: elevenlabsOptions.languageCode ?? undefined,\n tag_audio_events: elevenlabsOptions.tagAudioEvents ?? undefined,\n num_speakers: elevenlabsOptions.numSpeakers ?? undefined,\n timestamps_granularity:\n elevenlabsOptions.timestampsGranularity ?? undefined,\n file_format: elevenlabsOptions.fileFormat ?? undefined,\n };\n\n if (typeof elevenlabsOptions.diarize === 'boolean') {\n formData.append('diarize', String(elevenlabsOptions.diarize));\n }\n\n for (const key in transcriptionModelOptions) {\n const value =\n transcriptionModelOptions[\n key as keyof ElevenLabsTranscriptionAPITypes\n ];\n if (value !== undefined) {\n formData.append(key, String(value));\n }\n }\n }\n\n return {\n formData,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { formData, warnings } = await this.getArgs(options);\n\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse,\n } = await postFormDataToApi({\n url: this.config.url({\n path: '/v1/speech-to-text',\n modelId: this.modelId,\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: elevenlabsFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n elevenlabsTranscriptionResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n text: response.text,\n segments:\n response.words?.map(word => ({\n text: word.text,\n startSecond: word.start ?? 0,\n endSecond: word.end ?? 0,\n })) ?? [],\n language: response.language_code,\n durationInSeconds: response.words?.at(-1)?.end ?? undefined,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n\nconst elevenlabsTranscriptionResponseSchema = z.object({\n language_code: z.string(),\n language_probability: z.number(),\n text: z.string(),\n words: z\n .array(\n z.object({\n text: z.string(),\n type: z.enum(['word', 'spacing', 'audio_event']),\n start: z.number().nullish(),\n end: z.number().nullish(),\n speaker_id: z.string().nullish(),\n characters: z\n .array(\n z.object({\n text: z.string(),\n start: z.number().nullish(),\n end: z.number().nullish(),\n }),\n )\n .nullish(),\n }),\n )\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const elevenlabsErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type ElevenLabsErrorData = z.infer<typeof elevenlabsErrorDataSchema>;\n\nexport const elevenlabsFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: elevenlabsErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n","import { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { ElevenLabsConfig } from './elevenlabs-config';\nimport { elevenlabsFailedResponseHandler } from './elevenlabs-error';\nimport { ElevenLabsSpeechAPITypes } from './elevenlabs-speech-api-types';\nimport {\n ElevenLabsSpeechModelId,\n ElevenLabsSpeechVoiceId,\n} from './elevenlabs-speech-options';\n\n// Schema for camelCase input from users\nconst elevenLabsSpeechModelOptionsSchema = z.object({\n languageCode: z.string().optional(),\n voiceSettings: z\n .object({\n stability: z.number().min(0).max(1).optional(),\n similarityBoost: z.number().min(0).max(1).optional(),\n style: z.number().min(0).max(1).optional(),\n useSpeakerBoost: z.boolean().optional(),\n })\n .optional(),\n pronunciationDictionaryLocators: z\n .array(\n z.object({\n pronunciationDictionaryId: z.string(),\n versionId: z.string().optional(),\n }),\n )\n .max(3)\n .optional(),\n seed: z.number().min(0).max(4294967295).optional(),\n previousText: z.string().optional(),\n nextText: z.string().optional(),\n previousRequestIds: z.array(z.string()).max(3).optional(),\n nextRequestIds: z.array(z.string()).max(3).optional(),\n applyTextNormalization: z.enum(['auto', 'on', 'off']).optional(),\n applyLanguageTextNormalization: z.boolean().optional(),\n enableLogging: z.boolean().optional(),\n});\n\nexport type ElevenLabsSpeechModelOptions = z.infer<\n typeof elevenLabsSpeechModelOptionsSchema\n>;\n\ninterface ElevenLabsSpeechModelConfig extends ElevenLabsConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ElevenLabsSpeechModel implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ElevenLabsSpeechModelId,\n private readonly config: ElevenLabsSpeechModelConfig,\n ) {}\n\n private async getArgs({\n text,\n voice = '21m00Tcm4TlvDq8ikWAM',\n outputFormat = 'mp3_44100_128',\n instructions,\n language,\n speed,\n providerOptions,\n }: Parameters<SpeechModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const elevenLabsOptions = await parseProviderOptions({\n provider: 'elevenlabs',\n providerOptions,\n schema: elevenLabsSpeechModelOptionsSchema,\n });\n\n // Create request body\n const requestBody: ElevenLabsSpeechAPITypes = {\n text,\n model_id: this.modelId,\n };\n\n // Prepare query parameters\n const queryParams: Record<string, string> = {};\n\n // Map outputFormat to ElevenLabs format (as query param)\n if (outputFormat) {\n const formatMap: Record<string, string> = {\n mp3: 'mp3_44100_128',\n mp3_32: 'mp3_44100_32',\n mp3_64: 'mp3_44100_64',\n mp3_96: 'mp3_44100_96',\n mp3_128: 'mp3_44100_128',\n mp3_192: 'mp3_44100_192',\n pcm: 'pcm_44100',\n pcm_16000: 'pcm_16000',\n pcm_22050: 'pcm_22050',\n pcm_24000: 'pcm_24000',\n pcm_44100: 'pcm_44100',\n ulaw: 'ulaw_8000',\n };\n\n const mappedFormat = formatMap[outputFormat] || outputFormat;\n queryParams.output_format = mappedFormat;\n }\n\n // Add language code if provided\n if (language) {\n requestBody.language_code = language;\n }\n\n const voiceSettings: typeof requestBody.voice_settings = {};\n\n if (speed != null) {\n voiceSettings.speed = speed;\n }\n\n // Add provider-specific options - map from camelCase to snake_case\n if (elevenLabsOptions) {\n if (elevenLabsOptions.voiceSettings) {\n // Map camelCase voice settings to snake_case for API\n if (elevenLabsOptions.voiceSettings.stability != null) {\n voiceSettings.stability = elevenLabsOptions.voiceSettings.stability;\n }\n if (elevenLabsOptions.voiceSettings.similarityBoost != null) {\n voiceSettings.similarity_boost =\n elevenLabsOptions.voiceSettings.similarityBoost;\n }\n if (elevenLabsOptions.voiceSettings.style != null) {\n voiceSettings.style = elevenLabsOptions.voiceSettings.style;\n }\n if (elevenLabsOptions.voiceSettings.useSpeakerBoost != null) {\n voiceSettings.use_speaker_boost =\n elevenLabsOptions.voiceSettings.useSpeakerBoost;\n }\n }\n // Add language code from provider options if not already set\n if (elevenLabsOptions.languageCode && !requestBody.language_code) {\n requestBody.language_code = elevenLabsOptions.languageCode;\n }\n\n // Map pronunciation dictionary locators\n if (elevenLabsOptions.pronunciationDictionaryLocators) {\n requestBody.pronunciation_dictionary_locators =\n elevenLabsOptions.pronunciationDictionaryLocators.map(locator => ({\n pronunciation_dictionary_id: locator.pronunciationDictionaryId,\n ...(locator.versionId && { version_id: locator.versionId }),\n }));\n }\n\n if (elevenLabsOptions.seed != null) {\n requestBody.seed = elevenLabsOptions.seed;\n }\n if (elevenLabsOptions.previousText) {\n requestBody.previous_text = elevenLabsOptions.previousText;\n }\n if (elevenLabsOptions.nextText) {\n requestBody.next_text = elevenLabsOptions.nextText;\n }\n\n // Add previous and next request IDs\n if (elevenLabsOptions.previousRequestIds) {\n requestBody.previous_request_ids = elevenLabsOptions.previousRequestIds;\n }\n if (elevenLabsOptions.nextRequestIds) {\n requestBody.next_request_ids = elevenLabsOptions.nextRequestIds;\n }\n\n // Add text normalization options\n if (elevenLabsOptions.applyTextNormalization) {\n requestBody.apply_text_normalization =\n elevenLabsOptions.applyTextNormalization;\n }\n if (elevenLabsOptions.applyLanguageTextNormalization != null) {\n requestBody.apply_language_text_normalization =\n elevenLabsOptions.applyLanguageTextNormalization;\n }\n\n // enable_logging is a query parameter\n if (elevenLabsOptions.enableLogging != null) {\n queryParams.enable_logging = String(elevenLabsOptions.enableLogging);\n }\n }\n\n // Only add voice_settings if there are settings to add\n if (Object.keys(voiceSettings).length > 0) {\n requestBody.voice_settings = voiceSettings;\n }\n\n if (instructions) {\n warnings.push({\n type: 'unsupported',\n feature: 'instructions',\n details: `ElevenLabs speech models do not support instructions. Instructions parameter was ignored.`,\n });\n }\n\n return {\n requestBody,\n queryParams,\n warnings,\n voiceId: voice as ElevenLabsSpeechVoiceId,\n };\n }\n\n async doGenerate(\n options: Parameters<SpeechModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<SpeechModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { requestBody, queryParams, warnings, voiceId } =\n await this.getArgs(options);\n\n const {\n value: audio,\n responseHeaders,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: (() => {\n const baseUrl = this.config.url({\n path: `/v1/text-to-speech/${voiceId}`,\n modelId: this.modelId,\n });\n const queryString = new URLSearchParams(queryParams).toString();\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n })(),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: requestBody,\n failedResponseHandler: elevenlabsFailedResponseHandler,\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n audio,\n warnings,\n request: {\n body: JSON.stringify(requestBody),\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["z","z","_a","_b","combineHeaders","parseProviderOptions","z","z","parseProviderOptions","combineHeaders"]}
|