Vercel AI SDK
使用 Vercel AI SDK 中的 ElevenLabs Provider,从音频和视频文件转录语音。
操作指南 · 假设你已完成 Speech to Text 快速入门,并已设置 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_v2。
你还可以通过 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'时,输入音频必须为 16 kHz 采样率、单声道、小端字节序的 16 位 PCM。 延迟将低于传入编码波形。