产品文档

语音合成

更新于 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 个接口,以下内容随接口定义自动生成。 需要跨产品查找接口时可前往接口索引

语音合成(单发音人 / 多说话人多语种混合)

POST/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

200 响应
{
  "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