语音合成 SSML 标记语言

SSML 是一种基于 XML 的语音合成标记语言。使用 SSML 可以更加准确、具体的定义合成音频的效果。

相关产品
语音合成 产品页,含版本规格、价格与购买入口。

注意:目前只有中文、英文合成支持 SSML 功能。

一、使用方式

将带标签的文本作为 text 参数值,上传至语音合成服务,发送给语音合成服务的请求内容如下:

{ "Action" : "TextToVoice", "AppId" : 12345, "Codec" : "mp3", "Expired" : 1603271036, "ModelType" : 1, "PrimaryLanguage" : 1, "ProjectId" : 0, "SampleRate" : 8000, "SecretId" : "AKID****", "SessionId" : "1234", "Speed" : 0, "Text" : "<speak>电话号码是<say-as interpret-as=\\"telephone\\">4008110510</say-as>。</speak>", "Timestamp" : 1603184636, "VoiceType" : 1002, "Volume" : 5}

语音合成支持的 SSML 标签。其中 <speak> 标签中的未定义标签不合成,且 XML 格式错误可能会导致<speak> 标签的合成停止。

语音合成的 SSML 功能支持多个 <speak> 标签闭合嵌套于文本之中。例如:

<speak>她叫<say-as interpret-as="name">任盈盈</say-as>。她的电话号码是<say-as interpret-as="telephone">+86-15188888888</say-as>。她今年<say-as interpret-as="cardinal">22</say-as>岁了。她有一个快递,单号是<say-as interpret-as="digits">5648234514237588</say-as>。她的地址是<say-as interpret-as="address">深南大道10000号3单元304</say-as>。</speak>再补充一下,<speak>她的用户名是<say-as interpret-as="characters">b888_uαβγ</say-as>。</speak>

四、描述

<speak>标签是所有待支持 SSML 标签的根节点。一切需要调用 SSML 标签的文本都要包含在“<speak></speak>”中。speak 标签不支持属性。

五、语法

<speak>需要调用SSML标签的文本</speak>

六、标签关系

<speak> 标签可以包含文本和以下标签:<phoneme>、<say-as>、<sub>。

七、示例

<speak>需要调用SSML标签的文本。</speak>

音频效果:SSML-speak1.wav

九、描述

使用别名替换标签内文本。

十、语法

<sub alias="别名">文本</sub>

十一、属性

属性名称 属性类型 属性值 是否必选 描述
alias String 替换后的内容 是 用于替换标签内的文本。

十二、标签关系

标签仅包括文本。

十三、示例

<speak><sub alias="语音合成">TTS</sub></speak>

音频效果:SSML-sub.wav

十五、描述

用于在文本中插入停顿,该标签是可选标签。使用<break>标签时,<speak>标签中除<break>标签外,必须包含有效文本。

十六、语法

<break time="string"/>

十七、属性

属性名称 属性类型 属性值 是否必选 描述
time String [number]s/[number]ms 是 以秒或毫秒为单位设置停顿的时长 (如“2s”、“50ms”)。[number]s:以秒为单位,[number]取值范围为[1, 10]的整数。[number]ms:以毫秒为单位,[number]取值范围为[50, 10000]的整数。

十八、标签关系

<break>是空标签,不能包含任何标签。

十九、示例

<speak>请闭上眼睛休息一下<break time="500ms"/>好了,请睁开眼睛。</speak>

21、描述

用于控制标签内文本的读音,该标签是可选标签。

22、语法

<phoneme alphabet="py" ph="拼音串">文本</phoneme>

属性名称 属性类型 属性值 是否必选 描述
alphabet String py 是 “py”表示拼音。
ph String 标签内文本对应的拼音串 是 拼音用法的赋值规范:- 字与字的拼音用空格分隔,拼音的数目必须与字数相等。- 每个拼音由发音和音调组成,音调为1~5的数字编号,其中“5”表示轻声。

23、标签关系

<phoneme>标签仅包括文本。

24、示例

<speak>现状是各地的经济水平是<phoneme alphabet="py" ph="cen1 ci1 bu4 qi2">参差不齐</phoneme>的。需要缩小较弱地域和较强地域的<phoneme alphabet="py" ph="cha1 ju4">差距</phoneme>。要做好这个<phoneme alphabet="py" ph="chai1 shi4">差事</phoneme>可不容易啊。</speak>

音频效果:SSML-phoneme.wav

26、描述

用于指示出标签内文本的信息类型,进而按照该类型的默认发音方式发音。

27、语法

<say-as interpret-as="string">文本</say-as>

属性名称 属性类型 属性值 是否必选 描述
interpret-as String cardinal/digits/telephone/name/address/id/characters/punctuation/date/time/currency/measure 是 指示出标签内文本的信息类型:• cardinal:按整数或小数发音。• digits:按数字发音。• telephone:按电话号码常用方式发音。• name:按人名发音。• address:按地址发音。• id:适用于账户名、昵称等。• characters:将标签内的文本按字符一一读出。• punctuation:将标签内的文本按标点符号的方式读出来。• date:按日期发音。• time:按时间发音。• currency:按金额发音。• measure:按计量单位发音。

28、各<say-as>类型支持范围

·cardinal

格式 示例 输出 说明
数字串 1487 一千四百八十七 整数输入范围:[-18446744073709551615,18446744073709551615]。小数输入范围:对小数点后小数的位数没有特殊限制,建议不超过10位。
 负号+数字串 -1487 负一千四百八十七
 以逗号分隔3位数字串 10,500 一万零五百
 负号+以逗号分隔3位数字串 -10,500 负一万零五百
 数字串+小数点+2个零 9.00 九
 负号+数字串+小数点+2个零 -110.00 负一百一十
 数字串+小数点+数字串 88.090 八十八点零九
 负号+数字串+小数点+数字串 -88.001 负八十八点零零一

·digits

格式 示例 输出 说明
数字串 356210985 三五六二一零九八五 对数字串的长度没有特殊限制。建议不超过20位,且当数字串超过10位时,每个数字后插入停顿。

·telephone

格式 示例 输出 说明
座机号 5605560 五六零 五五六零 支持7~8位座机号,支持空格和’-‘作为分隔符。其中:7位座机号支持“3-4”的数字分隔方式。8位座机号支持“4-4”的数字分隔方式。
  560 5560 五六零 五五六零
  560-5560 五六零 五五六零
  55605560 五五六零 五五六零
  5560 5560 五五六零 五五六零
  5560-5560 五五六零 五五六零
座机号+分机号 55605560-105 五五六零 五五六零 转幺零五 支持1~4位分机号。
  55605560转105 五五六零 五五六零 转幺零五
  55605560分机105 五五六零 五五六零 转幺零五
  55605560分机号105 五五六零 五五六零 分机号幺零五
区号+座机号 01055605560 零幺零 五五六零 五五六零 支持区号:010、02x、03xx、04xx、05xx、07xx、08xx、09xx。
  010 55605560 零幺零 五五六零 五五六零
  010-5560-5560 零幺零 五五六零 五五六零
  (010)55605560 零幺零 五五六零 五五六零
  031955605560 零三幺九 五五六零 五五六零
  0319-55605560 零三幺九 五五六零 五五六零
区号+座机号+分机号 010 33878528-1054 零幺零 三三八七 八五二八 转幺零五四 无
  010-33878528-1054 零幺零 三三八七 八五二八 转幺零五四
  (010)33878528-1054 零幺零 三三八七 八五二八 转幺零五四
  (010)33878528转1054 零幺零 三三八七 八五二八 转幺零五四
  (010)33878528分机1054 零幺零 三三八七 八五二八 分机幺零五四
  (010)33878528分机号1054 零幺零 三三八七 八五二八 分机号幺零五四
国家代码+区号+座机号 86-010-33878528 八六 零幺零 三三八七 支持国家代码:86、(86)、+86、(+86)、0086。并统一读为“八六”。
  (86)10-33878528 八六 幺零 三三八七 八五二八
  +86-010-33878528 八六 零幺零 三三八七 八五二八
  0086-10-33878528 八六 幺零 三三八七 八五二八
  (+86)-10-3387 8528 八六 幺零 三三八七 八五二八
国家代码+区号+座机号+分机号 (86)21-33878528-1054 八六 二幺 三三八七 八五二八 转幺零五四 无
  (86)021-3387-8528-1054 八六 零二幺 三三八七 八五二八 转幺零五四
  (86)021-33878528转1054 八六 零二幺 三三八七 八五二八 转幺零五四
  (86)21-3387-8528分机号1054 八六 二幺 三三八七 八五二八 分机号幺零五四
  +86-021-3387-8528分机1054 八六 零二幺 三三八七 八五二八 分机幺零五四
手机号 151 8828 1075 幺五幺八八二八 幺零七五 支持11位手机号,支持3-3-5、3-4-4两种数字分隔方式
  151-882-81075 幺五幺 八八二 八幺零七五
  151-8828-1075 幺五幺八八二八 幺零七五
国家代码+手机号 +86-15188281075 八六 幺五幺 八八二八 幺零七五 无
  (+86)-151-8828-1075 八六 幺五幺 八八二八 幺零七五
  +8615188281075 八六 幺五幺 八八二八 幺零七五
  0086-151 882 81075 八六 幺五幺 八八二 八幺零七五
服务号 110 幺幺零 支持常用的服务号如110。支持以400/800开头的10位服务号,支持以“3-3-4”的数字分隔方式。支持以12530/17951/12593开头的16位号码。
  95566 九五五六六
  4008110280 四零零 八幺幺 零二八零
  800-810-8888 八零零 八幺零 八八八八
  1253013520638377 幺二五三零 幺三五 二零六三 八三七七
其他 (86)(21)8832-80976-0907 八六 二幺 八八三二 八零九七六 零九零七 支持“数字串+分隔符(左右括号、-)”方式。

·address

格式 示例 输出 说明
常用地址格式 深南大道1000号103-3 深南大道 幺零零零号幺零三杠三 支持常用地址格式。此处地址指标准的邮寄地址。
  高新中四道377弄1137-1128号 高新中四道三七七弄幺幺三七杠幺幺二八号
  华润城六期3-1-3805 华润城六期三杠一杠三八零五
  大族云峰大厦2幢2106室 大族云峰大厦二幢二幺零六室
  高新中三道151弄19号 高新中三道幺五幺弄十九号

·id

格式 示例 输出 说明
字符串 dell3301 D E L L 三 三 零 一 大小写英文字符、阿拉伯数字0~9、下划线。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。
  tencent_1998 T E N C E N T 下划线 一 九 九 八
  AiDemo A I D E M O

·characters

格式 示例 输出 说明
字符串 ISO 1-001-095498-1 I S O 一 杠 零 零 一 杠 零 五 四 零 九 八 杠 一 支持中文汉字、大小写英文字符、阿拉伯数字0~9以及部分全角和半角字符。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:&lt;&gt;&amp;&quot;&apos;分别对应<、>、& 、"、'。
  x10u2385_u x 一 零 u 二 三 八 五 下划线 u
  v1.1.1 v 一 点 一 点 一
  版本号2.0 版本号二 点 零
  粤B BA000 粤B B A 零 零 零
  空中客车A330 空中客车A 三 三 零
  型号B01 B02和B03 型号B 零 一 B 零二 和B 零 三
  αβγ 阿尔法 贝塔 伽玛

·punctuation

格式 示例 输出 说明
标点符号 … 省略号 支持常见中英文标点。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:&lt;&gt;&amp;&quot;&apos;分别对应<、>、& 、"、'。
  …… 省略号
  !"#$%& 叹号 双引号 井号 dollar 百分号 and
  ‘()*+ 单引号 左括号 右括号 星号 加号
  ,-./:; 逗号 杠 点 斜杠 冒号 分号
  <=>?@ 小于 等号 大于 问号 at
  [\\]^_ 左方括号 反斜线 右方括号 脱字符 下划线

·date

格式 示例 输出 说明
xx年 71年 七一年 支持2位和4位年份。其中:2位年份支持60年~99年、00年~09年、10年~19年。4位年份支持1000年~1999年、2000年~2099年。
  08年 零八年
  20年 二零年
  2020年 二零二零年
  1998年 一九九八年
  2008年 二零零八年
xx年xx月 08年5月 零八年五月 当月份为1到9月时,支持开头带“0”和不带“0”两种写法。例如“1908年4月”和“1908年04月”。
  2020年04月 二零二零年四月
  08年8月 零八年八月
  2020年8月 二零二零年八月
xx年xx月xx日xx年xx月xx号 98年4月23日 九八年四月二十三日 当日期为1到9日时,支持开头带“0”和不带“0”两种写法。例如“1908年4月8日”和“1908年04月08日”。
  2020年08月23日 二零二零年八月二十三日
  20年8月8号 二零年八月八号
  2020年08月08号 二零二零年八月八号
xx月xx号 8月20日 八月二十日 无
  08月08号 八月八号
年月缩写 2020/08 二零二零年八月 支持“/”、“-”、“.”作为缩写的分隔符。
  2020-08 二零二零年八月
  2020.08 二零二零年八月
 年月日缩写 2020/08/09 二零二零年八月九日
  2020-8-9 二零一八年八月八日
  2020.08.09 二零一八年八月九日
xx年xx月xx日~xx年xx月xx日xx年xx月xx号~xx年xx月xx号 20年8月9日~30日 二零年八月九日至三十日 支持“~”、“-”作为“至”的缩写标志。
  2020年08月09号-2020年09月09号 二零二零年八月九号至二零二零年九月九号
 xx年xx月~xx年xx月 20年04月~21年04月 二零年四月至二一年四月
  2020年04月~2021年04月 二零二零年四月至二零二一年四月
 xx月xx日~xx月xx日xx月xx号~xx月xx号 10月1日~10月7日 十月一日至十月七日
  10月01号~10月07号 十月一号至十月七号
 xx月xx日~xx日xx月xx号~xx号 10月1日~7日 十月一日至七日
  10月01号~07号 十月一号至七号
年月日缩写~年月日缩写 2020/03/03~2021/03/03 二零二零年三月三日至二零二一年三月三日 支持“/”、“.”作为缩写的分隔符,支持“~”“-”作为“至”的缩写标志。
  2020.9.9~2021.9.9 二零二零年九月九日至二零二一年九月九日
 月日缩写~月日缩写 10/20~10/31 十月二十日至十月三十一日
 xx~xx月xx月~xx月 1~10月 一至十月
  1月~10月 一月至十月
月日年缩写 10/25/2020 二零二零年十月二十五日 仅支持4位的年份,仅支持“/”作为日期的分隔符,仅支持“月/日/年”的书写方式。

·time

格式 示例 输出 说明
时刻 12:00 十二点 支持常用时间和时间范围格式。
  12:00:00点 十二点
  10:25分 十点二十五分
  10:25:30 十点二十五分三十秒
  09:25:14 九点二十五分十四秒
 时刻~时刻 11:00~12:00 十一点到十二点
  09:00-14:00 九点到十四点
  11:00~11:30 十一点到十一点三十分
  11:00-15:18 十一点到十五点十八分
  10:30~11:00 十点三十分到十一点
  09:28-10:00 九点二十八分到十点
  10:20~11:20 十点二十分到十一点二十分
  06:00~08:00 六点到八点
  上午10:20~下午13:30 上午十点二十分到下午十三点三十分
时间缩写 5:00am 凌晨五点 当缩写为 am 时,小时在[0,5]范围内读作凌晨;当单位为 am 时,小时在[6,11]范围内读作上午。当缩写为 pm 时,小时为12时读作中午;当单位为 pm 时,小时在[1,5]范围内读作下午;小时在[6,11]范围内读作晚上。
  5:30am 凌晨五点三十分
  5:20:12am 凌晨五点二十分十二秒
  7:00am 上午七点
  7:30AM 上午七点半
  7:20:25a.m. 上午七点二十分二十五秒
  07:08:12A.M. 上午七点零八分十二秒
  5:00pm 下午五点
  5:30PM 下午五点三十分
  5:20:12p.m. 下午五点二十分十二秒
  05:09:12P.M 下午五点零九分十二秒
  9:00pm 晚上九点
  9:30pm 晚上九点三十分
  9:20:12PM 晚上九点二十分十二秒
  9:02:12P.M. 晚上九点零二分十二秒
  12:00pm 中午十二点
  12:30p.m. 中午十二点三十分
  12:20:12PM 中午十二点二十分十二秒

·currency

格式 示例 输出 说明
数字+金额标识符 12.00RMB 十二人民币 支持 AUD(澳元) 、CAD(加元)、 HKD(港币)、JPY(日元)、USD(美元)、CHF(瑞士法郎)、NOK(挪威克朗)、SEK(瑞典克朗)、GBP(英镑)、 RMB(人民币)、CNY(元)和 EUR(欧元)。支持的数字格式包括:整数、小数以及以逗号分隔的国际写法。
  12.50RMB 十二点五人民币
  15,000,000RMB 一千五百万人民币
  15,000,000.00RMB 一千五百万人民币
  12,000.35RMB 一万两千点三五人民币
金额标识符+数字 $12 十二美元 支持 CAD(加元)、$(美元)、$(美元)、Fr(法郎)、kr(丹麦克朗)、£(英镑)、¥(元)¥(元)和 €(欧元)。支持的数字格式包括:整数、小数以及以逗号分隔的国际写法。
  $12.00 十二美元
  $12.12 十二点一二美元
  $12,000 一万两千美元
  $12,000.00 一万两千美元
  $12,000.99 一万两千点九九美元
其他默认读法 1213 一千二百一十三 无
  1213KML 一千二百一十三K M L
  1213.00KML 一千二百一十三K M L
  1213.9KML 一千二百一十三点九K M L
  1,000KML 一千K M L
  1,000.00KML 一千K M L
  1,000.98KML 一千点九八K M L
  12,000 一万两千

·measure

格式 示例 输出 说明
数字+中文单位 2片 两片 支持常见中文单位及单位缩写
  120公顷 一百二十公顷
  100多毫克 一百多毫克
  100来米 一百来米
  100余人 一百余人
  1厘米20毫米 一厘米二十毫米
  120.00平方公里 一百二十平方公里
 数字+单位缩写 120.56cm² 一百二十点五六平方厘米
  120㎡56cm² 一百二十平方米五十六平方厘米
  100m12cm6mm 一百米十二厘米六毫米
 范围 10~15kg 十至十五千克
  10.24~789.82亩 十点二四至七百八十九点八二亩
  10米~15米 十米至十五米
  10.24cm~19.08cm 十点二四厘米至十九点零八厘米
 数字+单位+"/"+单位 10元/斤 十元每斤
  199~299元/件 一百九十九至二百九十九元每件
  299.99元/g~399.99元/g 二百九十九点九九元每克至三百九十九点九九元每克
 其他默认读法 12扎 十二扎
  30rm 三十r m
  4万万同胞 四万万同胞
  12.897微克 十二点八九七微克

29、<say-as> 常见符号读法

符号 读法
! 叹号
“ 双引号
# 井号
$ dollar
% 百分号
& and
‘ 单引号
( 左括号
) 右括号
* 星
+ 加
, 逗号
– 杠
. 点
/ 斜杠
: 冒号
; 分号
< 小于
= 等号
> 大于
? 问号
@ at
[ 左方括号
\\ 反斜线
] 右方括号
^ 脱字符
_ 下划线
` 反引号
{ 左花括号
} 右花括号
~ 波浪线
! 叹号
“ 左双引号
” 右双引号
‘ 左单引号
’ 右单引号
( 左括号
) 右括号
, 逗号
。 句号
— 杠
: 冒号
; 分号
? 问号
、 顿号
… 省略号
…… 省略号
《 左书名号
》 右书名号
¥ 人民币符号
≥ 大于等于
≤ 小于等于
≠ 不等于
≈ 约等于
± 加减
× 乘
π 派
Α 阿尔法
Β 贝塔
Γ 伽玛
Δ 德尔塔
Ε 艾普西龙
Ζ 捷塔
Ε 依塔
Θ 西塔
Ι 艾欧塔
Κ 喀帕
∧ 拉姆达
Μ 缪
Ν 拗
Ξ 克西
Ο 欧麦克轮
∏ 派
Ρ 柔
∑ 西格玛
Τ 套
Υ 宇普西龙
Φ fai
Χ 器
Ψ 普赛
Ω 欧米伽
α 阿尔法
β 贝塔
γ 伽玛
δ 德尔塔
ε 艾普西龙
ζ 捷塔
η 依塔
θ 西塔
ι 艾欧塔
κ 喀帕
λ 拉姆达
μ 缪
ν 拗
ξ 克西
ο 欧麦克轮
π 派
ρ 柔
σ 西格玛
τ 套
υ 宇普西龙
φ fai
χ 器
ψ 普赛
ω 欧米伽

30、<say-as> 常见计量单位

格式 类别 示例
缩写 长度 nm(纳米)、μm(微米)、mm(毫米)、cm(厘米)、m(米)、km(千米)、ft(英尺)、in(英寸)
 面积 cm²(平方厘米)、㎡(平方米)、km²(平方千米)、SqFt(平方英尺)
 体积 cm³(立方厘米)、m³(立方米)、km³(立方千米)、mL(毫升)、L(升)、gallon(加仑)
 重量 μg(微克)、mg(毫克)、g(克)、kg(千克)
 时间 min(分)、sec(秒)、ms(毫秒)
 电磁 μA(微安)、mA(毫安)、Ω(欧姆)、Hz(赫兹)、KHz(千赫兹)、MHz(兆赫兹)、GHz(吉赫兹)、V(伏)、kV(千伏)、kWh(千瓦时)
 声音 dB(分贝)
 气压 Pa(帕)、kPa(千帕)、Mpa(兆帕)
 中文单位 支持不限于上述类别的中文单位,例如“米”、“秒”、“美元”、“毫升每瓶”等。以及中文量词,例如“架”、“场”、“头”、“部”、“盆”等。

31、标签关系

<say-as>标签仅包括文本。

32、示例

·cardinal

<speak> <say-as interpret-as="cardinal">12345</say-as></speak>

音频效果:say-as-cardinal.wav

·digits

<speak><say-as interpret-as="digits">12345</say-as></speak>

音频效果:say-as-digits.wav

·telephone

<speak><say-as interpret-as="telephone">12345</say-as></speak>

音频效果:say-as-telephone.wav

·name

<speak>她的曾用名是<say-as interpret-as="name">曾小凡</say-as></speak>

音频效果:say-as-name.wav

·address

<speak><say-as interpret-as="address">深南大道10000号1号楼3单元304</say-as></speak>

音频效果:say-as-address.wav

·id

<speak>我的用户名是<say-as interpret-as="id">tencent_8858</say-as></speak>

音频效果:say-as-id.wav

·characters

<speak>希腊字母<say-as interpret-as="characters">αβ</say-as></speak>

音频效果:say-as-characters.wav

·punctuation

<speak>我最常用的标点是<say-as interpret-as="punctuation">,</say-as></speak>

音频效果:say-as-punctuation.wav

·date

<speak><say-as interpret-as="date">2020-10-10</say-as></speak>

音频效果:say-as-date.wav

·time

<speak><say-as interpret-as="time">5:30am</say-as></speak>

音频效果:SSML-say-as_time.mp3

·currency

<speak><say-as interpret-as="currency">15,000.00RMB</say-as></speak>

音频效果:say-as-currency.wav

·measure

<speak><say-as interpret-as="measure">100m²15cm²</say-as></speak>

音频效果:say-as-measure.wav

34、描述

用于表示文本的词语结构,该标签是可选标签。英文文本通常采用空格来进行分词,一般无需使用此标签。<word> 标签内部必须是一个独立的词或短语,这个词或短语只能包含纯中文或纯英文,不能中英混合。

35、语法

<word>文本</word>

36、标签关系

<word>标签仅包括文本。

37、示例

<speak>广州市长<word>隆马戏</word>欢迎你。</speak>

音频效果:SSML-word.wav

赞 (0)
上一篇 4天前
下一篇 4天前