本文档由 云音工坊 自动生成,如有疑问,请联系客服微信:yuntts !
| 项目 | 值 |
|---|---|
| 接口路径 | /microsoft-tts |
| 请求方法 | POST |
| 请求格式 | application/json |
| 认证方式 | 用户令牌(Bearer Token) |
text 参数,其他参数可选。| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
text | string | ✅ | - | 要合成的文本内容(1-5000 字符) |
voice | string | ❌ | zh-CN-XiaoxiaoNeural | 音色名称 |
language | string | ❌ | zh-CN | 语言代码 |
rate | string | ❌ | 0 | 语速(相对百分比数值,如 10 表示 +10%,-10 表示 -10%,0 表示正常) |
volume | string | ❌ | 100 | 音量(绝对值 0-100,0 为静音,100 为正常音量) |
pitch | string | ❌ | 0 | 音调(相对百分比数值,如 2 表示 +2%,-2 表示 -2%) |
style | string | ❌ | general | 说话风格(如 friendly、excited、sad、angry) |
role | string | ❌ | general | 角色风格(仅当 style 不为 general 时生效) |
styledegree | string | ❌ | 1 | 风格强度,范围 0.01-2.0(默认 1 表示预定义强度) |
kbitrate | string | ❌ | audio-48khz-96kbitrate-mono-mp3 | 音频编码和质量 |
stream | boolean | ❌ | true | 是否启用流式输出 |
{
"text": "您好,这是一个 Microsoft TTS 语音合成示例。",
"voice": "zh-CN-XiaoxiaoNeural",
"language": "zh-CN",
"rate": "0",
"volume": "100",
"pitch": "0",
"style": "friendly",
"stream": true
}ssml 参数。| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ssml | string | ✅ | - | SSML 格式的文本内容,必须包含完整的 speak 标签,且必须包含命名空间 xmlns="http://www.w3.org/2001/10/synthesis" |
kbitrate | string | ❌ | audio-48khz-96kbitrate-mono-mp3 | 音频编码和质量 |
stream | boolean | ❌ | true | 是否启用流式输出 |
{
"ssml": "<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" xmlns:mstts=\"https://www.w3.org/2001/mstts\" xml:lang=\"zh-CN\"><voice name=\"zh-CN-XiaoxiaoNeural\"><mstts:express-as style=\"friendly\"><prosody rate=\"0%\" volume=\"100\" pitch=\"0%\">您好,这是使用 SSML 格式的语音合成示例。</prosody></mstts:express-as></voice></speak>",
"stream": true
}| 音色名称 | 语言 | 性别 |
|---|---|---|
zh-CN-XiaoxiaoNeural | 中文(简体) | 女 |
zh-CN-YunxiNeural | 中文(简体) | 男 |
zh-CN-XiaoyiNeural | 中文(简体) | 女 |
zh-CN-YunyangNeural | 中文(简体) | 男 |
en-US-JennyNeural | 英语(美国) | 女 |
en-US-GuyNeural | 英语(美国) | 男 |
ja-JP-NanamiNeural | 日语 | 女 |
general、friendly、excited、sad、angry、calm、cheerful、fearful、whispering、newscast、customerservice、assistant 等。| 角色值 | 说明 |
|---|---|
Girl | 模仿女孩 |
Boy | 模仿男孩 |
YoungAdultFemale | 模仿年轻成年女性 |
YoungAdultMale | 模仿年轻成年男性 |
OlderAdultFemale | 模仿年长成年女性 |
OlderAdultMale | 模仿年长成年男性 |
SeniorFemale | 模仿年长女性 |
SeniorMale | 模仿年长男性 |
| 值 | 说明 |
|---|---|
audio-48khz-96kbitrate-mono-mp3 | 48kHz 96kbps 单声道 MP3(默认) |
audio-24khz-48kbitrate-mono-mp3 | 24kHz 48kbps 单声道 MP3 |
audio-16khz-32kbitrate-mono-mp3 | 16kHz 32kbps 单声道 MP3 |
audio-16khz-16kbitrate-mono-mp3 | 16kHz 16kbps 单声道 MP3 |
| 值 | 模式 | 说明 |
|---|---|---|
true | 流式模式 | 边接收边输出音频,首字延迟低,适合长音频。使用 Transfer-Encoding: chunked |
false | 缓冲模式 | 等待完整响应后输出,适合短音频或需要完整数据后处理的场景 |
audio/mpegContent-Type: audio/mpeg
X-Characters: {字符数}
X-Cost: {扣费点数}
Access-Control-Expose-Headers: X-Characters, X-Costapplication/json{
"code": 400,
"error": "error_code",
"msg": "错误描述"
}| 错误码 | HTTP 状态码 | 说明 |
|---|---|---|
method_not_allowed | 405 | 非 POST 请求 |
unauthorized | 401 | 用户认证失败 |
empty_text | 400 | text 和 ssml 均为空 |
invalid_ssml | 400 | SSML 格式不正确或缺少命名空间 |
missing_config | 500 | Microsoft TTS 账户未配置 |
insufficient_balance | 403 | 余额不足 |
api_error | 400/500 | API 返回错误 |
parse_error | 500 | 响应解析失败 |
<speak> 和 <voice> 标签后计算内容字符数text 字符数扣费点数 = 字符数 × 单价| 模式 | 计费时机 |
|---|---|
| 流式模式(stream=true) | 第一个音频字节到达时扣费 |
| 缓冲模式(stream=false) | 完整响应接收后扣费 |
<speak version="1.0"
xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:mstts="https://www.w3.org/2001/mstts"
xml:lang="{language}">| 参数 | 转换规则 |
|---|---|
rate | 数值转换为相对百分比(正数加 + 前缀,如 +10%;负数保留 -,如 -10%;0 跳过) |
pitch | 同 rate |
volume | 100 跳过;其他值原样输出(支持绝对值 0-100、百分比、常量) |
style | general 跳过 express-as 标签;其他值生成 <mstts:express-as style="{style}"> |
role | general/null 跳过;其他值作为 express-as 的 role 属性 |
styledegree | 1 跳过;其他值钳制到 0.01-2.0 范围后作为 styledegree 属性 |
&、<、>、"、' 等 XML 特殊字符正确处理。<speak version="1.0"
xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:mstts="https://www.w3.org/2001/mstts"
xml:lang="zh-CN">
<voice name="zh-CN-XiaoxiaoNeural">
<mstts:express-as style="friendly" role="YoungAdultFemale" styledegree="1.5">
<prosody rate="+10%" volume="90" pitch="+2%">
您好,这是一个示例。
</prosody>
</mstts:express-as>
</voice>
</speak>