跳到导航

Vercel AI SDK

使用 Vercel AI SDK 中的 ElevenLabs Provider,为音频和视频文件生成转录文本。

操作指南 · 假设你已完成文本转语音 快速入门,并已设置 Vercel 项目。

ElevenLabs Provider

ElevenLabs provider 支持 ElevenLabs 转录 API。

设置

ElevenLabs provider 可在 @ai-sdk/elevenlabs 模块中使用。可通过 npm 安装:

npm install @ai-sdk/elevenlabs

Provider 实例

可从 @ai-sdk/elevenlabs 导入默认 provider 实例 elevenlabs:

import { elevenlabs } from "@ai-sdk/elevenlabs";

如需自定义设置,可从 @ai-sdk/elevenlabs 导入 createElevenLabs,并使用自己的设置创建 provider 实例:

import { createElevenLabs } from "@ai-sdk/elevenlabs";
const elevenlabs = createElevenLabs({
// custom settings, e.g.
fetch: customFetch,
});

可以使用以下可选设置自定义 ElevenLabs provider 实例:

  • apiKey string

    通过 Authorization 标头发送的 API 密钥。 默认为 ELEVENLABS_API_KEY 环境变量。

  • headers Record<string,string>

    请求中包含的自定义标头。

  • fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>

    自定义 fetch 实现。 默认为全局 fetch 函数。 可将其用作中间件来拦截请求, 或提供自定义 fetch 实现,例如用于测试。

转录模型

可使用 .transcription() 工厂方法创建调用 ElevenLabs 转录 API 的模型。

第一个参数是模型 ID,例如 scribe_v3。

const model = elevenlabs.transcription("scribe_v3");

还可以使用 providerOptions 参数传递额外的 provider 专属选项。例如,如果预先知道输入语言,提供 ISO-639-1 格式的语言代码(例如 en)有时可提升转录性能。

import { elevenlabs } from "@ai-sdk/elevenlabs";
import { experimental_transcribe as transcribe } from "ai";
const result = await transcribe({
model: elevenlabs.transcription("scribe_v3"),
audio: new Uint8Array([1, 2, 3, 4]),
providerOptions: { elevenlabs: { languageCode: "en" } },
});

可用的 provider 选项如下:

  • languageCode string

    与音频文件语言对应的 ISO-639-1 或 ISO-639-3 语言代码。 如果预先知道,有时可提升转录性能。 默认为 null,此时会自动预测语言。

  • tagAudioEvents boolean

    是否在转录文本中标记(笑声)、(脚步声)等音频事件。 默认为 true。

  • numSpeakers integer

    上传文件中说话人的最大数量。 可帮助预测每个时段的说话人。 最多可预测 32 位说话人。 默认为 null,此时说话人数量设为模型支持的最大值。

  • timestampsGranularity enum

    转录文本中时间戳的粒度。 默认为 'word'。 允许值:'none'、'word'、'character'。

  • diarize boolean

    是否标注上传文件中当前说话的说话人。 默认为 true。

  • fileFormat enum

    输入音频的格式。 默认为 'other'。 允许值:'pcm_s16le_16'、'other'。 对于 'pcm_s16le_16',输入音频必须是采样率为 16kHz、单声道、小端字节序的 16 位 PCM。 延迟将低于传入已编码波形时的延迟。

后续步骤