Skip to content

豆包语音2.0

POST  v1/audio/speech

每个音色能支持的情感不同,具体参考音色情感列表: https://www.volcengine.com/docs/6561/1257544

开心(happy),悲伤(sad),生气(angry),惊讶(surprised),恐惧(fear)...

所有在openai标准之外的参数按原厂格式写在metadata里, 支持所有格式

音色示例: 通过调整emotion参数

请求参数

Authorization

在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。

Authorization: Bearer ******************

Body 参数

Content-Type: application/json

参数名类型必填说明
modelstring必需模型 ID。可选用 tts-1(标准)或 tts-1-hd(高清)。
inputstring必需文本内容。要生成音频的源文本,最大长度限制为 4096 个字符。
voicestring必需音色选择。支持的预设音色包括:alloyechofableonyxnovashimmer
response_formatstring必需响应格式。默认为 mp3,其他支持格式有 opusaacflac
speedinteger必需整体倍速。默认值为 1,可选择 0.254.0 之间的值。
metadataobject必需元数据。用于存储额外的配置或追踪信息。
audioobject必需音频对象。包含音频相关的核心配置参数。
enable_emotionboolean必需情感功能开关。是否启用情感渲染。
emotionstring必需情感类别。指定具体的情感风格(如 happy, sad, angry 等)。
emotion_scaleinteger必需情感强度。控制情感表达的强烈程度。

请求示例 (JSON)

{
    "input": "你是一个好孩子",
    "model": "seed-tts-1.1",
    "response_format": "mp3",
    "speed": 1,
    "voice": "zh_female_shuangkuaisisi_emo_v2_mars_bigtts",
    "metadata": {
        "audio": {
            "emotion_scale": 5,
            "enable_emotion": true,
            "emotion": "happy"
        }
    }
}

返回响应

200 成功

Content-Type: application/json

响应参数

参数名类型必填说明
modelstring必需模型标识符。指定要使用的语音合成模型版本(例如 tts-1-hdIndexTeam/IndexTTS-2 等)。
inputstring必需文本内容。需要转换成语音的原始文字。通常有字符数限制(如最大4096字符),部分接口也支持传入 SSML 格式文本以实现更精细的控制。
voicestring必需音色/发音人。指定生成音频时使用的声音角色(例如 alloyzh-CN-XiaoxiaoNeural 或自定义音色ID)。不同的音色会带来不同的性别、年龄和情感风格。

响应示例

{
    "model": "tts-1",
    "input": "The quick brown fox jumped over the lazy dog.",
    "voice": "alloy"
}

示例代码

python
import http.client
import json

conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
   "input": "你是一个好孩子",
   "model": "seed-tts-1.1",
   "response_format": "mp3",
   "speed": 1,
   "voice": "zh_female_shuangkuaisisi_emo_v2_mars_bigtts",
   "metadata": {
      "audio": {
         "emotion_scale": 5,
         "enable_emotion": True,
         "emotion": "happy"
      }
   }
})
headers = {
   'Authorization': 'Bearer <token>',
   'Content-Type': 'application/json'
}
conn.request("POST", "/v1/audio/speech", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))