ElevenLabs 语音合成
通过POST /v1/audio/speech 调用 eleven_v3。生成完成后,平台将音频转存到云存储,返回可下载或播放的 url。
Eleven v3 支持多语言语音生成,可通过音色、稳定性和表达标签调整朗读效果。使用前,请确保 API Key 已开通 eleven_v3 模型。
非流式语音合成
查询用量时,使用响应头
x-model-service-trace-id 的值作为 GET /v1/usage?request_id=... 的查询参数。该值与响应正文中的 request_id 含义不同。
流式语音合成
设置stream: true 后,接口通过 SSE 返回音频块。每个事件的 audio 是一段独立 Base64 编码的音频数据;按接收顺序逐段解码并写入同一个文件。流结束前会返回包含 token 的用量事件。
Python
SSE 响应示例
成功响应的Content-Type 为 text/event-stream。一次响应通常包含多个音频事件和一个末尾用量事件,例如:
data: 开头,并以一个空行结束。最后一个事件发送完成后服务器关闭连接;接口不发送 [DONE] 标记。
流式响应不会生成云存储 URL,也不包含非流式响应中的
url、duration_ms 或正文 request_id。使用响应头 x-model-service-trace-id 关联日志,并作为 GET /v1/usage?request_id=... 的查询参数。
示例中的 Base64 内容已截断,不能直接作为音频播放。不要拼接 Base64 字符串后再统一解码,应逐块解码后拼接字节。
请求参数
非流式响应是包含音频 URL 的 JSON,不是音频二进制。裸 PCM 不含文件头,播放或封装为 WAV 时需要使用请求对应的采样率、位深和声道数。
选择音色
model 决定使用哪个语音生成模型,voice 决定使用哪个声音朗读。示例中的 JBFqnCBsd6RMkjVDRZzb 是音色的唯一标识;更换声音时,将其替换为已开通的 ElevenLabs 音色 ID。
Stability:控制表达与稳定性
通过
model_extra.voice_settings.stability 选择档位。例如,以下 model_extra 配置使用 Natural:
0.5 开始;需要更丰富的情绪时使用 0,需要更平稳的朗读时使用 1。
情绪和表达标签
将标签写在input 中需要调整表达的文本前。搭配 stability: 0 或 0.5,更有利于表现情绪。
完整调用示例:
使用限制
- WAV 输出会返回参数错误;流式输出请使用 MP3、PCM、Opus、μ-law 或 A-law。
- 当前 Eleven v3 接口不提供数值语速、音色相似度和 Speaker Boost 调节,请使用本页介绍的音色、stability 和表达标签。
- 不支持通过前后文文本或请求 ID 拼接音频。

