产品文档
语音合成
更新于 2026-09-04
传统蒙古文、西里尔蒙古文与中文、英语等 15 个语种的语音合成,200 余个发音人,支持多说话人多语种混合。
能力与场景
语音合成将传统蒙古文、西里尔蒙古文与中文、英语等 15 个语种的文本转为自然流畅的语音,全站共 208 个发音人(西里尔蒙古文 10 个、中文 31 个、英语 58 个……完整清单见「发音人清单」)。典型场景:有声读物与新闻播报、公共场所语音广播、语音助手与无障碍阅读、双语教学音频。
接口支持两种形态:单发音人(传 text,可选 lang / voice / speed);多说话人 / 多语种混合(传 segments 数组,或在 text 中写 <voice> / <pause> 标记),每段可独立指定语种、发音人与语速并插入停顿,服务端会统一音频规格后拼接成一段。
端点列表
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /v1/tts | 文本合成语音(单发音人 / 多说话人混合,返回音频流或 base64 JSON) |
每个端点的请求参数、响应结构与可运行代码示例见本页下方「API 参考」(随接口定义自动生成,始终与线上一致)。
调用要点
lang不传时按文字系统自动检测;粤语及西班牙语、法语、德语、葡萄牙语、印尼语无法从文字区分,请显式传入。voice不传时用该语种默认发音人,传了必须属于该语种。- 多说话人示例(JSON):
{"segments":[{"text":"Сайн байна уу","voice":"saikhan"},{"pause":400},{"text":"你好,欢迎使用讯蒙智能云。","lang":"zh","voice":"zh-CN-YunxiNeural"}]}。 - 多说话人示例(标记串):
{"text":"<voice name=\"bold\">Сайн байна уу</voice><pause ms=\"400\"/><voice name=\"zh-CN-XiaoxiaoNeural\">你好</voice>"},标记之外的散文本按默认发音人成段。 speed范围 0.5~2(传统蒙古文发音人不支持语速);format支持 mp3 / wav;追加?output=json可获得 base64 音频与实际使用的 lang / voice。- 响应为二进制音频流时请以文件方式保存(参考代码示例中的 --output / arrayBuffer 写法)。
- 按各段文本字符数之和计费,停顿与标记本身不计费;单次合计不超过 5000 字符,多说话人最多 50 段。
支持语种
lang可选:不传时按文本文字系统自动检测(传统蒙古文 / 西里尔蒙古文 / 中文 / 日语 / 韩语 / 阿拉伯语 / 印地语 / 俄语 / 英语);粤语及西、法、德、葡、印尼语无法从文字区分,请显式传入。voice可选:不传用该语种默认发音人;传了必须属于该语种。各语种全部发音人见「发音人清单」。- 多说话人 / 多语种混合:
segments每段可独立指定lang/voice,服务端会统一音频规格后拼接。 - 蒙科立编码的传统蒙古文请传
encoding=menksoft,服务端会先归一化为国标再合成。
合成语种(参数 lang):
| 代码 | 语种 | 说明 |
|---|---|---|
mw | 传统蒙古文 | 2 个发音人,默认 female;仅男 / 女两个音色,不支持语速调节 |
xle_mw | 西里尔蒙古文 | 10 个发音人,默认 saikhan |
zh | 中文 | 31 个发音人,默认 zh-CN-XiaoxiaoNeural |
yue | 粤语 | 2 个发音人,默认 yue-CN-XiaoMinNeural |
en | 英语 | 58 个发音人,默认 en-US-JennyNeural |
ja | 日语 | 7 个发音人,默认 ja-JP-NanamiNeural |
ko | 韩语 | 10 个发音人,默认 ko-KR-SunHiNeural |
es | 西班牙语 | 20 个发音人,默认 es-ES-ElviraNeural |
fr | 法语 | 17 个发音人,默认 fr-FR-DeniseNeural |
de | 德语 | 17 个发音人,默认 de-DE-KatjaNeural |
ru | 俄语 | 3 个发音人,默认 ru-RU-SvetlanaNeural |
pt | 葡萄牙语 | 18 个发音人,默认 pt-BR-FranciscaNeural |
ar | 阿拉伯语 | 2 个发音人,默认 ar-SA-ZariyahNeural |
hi | 印地语 | 9 个发音人,默认 hi-IN-SwaraNeural |
id | 印尼语 | 2 个发音人,默认 id-ID-GadisNeural |
完整代码表与各产品对照见「语种与语言代码」。
计费
- 计费单位:字符
- 每月免费额度于月初重置,优先于余额抵扣;超出部分按单价从智能云余额扣费。
- 仅对成功的调用计费;失败调用不扣费。
- 实时单价与免费额度见本页下方「当前价格」(后台调价即时生效),总规则见「计费与免费额度」。
当前价格
以下为实时生效价,与定价页同源;调价后此处立即同步。仅对成功调用计费,免费额度优先抵扣。
| 计费单位 | 单价 | 每月免费额度 |
|---|---|---|
| 按字符计费 | ¥0.5 / 千字符 | 2,000 字符 / 月 |
API 参考
本产品共 1 个接口,以下内容随接口定义自动生成。 需要跨产品查找接口时可前往接口索引。
语音合成(单发音人 / 多说话人多语种混合)
/v1/tts文本转语音,支持传统蒙古文、西里尔蒙古文与中文、英语等 15 个语种、200 余个发音人(见文档「发音人清单」)。
单发音人:传 text,可选 lang(不传按文字系统自动检测)与 voice(不传用该语种默认音色)。
多说话人 / 多语种混合:传 segments 数组(每段独立 lang / voice / speed,可插入 pause 停顿),或在 text 中使用 <voice name="…" lang="…" speed="…">…</voice> 与 <pause ms="…"/> 标记;各段合成后统一重采样拼接为一段音频。
默认直接返回音频二进制(Content-Type: audio/mpeg 或 audio/wav);追加查询参数 ?output=json 时返回 base64 JSON。按各段文本字符数之和计费,停顿与标记不计费。
请求参数application/json
| 参数 | 类型 | 说明 |
|---|---|---|
outputquery可选 | string | 设为 json 时返回 { audio: base64, contentType, durationMs?, lang, voice, segments, billedChars } 可选值: json |
text可选 | string | 待合成文本(最长 5000 字符;与 segments 二选一)。普通文本按 lang / voice 单发音人合成;文本中含 <voice name="…" speed="…" lang="…">…</voice> 与 <pause ms="…"/> 标记时自动进入多说话人模式,标记之外的散文本按默认音色成段,标记本身不计费。 示例: Сайн байна уу |
segments可选 | array<object> | 多说话人 / 多语种混合合成(与 text 二选一):按顺序给出朗读段与停顿段,最多 50 段,各段文本合计不超过 5000 字符。每段可独立指定 lang / voice / speed,不同语种、不同发音人的段会统一音频规格后拼接为一段音频。 示例: [{"text":"Сайн байна уу","voice":"saikhan"},{"pause":400},{"text":"你好,欢迎使用讯蒙智能云。","lang":"zh","voice":"zh-CN-YunxiNeural"}] |
└ text可选 | string | 本段朗读文本(与 pause 互斥) 示例: Сайн байна уу |
└ lang可选 | string | 本段语种代码:mw=传统蒙古文,xle_mw=西里尔蒙古文,zh=中文,yue=粤语,en=英语,ja=日语,ko=韩语,es=西班牙语,fr=法语,de=德语,ru=俄语,pt=葡萄牙语,ar=阿拉伯语,hi=印地语,id=印尼语。不传时按文本文字系统自动检测(粤语及西 / 法 / 德 / 葡 / 印尼语无法自动区分,请显式传入)。 可选值: mwxle_mwzhyueenjakoesfrderuptarhiid |
└ voice可选 | string | 本段发音人 id(各语种完整清单见文档「语音合成发音人清单」):传统蒙古文 female / male;西里尔蒙古文 saikhan(默认)/ oyunaa / tsagaan / tuya / bold / temujin / sukhbaatar / gantulga 等;其他语种如 zh-CN-XiaoxiaoNeural、en-US-JennyNeural。不传时用该语种的默认音色;传了则必须属于该语种,否则返回 invalid_request。 示例: bold |
└ speed可选 | number | 本段语速 0.5~2(默认沿用顶层 speed) 示例: 1 |
└ pause可选 | number | 停顿时长(毫秒,1~10000;与 text 互斥,停顿不计费) 示例: 500 |
lang可选 | string | 语种代码:mw=传统蒙古文,xle_mw=西里尔蒙古文,zh=中文,yue=粤语,en=英语,ja=日语,ko=韩语,es=西班牙语,fr=法语,de=德语,ru=俄语,pt=葡萄牙语,ar=阿拉伯语,hi=印地语,id=印尼语。不传时按文本文字系统自动检测(粤语及西 / 法 / 德 / 葡 / 印尼语无法自动区分,请显式传入)。 可选值: mwxle_mwzhyueenjakoesfrderuptarhiid示例: xle_mw |
voice可选 | string | 发音人 id(各语种完整清单见文档「语音合成发音人清单」):传统蒙古文 female / male;西里尔蒙古文 saikhan(默认)/ oyunaa / tsagaan / tuya / bold / temujin / sukhbaatar / gantulga 等;其他语种如 zh-CN-XiaoxiaoNeural、en-US-JennyNeural。不传时用该语种的默认音色;传了则必须属于该语种,否则返回 invalid_request。 示例: saikhan |
speed可选 | number | 语速 0.5~2(默认 1;传统蒙古文发音人不支持语速,忽略该参数) 默认值: 1示例: 1 |
format可选 | string | 输出音频格式(默认 mp3;服务端按需转码,wav 为 PCM 16bit 单声道) 可选值: mp3wav默认值: mp3示例: mp3 |
encoding可选 | string | 输入文本编码提示:standard=标准 Unicode(默认),menksoft=蒙科立编码(服务端统一归一化为国标后合成,蒙科立文本能被正确路由) 可选值: standardmenksoft默认值: standard示例: standard |
响应示例200 · application/json
{
"audio": "SUQzBAAAAAAA...",
"contentType": "audio/mpeg",
"durationMs": 2350,
"lang": "xle_mw",
"voice": "saikhan",
"segments": 1,
"billedChars": 13
}代码示例
curl -X POST "https://cloud.heimori.cn/v1/tts" \
-H "Authorization: Bearer sk-heimori-..." \
-H "Content-Type: application/json" \
-d '{
"text": "Сайн байна уу",
"segments": [
{
"text": "Сайн байна уу",
"voice": "saikhan"
},
{
"pause": 400
},
{
"text": "你好,欢迎使用讯蒙智能云。",
"lang": "zh",
"voice": "zh-CN-YunxiNeural"
}
],
"lang": "xle_mw",
"voice": "saikhan",
"speed": 1,
"format": "mp3",
"encoding": "standard"
}' \
--output output.mp3