本文档详细介绍同步合成接口 /v1/t2a\_v2 的调用方法,包括接口地址、输入输出参数、请求示例、响应示例及注意事项,适用于需要快速实现文本转语音同步合成的开发场景,供开发人员参考使用。
1. 认证方式
所有接口调用均需通过 API Key 认证,需在请求头中携带 Authorization 字段,格式如下:
Authorization: Bearer <YOUR_API_KEY>
说明:将 \<YOUR\_API\_KEY\>替换为您实际的 API Key,即可完成身份认证,获取接口调用权限。
2. 接口基础信息
-
接口用途:实现文本到语音的同步合成,支持多种模型版本、音色配置、情绪控制及音频参数自定义,可根据需求选择流式/非流式输出。
-
接口地址:
https://api\.modelverse\.cn/v1/t2a\_v2 -
请求方式:POST
-
Content-Type:application/json
3. 输入参数
输入参数分为基础必选参数和可选配置参数,部分参数存在依赖关系,具体说明如下,未标注“必选”的均为可选参数。
3.1 基础必选参数
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| model | string | 是 | 请求的模型版本,可选范围:speech-2.8-hd、speech-2.6-hd、speech-02-hd、speech-2.8-turbo、speech-2.6-turbo、speech-02-turbo |
| text | string | 是 | 需要合成语音的文本,长度限制小于10000字符;若文本长度大于3000字符,推荐使用流式输出。• 段落切换用换行符标记;• 停顿控制:在文本中增加<#x#>标记(x为停顿时长,单位:秒,范围 [0.01, 99.99],最多保留两位小数),需设置在两个可发音文本之间,不可连续使用多个停顿标记;• 语气词标签:仅 speech-2.8-hd、speech-2.8-turbo 模型支持,可选标签:(laughs)(笑声)、(chuckle)(轻笑)、(coughs)(咳嗽)、(clear-throat)(清嗓子)、(groans)(呻吟)、(breath)(正常换气)、(pant)(喘气)、(inhale)(吸气)、(exhale)(呼气)、(gasps)(倒吸气)、(sniffs)(吸鼻子)、(sighs)(叹气)、(snorts)(喷鼻息)、(burps)(打嗝)、(lip-smacking)(咂嘴)、(humming)(哼唱)、(hissing)(嘶嘶声)、(emm)(嗯)、(sneezes)(喷嚏) |
3.2 流式输出控制参数
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| stream | boolean | 否 | 控制是否流式输出,默认 false(不开启流式) |
| stream_options | object | 否 | 流式输出控制,仅当 stream = true 时生效 |
| stream_options.exclude_aggregated_audio | boolean | 否 | 设置最后一个 chunk 是否包含拼接后的语音 hex 数据,默认值为 false(包含完整语音 hex 数据) |
3.3 声音设置参数(voice_setting)
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| voice_setting.voice_id | string | 否 | 合成音频的音色编号。若需设置混合音色,需将本参数设为空,同时配置 timbre_weights 参数;支持系统音色、复刻音色、文生音色,音色ID可查看系统音色列表 |
| voice_setting.speed | float | 否 | 合成音频的语速,取值越大语速越快,范围 [0.5, 2],默认值 1.0 |
| voice_setting.vol | float | 否 | 合成音频的音量,取值越大音量越高,范围 (0, 10],默认值 1.0 |
| voice_setting.pitch | int | 否 | 合成音频的语调,范围 [-12, 12],默认值 0(原音色输出) |
| voice_setting.emotion | enum | 否 | 控制合成语音的情绪,可选值:["happy", "sad", "angry", "fearful", "disgusted", "surprised", "calm", "fluent", "whisper"],分别对应:高兴、悲伤、愤怒、害怕、厌恶、惊讶、中性、生动、低语。注意:fluent、whisper 仅对 speech-2.6-hd、speech-2.6-turbo 模型生效,speech-2.8-hd、speech-2.8-turbo 模型不支持 whisper |
| voice_setting.text_normalization | boolean | 否 | 是否启用中文、英语文本规范化,开启后可提升数字阅读场景性能,但会略微增加延迟,默认值 false |
| voice_setting.latex_read | boolean | 否 | 控制是否朗读 latex 公式,默认为 false。• 仅支持中文,开启后 language_boost 参数会被自动设置为 Chinese;• 公式需在首尾加上 $$ 标记;• 公式中的 "\" 需转义为 "\\" |
3.4 音频设置参数(audio_setting)
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| audio_setting.sample_rate | int | 否 | 生成音频的采样率,可选范围 [8000,16000,22050,24000,32000,44100],默认值 32000 |
| audio_setting.bitrate | int | 否 | 生成音频的比特率,可选范围 [32000,64000,128000,256000],默认值 128000;仅对 mp3 格式音频生效 |
| audio_setting.format | enum | 否 | 生成音频的格式,默认值 mp3。• wav 格式仅在非流式输出下支持;• 可用选项:mp3, pcm, flac, wav |
| audio_setting.channel | int | 否 | 生成音频的声道数,可选范围 [1, 2],1 为单声道,2 为双声道,默认值 1 |
| audio_setting.force_cbr | boolean | 否 | 音频恒定比特率(cbr)控制,可选 false、true;仅当 stream = true 且 audio_setting.format = mp3 时生效,设置为 true 时以恒定比特率编码 |
3.5 声调设置参数(pronunciation_dict)
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| pronunciation_dict.tone | string[] | 否 | 定义特殊标注的文字或符号对应的注音/发音替换规则,中文声调以数字表示(一声1、二声2、三声3、四声4、轻声5)。示例:["燕少飞/(yan4)(shao3)(fei1)", "omg/oh my god"] |
3.6 音色比重参数(timber_weights)
用于设置混合音色,最多支持4种音色混合,需与 voice_setting.voice_id 配合使用(voice_setting.voice_id 需设为空),voice_id 与 weight 需同步填写。
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| timber_weights.voice_id | string | 是(混合音色时) | 合成音频的音色编号,支持系统音色、复刻音色、文生音色,需与 weight 同步填写 |
| timber_weights.weight | int | 是(混合音色时) | 各音色所占权重,可选值范围 [1, 100],单一音色权重越高,合成音色与该音色相似度越高 |
3.7 语言增强参数(language_boost)
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| language_boost | enum | 否 | 增强指定小语种和方言的识别能力,默认值 null,可设为 auto 让模型自主判断。可用选项:Chinese, Yue, English, Arabic, Russian, Spanish, French, Portuguese, German, Turkish, Dutch, Ukrainian, Vietnamese, Indonesian, Japanese, Italian, Korean, Thai, Polish, Romanian, Greek, Czech, Finnish, Hindi, Bulgarian, Danish, Hebrew, Malay, Persian, Slovak, Swedish, Croatian, Filipino, Hungarian, Norwegian, Slovenian, Catalan, Nynorsk, Tamil, Afrikaans, auto |
3.8 声音效果器参数(voice_modify)
用于调整声音效果,支持的音频格式:非流式(mp3, wav, flac)、流式(mp3)。
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| voice_modify.pitch | int | 否 | 音高调整(低沉/明亮),范围 [-100, 100],数值越接近-100声音越低沉,越接近100声音越明亮 |
| voice_modify.intensity | int | 否 | 强度调整(力量感/柔和),范围 [-100, 100],数值越接近-100声音更刚劲,越接近100声音更轻柔 |
| voice_modify.timbre | int | 否 | 音色调整(磁性/清脆),范围 [-100, 100],数值越接近-100声音更浑厚,越接近100声音更清脆 |
| voice_modify.sound_effects | enum | 否 | 音效设置,单次仅能选择一种,可选值:spacious_echo(空旷回音)、auditorium_echo(礼堂广播)、lofi_telephone(电话失真)、robotic(电音) |
3.9 其他可选参数
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| subtitle_enable | boolean | 否 | 控制是否开启字幕服务,默认值 false;仅在非流式输出场景下有效 |
| output_format | enum | 否 | 控制输出结果形式,可选值 [url, hex],默认值 hex;仅在非流式场景生效,流式场景仅支持 hex 形式;返回的 url 有效期为 24 小时 |
| aigc_watermark | bool | 否 | 控制在合成音频末尾添加音频节奏标识,默认值 false;仅对非流式合成生效 |
4. 请求示例
如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具,避免命令行调用出现兼容问题。
curl --location --globoff 'https://api.modelverse.cn/v1/t2a_v2' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "speech-2.8-hd",
"text": "今天是不是很开心呀(laughs),当然了!",
"stream": false,
"voice_setting": {
"voice_id": "male-qn-qingse",
"speed": 1,
"vol": 1,
"pitch": 0,
"emotion": "happy"
},
"audio_setting": {
"sample_rate": 32000,
"bitrate": 128000,
"format": "mp3",
"channel": 1
},
"pronunciation_dict": {
"tone": [
"处理/(chu3)(li3)",
"危险/dangerous"
]
},
"subtitle_enable": false
}'
5. 输出参数
接口返回结果包含合成数据、附加信息、会话标识及请求状态,具体参数说明如下:
| 参数 | 类型 | 描述 |
|---|---|---|
| data | object | 返回的合成数据对象,可能为 null,需进行非空判断 |
| data.audio | string | 合成后的音频数据,采用 hex 编码,格式与请求中指定的 output_format 一致 |
| data.subtitle_file | string | 合成的字幕下载链接,音频对应的字幕精确到句(不超过50字),单位为毫秒,格式为 json;仅当 subtitle_enable = true 时返回 |
| data.status | int | 当前音频流状态:1 表示合成中,2 表示合成结束 |
| trace_id | string | 本次会话的 id,用于咨询/反馈时定位问题 |
| extra_info | object | 音频的附加信息 |
| extra_info.audio_length | int | 音频时长(毫秒) |
| extra_info.audio_sample_rate | int | 音频采样率 |
| extra_info.audio_size | int | 音频文件大小(字节) |
| extra_info.bitrate | int | 音频比特率 |
| extra_info.audio_format | enum | 生成音频文件的格式,取值范围 [mp3, pcm, flac] |
| extra_info.audio_channel | int | 生成音频声道数,1:单声道,2:双声道 |
| extra_info.invisible_character_ratio | number | 非法字符占比;非法字符不超过10%(含10%),音频正常生成并返回该数据;超过10%则报错 |
| extra_info.usage_characters | int | 计费字符数 |
| extra_info.word_count | int | 已发音的字数统计,包含汉字、数字、字母,不包含标点符号 |
| base_resp | object | 本次请求的状态码和详情 |
| base_resp.status_code | int | 状态码,具体含义:0(请求正常)、1000(未知错误)、1001(超时)、1002(触发限流)、1004(鉴权失败)、1039(触发TPM限流)、1042(非法字符超过10%)、2013(输入参数异常) |
| base_resp.status_msg | string | 状态详情,描述请求执行结果 |
6. 响应示例
{
"data": {
"audio": "<hex编码的audio>",
"status": 2
},
"extra_info": {
"audio_length": 9900,
"audio_sample_rate": 32000,
"audio_size": 160323,
"bitrate": 128000,
"word_count": 52,
"invisible_character_ratio": 0,
"usage_characters": 26,
"audio_format": "mp3",
"audio_channel": 1
},
"trace_id": "01b8bf9bb7433cc75c18eee6cfa8fe21",
"base_resp": {
"status_code": 0,
"status_msg": "success"
}
}
7. 注意事项
-
文本限制:text 字段长度需小于10000字符,超过3000字符推荐使用流式输出;停顿标记需设置在两个可发音文本之间,不可连续使用。
-
模型兼容性:语气词标签仅支持 speech-2.8-hd、speech-2.8-turbo 模型;emotion 字段的 fluent、whisper 仅支持 speech-2.6-hd、speech-2.6-turbo 模型。
-
音色配置:混合音色需将 voice_setting.voice_id 设为空,同时配置 timber_weights 参数,最多支持4种音色混合,voice_id 与 weight 需同步填写。
-
音频格式:wav 格式仅支持非流式输出;force_cbr 参数仅在流式输出且音频格式为 mp3 时生效。
-
latex 朗读:开启 latex_read 后,language_boost 会自动设为 Chinese,公式需用 $$ 包裹,且 "\" 需转义为 "\\"。
-
字幕服务:subtitle_enable 仅在非流式输出时有效,开启后会返回字幕下载链接。
-
输出格式:output_format 仅在非流式场景生效,流式场景仅支持 hex 格式;url 形式的音频链接有效期为24小时,需及时下载。
-
非法字符:当非法字符占比超过10%时,接口会报错(status_code=1042),需清理非法字符后重新请求。
-
音效设置:voice_modify.sound_effects 单次仅能选择一种音效,且需匹配对应的音频格式。