Matrix TTS API
matrix-tts-v1 是 Matrix 的自研语音合成模型,输出 48 kHz 单声道音频。
支持零样本声音克隆与按属性设计音色,服务端支持动态合批,是批量场景下吞吐最高的语音模型。
支持多语种,服务端会根据文本自动识别语种,一般无需额外声明。
快速开始
curl --fail-with-body \
-X POST 'https://mzsjai.com/v1/audio/speech' \
-H "Authorization: Bearer ${MOZIA_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model": "matrix-tts-v1",
"input": "你好,这是一段由 Matrix TTS 生成的语音。"
}' \
--output speech.wav
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定为 matrix-tts-v1 |
input | string | 是 | 待合成文本,上限 4000 字符 |
instructions | string | 否 | 音色属性描述,取值必须来自下方词典 |
ref_audio | string | 否 | Base64 编码的参考音频,用于声音克隆 |
ref_text | string | 否 | 参考音频对应的文字 |
speed | number | 否 | 语速 |
response_format | string | 否 | wav(默认)、flac、ogg、opus |
:::note 关于 voice 参数
matrix-tts-v1 没有预置音色,voice 字段对本模型不生效,传入任意名称都不会改变音色。
需要指定音色请使用 ref_audio 克隆,或用 instructions 描述音色属性。
需要按名称选择现成音色时,请改用 index-tts-v2。
:::
三种合成方式
合成方式由传入的参数自动决定,无需显式声明:
| 方式 | 传入参数 | 效果 |
|---|---|---|
| 默认音色 | 仅 input | 使用模型默认发音 |
| 音色设计 | input + instructions | 按性别、年龄、音调等属性生成音色 |
| 声音克隆 | input + ref_audio | 复刻参考音频中的音色 |
声音克隆
参考音频以 Base64 放入 JSON 请求体:
REF_B64=$(base64 -i my-voice.wav | tr -d '\n')
curl --fail-with-body \
-X POST 'https://mzsjai.com/v1/audio/speech' \
-H "Authorization: Bearer ${MOZIA_API_KEY}" \
-H 'Content-Type: application/json' \
-d "{
\"model\": \"matrix-tts-v1\",
\"input\": \"用我的声音念这句话。\",
\"ref_audio\": \"${REF_B64}\",
\"ref_text\": \"参考音频里说的那句话\"
}" \
--output cloned.wav
ref_text 可选。提供准确的参考文字可以提升音色相似度;不提供时服务端会自动识别参考音频内容,
首次合成耗时略长。
同一段参考音频在后续请求中会被服务端复用,重复使用同一音色时合成更快。
音色设计
instructions 只接受下列固定词条,不支持自由描述(例如「温柔一点」会返回 400):
| 类别 | 可选值 |
|---|---|
| 性别 | 男 / male,女 / female |
| 年龄 | 儿童 / child,少年 / teenager,青年 / young adult,中年 / middle-aged,老年 / elderly |
| 音调 | 极低音调 / very low pitch,低音调 / low pitch,中音调 / moderate pitch,高音调 / high pitch,极高音调 / very high pitch |
| 耳语 | 耳语 / whisper |
| 口音(仅英文) | american accent、british accent、australian accent、canadian accent、indian accent、chinese accent、japanese accent、korean accent、portuguese accent、russian accent |
| 方言(仅中文) | 河南话、陕西话、四川话、贵州话、云南话、桂林话、济南话、石家庄话、甘肃话、宁夏话、青岛话、东北话 |
同一类别内的词条互斥,只能选一个。中文词条之间用全角逗号 , 分隔,英文词条之间用半角逗号加空格 , 分隔,不要混用中英文。
curl --fail-with-body \
-X POST 'https://mzsjai.com/v1/audio/speech' \
-H "Authorization: Bearer ${MOZIA_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model": "matrix-tts-v1",
"input": "欢迎收听今天的节目。",
"instructions": "女,青年,高音调"
}' \
--output designed.wav
传入不支持的词条时,400 响应的 message 中会列出全部合法词条,可据此排查。
输出
返回 48 kHz、单声道、16 位音频。默认为 WAV。
请求 mp3 或 pcm 不会报错,但返回的仍是 WAV 数据,详见语音合成总览。
错误码
| 状态码 | 触发条件 |
|---|---|
400 | input 为空或超过 4000 字符;ref_audio 不是合法 Base64;instructions 含不支持的词条;response_format 不支持 |
503 | 模型加载中或服务繁忙 |
504 | 合成超时 |
其余错误码见语音合成总览。