Vercel 与 ElevenLabs 达成合作,将 14 个 ElevenLabs 模型引入 AI Gateway。为庆祝此次发布,所有 ElevenLabs 模型在 AI Gateway 上前 14 天(截至 11 月 9 日)享受 50% 折扣。
AI Gateway 支持六种不同类型的 ElevenLabs 音频模型:
- 语音转文本:转写录音,或在人们说话时实时为音频添加字幕。
- 流式文本转语音:在语言模型仍在生成回复时就开始播放音频,让用户无需等待完整答案。
- 实时语音智能体:让用户与你的应用对话,并在单个实时会话中听到它大声回应。适用于客服热线、辅导老师和应用内助手。
- 音乐:用纯文本描述一首曲目,即可获得所需长度的成品歌曲或纯音乐。
- 音效:根据简短描述生成游戏和界面音效,或可无缝循环的环境音。
- 多声音对话:一次调用即可为整段对话配音,每位说话者使用不同的声音。
所有这些音频模型均可通过单个网关 API 密钥访问。你的应用或智能体可以转写用户所说的话,用你选择的数百个模型之一进行推理,然后用 ElevenLabs 的声音作答。你还可以用生成的音乐和音效制作配乐。
每个请求都会像你的其他 AI Gateway 流量一样,出现在相同的用量、成本和追踪视图中。
模型类型
AI Gateway 让你可以使用 14 个 ElevenLabs 模型,涵盖语音转文本、实时语音和音乐。
| 模型类型 | 模型 ID |
|---|---|
| 语音转文本 | elevenlabs/scribe-v2, elevenlabs/scribe-v2-realtime |
| 流式文本转语音 | elevenlabs/eleven-flash-v2.5, elevenlabs/eleven-flash-v2, elevenlabs/eleven-multilingual-v2, elevenlabs/eleven-v3-conversational |
| 实时语音智能体 | elevenlabs/eleven-realtime-v1-max, elevenlabs/eleven-realtime-v1-mini |
| 音乐 | elevenlabs/music-v2.5, elevenlabs/music-v2 |
| 音效 | elevenlabs/sound-effects-v2 |
| 多声音对话 | elevenlabs/eleven-v4, elevenlabs/eleven-v4-turbo, elevenlabs/eleven-v3 |
语音与转写
Scribe v2 Realtime 在用户仍在说话时将其语音转为文本。然后由你选择的语言模型写出答案。Eleven Flash v2.5 是一个低延迟的 ElevenLabs 语音模型,它会在答案流式传入时将其朗读出来,因此用户在模型写完之前就能听到回复开始。
由于每个步骤都是独立的模型,你可以替换转写、语言或语音模型,而无需改动流水线的其余部分。
在下面的示例中,用户询问自己能否赶上转机航班。文本模型结合航班状态和登机口距离来作答,然后由语音模型给出回复。
import {
experimental_streamSpeech as streamSpeech,
experimental_streamTranscribe as streamTranscribe,
streamText,
} from 'ai';
const heard = streamTranscribe({
model: 'elevenlabs/scribe-v2-realtime',
audio: microphoneStream,
inputAudioFormat: { type: 'audio/pcm', rate: 16000 },
});
const { textStream } = streamText({
model: 'anthropic/claude-haiku-5.5',
prompt: await heard.text,
});
const { audioStream } = streamSpeech({
model: 'elevenlabs/eleven-flash-v2.5',
text: textStream,
voice: 'hpp4J3VqNfWAUOO0d1Us',
});
该代码转写 16 kHz 麦克风流,将完成的转写文本发送给语言模型,并把模型的文本直接送入语音合成。
实时语音智能体
Eleven Realtime v1 Max 和 Eleven Realtime v1 Mini 用单个模型运行整段语音对话,适合用户期望自然来回交流的对话,例如客服通话或应用内助手。这两个模型都在单个 WebSocket 会话中接收用户音频并语音回复,因此无需单独接入转写或语音步骤。
Eleven Realtime 听到“我可以更改订单的收货地址吗?”,并在一个 WebSocket 会话中回应“我可以帮您处理。您的订单号是多少?”。
import { gateway } from 'ai';
const { token, url } = await gateway.experimental_realtime.getToken({
model: 'elevenlabs/eleven-realtime-v1-max',
});
浏览器自行打开 WebSocket 会话,因此服务器唯一的职责是为所选模型签发一个短期令牌,从而让你的 API 密钥不暴露在客户端。
在浏览器中,使用 @ai-sdk/react 中的 useRealtime hook 进行连接,它负责处理 WebSocket 连接、麦克风采集和音频播放。在该 hook 的 sessionConfig 中,设置 ElevenLabs 语音 ID 和 turnDetection: { type: 'semantic-vad' }。这些模型支持语义语音活动检测(VAD)来判断用户何时说完,但不支持 server-vad。实时指南 介绍了完整的浏览器设置流程。
音乐与音效
Music v2.5 和 Music v2 根据文本描述创作原创音乐。指定流派、情绪或你想要的乐器,模型就会返回所需长度的成品曲目,可带人声或不带人声。如需更多控制,你可以逐段编排歌曲,并为每个段落指定各自的风格和长度。
Sound Effects v2 对较短的音效采用相同方式,例如脚步声、关门声,或在游戏关卡下循环的雨声。
这三个模型都使用 generateSpeech,其中 text 描述你想要的声音,而不是要朗读的文字。此示例请求一段 30 秒的曲目:
import { generateSpeech } from 'ai';
const { audio } = await generateSpeech({
model: 'elevenlabs/music-v2.5',
text: 'A mellow lo-fi beat with soft piano',
providerOptions: { elevenlabs: { musicLengthMs: 30000 } },
});
多声音对话
Eleven v4、Eleven v4 Turbo 和 Eleven v3 可在单个请求中演绎多说话者的脚本。你为每行台词指定一个声音,每次声音变化都会开始新一轮。双主持人播客或全员出演的场景会以一段连续录音返回,因此无需拼接单独的片段。
import { experimental_streamSpeech as streamSpeech } from 'ai';
const host = 'hpp4J3VqNfWAUOO0d1Us';
const guest = 'CwhRBWXzGAHq8TQ4Fs17';
const { audioStream } = streamSpeech({
model: 'elevenlabs/eleven-v4',
text: [
{ type: 'text', text: 'Did the deploy go out?', voice: host },
{ type: 'text', text: 'It shipped an hour ago.', voice: guest },
],
providerOptions: { elevenlabs: { dialogue: { voices: [host, guest] } } },
});
每个声音都是一个 ElevenLabs 语音 ID。台词也可以从编写脚本的语言模型流式传入。
关于 AI Gateway
AI Gateway 提供统一的 API,用于调用模型、追踪用量和成本,并配置重试、故障转移和性能优化,以实现高于提供商自身的正常运行时间。它内置 自定义报告、零数据保留支持、API 密钥预算、路由规则 等功能。
AI Gateway 反映提供商定价,不加价,且不对推理收取平台费,包括 自带密钥(BYOK)请求。
AI Gateway 音频文档 提供了涵盖 ElevenLabs 各模型的示例。浏览 AI Gateway 上的所有音频模型,并在 11 月 9 日前以 50% 折扣试用 ElevenLabs。
