Skip to main content

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,更有利于表现情绪。 完整调用示例:
标签的表现随音色、文本和 stability 而变化,建议选择与目标表达相适应的音色。标签属于输入内容,会参与用量计算。

使用限制

  • WAV 输出会返回参数错误;流式输出请使用 MP3、PCM、Opus、μ-law 或 A-law。
  • 当前 Eleven v3 接口不提供数值语速、音色相似度和 Speaker Boost 调节,请使用本页介绍的音色、stability 和表达标签。
  • 不支持通过前后文文本或请求 ID 拼接音频。
更多表达方法可参考 Eleven v3 官方提示指南。