minimax-speech

本文档详细介绍同步合成接口 /v1/t2a\_v2 的调用方法,包括接口地址、输入输出参数、请求示例、响应示例及注意事项,适用于需要快速实现文本转语音同步合成的开发场景,供开发人员参考使用。

1. 认证方式

所有接口调用均需通过 API Key 认证,需在请求头中携带 Authorization 字段,格式如下:

Authorization: Bearer <YOUR_API_KEY>

说明:将 \&lt;YOUR\_API\_KEY\&gt;替换为您实际的 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字符,推荐使用流式输出。• 段落切换用换行符标记;• 停顿控制:在文本中增加&lt;#x#&gt;标记(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 控制合成语音的情绪,可选值:[&#34;happy&#34;, &#34;sad&#34;, &#34;angry&#34;, &#34;fearful&#34;, &#34;disgusted&#34;, &#34;surprised&#34;, &#34;calm&#34;, &#34;fluent&#34;, &#34;whisper&#34;],分别对应:高兴、悲伤、愤怒、害怕、厌恶、惊讶、中性、生动、低语。注意: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;• 公式需在首尾加上 $$ 标记;• 公式中的 &#34;\&#34; 需转义为 &#34;\\&#34;

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)。示例:[&#34;燕少飞/(yan4)(shao3)(fei1)&#34;, &#34;omg/oh my god&#34;]

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,公式需用 $$ 包裹,且 &#34;\&#34; 需转义为 &#34;\\&#34;。

  • 字幕服务:subtitle_enable 仅在非流式输出时有效,开启后会返回字幕下载链接。

  • 输出格式:output_format 仅在非流式场景生效,流式场景仅支持 hex 格式;url 形式的音频链接有效期为24小时,需及时下载。

  • 非法字符:当非法字符占比超过10%时,接口会报错(status_code=1042),需清理非法字符后重新请求。

  • 音效设置:voice_modify.sound_effects 单次仅能选择一种音效,且需匹配对应的音频格式。