Vercel AI SDK
使用 Vercel AI SDK 中的 ElevenLabs Provider,为音频和视频文件生成转录文本。
操作指南 · 假设你已完成文本转语音 快速入门,并已设置 Vercel 项目。
ElevenLabs Provider
ElevenLabs provider 支持 ElevenLabs 转录 API。
设置
ElevenLabs provider 可在 @ai-sdk/elevenlabs 模块中使用。可通过 npm 安装:
Provider 实例
可从 @ai-sdk/elevenlabs 导入默认 provider 实例 elevenlabs:
如需自定义设置,可从 @ai-sdk/elevenlabs 导入 createElevenLabs,并使用自己的设置创建 provider 实例:
可以使用以下可选设置自定义 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。
还可以使用 providerOptions 参数传递额外的 provider 专属选项。例如,如果预先知道输入语言,提供 ISO-639-1 格式的语言代码(例如 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。 延迟将低于传入已编码波形时的延迟。