本文为您介绍SSML(Speech Synthesis Markup Language)标记语言的功能、使用方式及示例。
概述
SSML是一种基于XML的语音合成标记语言。 与纯文本的合成相比,使用SSML可以充实合成的内容,为最终合成效果带来更多变化。SSML不仅让人控制语音合成能读什么,更能控制语音合成可以怎么读,包括控制断句分词方式、发音、速度、停顿、声调和音量等特征,甚至加入背景音乐。
阿里巴巴语音合成服务的SSML实现基于W3C的语音合成标记语言版本1.0。但并不支持W3C包含的所有的标记类型,而是从业务角度出发,将支持的标记类型最大程度与业务需求绑定。
使用方式
语音合成服务支持的SSML标签请参见标签。
目前只有中文合成支持SSML功能。
长文本语音合成的ssml功能支持多个<speak>标签闭合嵌套于文本之中,如:
你好吗?<speak> <say-as interpret-as="telephone">114</say-as>查询号码 <say-as interpret-as="cardinal">123</say-as>开始干。 加起来为<say-as interpret-as="digits">1234</say-as>。 <say-as interpret-as="name">薄斌</say-as>的快递。 <say-as interpret-as="address">富路国际1号楼3单元304</say-as> <say-as interpret-as="nick">王永花6689</say-as> </speak>我很好。<speak> 车牌是<say-as interpret-as="verbatim">浙AX88888</say-as> </speak>哈哈哈
将带标签的文本作为text参数值,上传至语音合成服务,以Java SDK为例:
SpeechSynthesizer synthesizer = new SpeechSynthesizer(client, getSynthesizerListener());
String text = "<speak>请闭上眼睛休息一下<break time=\"500ms\"/>好了,请睁开眼睛。</speak>";
synthesizer.setText(text);
发送给语音合成服务的请求内容如下:
{
"payload": {
"volume": 50,
"sample_rate": 16000,
"format": "wav",
"text": "<speak>请闭上眼睛休息一下<break time=\"500ms\"/>好了,请睁开眼睛。</speak>"
},
"context": {
"sdk": {
"name": "nls-sdk-java",
"version": "2.0.4"
}
},
"header": {
"namespace": "SpeechSynthesizer",
"name": "StartSynthesis",
"message_id": "5fdf78c0dd574b6897f3cb204dd0****",
"appkey": "f6OslY8nCPOa****",
"task_id": "6e1be78ef5804c50a2c5a8b92de1****"
}
}
标签
<speak>
描述
<speak>标签是所有待支持SSML标签的根节点。一切需要调用SSML标签的文本都要包含在<speak></speak>中。
语法
<speak>需要调用SSML标签的文本</speak>
属性
<speak>标签支持如下属性。
属性名称
属性类型
属性值
是否必选
描述
voice
String
线上可调用的发音人的名称代号,为全小写的voice参数值,如”siyue”。
否
阿里巴巴语音合成特有标签。在合成时,指定发音人,优先级高于接口请求参数
voice
指定的发音人。encodeType
String
PCM/WAV/MP3
否
阿里巴巴语音合成特有标签。在合成时,指定音频文件格式,优先级高于接口请求参数
format
指定的文件格式。sampleRate
String
8000/16000
否
阿里巴巴语音合成特有标签。在合成时,指定音频的采样率,优先级高于接口请求参数
sample_rate
指定的音频采样率。rate
String
[-500,500]之间整数。默认值为0。
大于0表示加快语速。
小于0表示减慢语速。
否
阿里巴巴语音合成特有标签。在合成时,指定音频的语速,优先级高于接口请求参数
speech_rate
指定的语速。[-500, 0, 500] 对应的语速倍速区间为 [0.5, 1.0, 2.0]。
-500表示默认语速的0.5倍速。
0表示默认语速的1倍速。
500表示默认语速的2倍速。
计算方法如下:
0.8倍速(1-1/0.8)/0.002 = -125
1.2倍速(1-1/1.2)/0.001 = 166
说明小于1倍速时,使用0.002系数。
大于1倍速时,使用0.001系数。
实际算法结果取近似值。
pitch
String
[-500,500]之间整数。默认值为0。
大于0表示升高音高。
小于0表示降低音高。
否
阿里巴巴语音合成特有标签。在合成时,指定音频的音高,优先级高于接口请求参数
pitch_rate
指定的音高。volume
String
[0,100]之间整数。默认值为50。
大于50表示增大音量。
小于50表示减小音量。
否
阿里巴巴语音合成特有标签。在合成时,指定音频的音量,优先级高于接口请求参数
volume
指定的音量。effect
String
robot/lolita/lowpass/echo/eq/lpfilter/hpfilter
否
阿里巴巴语音合成特有标签。使用该标签可以使合成的语音产生不同的声音效果。
robot:机器人音效。
lolita:萝莉音效。
lowpass:低通音效。
echo:回声音效。
eq:均衡器。
lpfilter:低通滤波器。
hpfilter:高通滤波器。
说明其中eq、lpfilter、hpfilter是高级效果器,您可以通过
effectValue
自定义效果器的效果。一个SSML只支持一种音效,不可以写多个effect属性。
选择使用音效功能会增加系统延时。
effectValue
String
当effect取值为eq/lpfilter/hpfilter时,使用该参数修改效果器的默认效果。
否
eq(均衡器):系统默认使用8个等级。对应的频率为[“40Hz”,“100Hz”, “200Hz”, “400Hz”, “800Hz”, “1600Hz”, “4000Hz”, “12000Hz”];对应的带宽为[“1.0q”, “1.0q”, “1.0q”, “1.0q”, “1.0q”, “1.0q”, “1.0q”, “1.0q”]。在使用过程中,需要输入8个等级对应的增益,其取值范围为[-20dB, 20dB]。例如,effectValue=”1 1 1 1 1 1 1 1”。是一个以空格分割的8个整数组成的字符串。数值为0表示不调整对应频率的gain。
lpfilter:输入低通滤波器的频率值。取值为(0, 目标采样率/2]之间的整数。例如effectValue=”800”。
hpfilter:输入高通滤波器的频率值。取值为(0, 目标采样率/2]之间的整数。例如effectValue=“1200”。
bgm
String
线上可调用的背景音乐的名称。参见bgm属性说明。
否
阿里巴巴语音合成特有标签。为合成的语音添加指定的背景音乐。
backgroundMusicVolume
String
[0,100]之间的整数。默认值为50。
大于50表示增大音量。
小于50表示减小音量。
否
阿里巴巴语音合成特有标签。控制背景音乐的音量。
其中,bgm属性说明如下。
服务内嵌URL
自定义背景音URL
目前阿里巴巴语音合成服务内嵌如下几款背景音乐供您体验:
您可以根据需求,使用自定义的背景音。需要将背景音存放在阿里云的OSS上,并且所在的存储空间至少为公共读权限,请参见创建存储空间。使用HTTP/HTTPS协议生成文件访问链接,请参见管理Object章节中生成文件URL。
音频要求:
采样率16 KHz、单声道WAV格式。
不超过2 MB。
说明合成时长超出背景音时长时,背景音将随合成音频循环播放(如果背景音不是WAV格式,可使用ffmpeg将其转为WAV格式:
ffmpeg -i 输入音频 -acodec pcm_s16le -ac 1 -ar 16000 目标.wav
)。标签内的URL如果包含XML的特殊字符,需要做字符转义。常用的共有5个:<、>、&、"和'。
注意您需要对上传的音频版权承担相应的法律责任。
标签关系
<speak>标签可以包含文本和以下标签:
<break>
<s>
<w>
<phoneme>
<say-as>
示例
空属性
<speak> 需要调用SSML标签的文本 </speak>
音频效果:SSML-speak1.mp3
voice属性
<speak voice="xiaogang"> 我是男声。 </speak>
音频效果:SSML-speak2.mp3
encodeType属性
<speak encodeType="mp3"> 我可以生成压缩格式的音频。 </speak>
音频效果:SSML-encode.mp3
sampleRate属性
<speak sampleRate="8000"> 看看我的文件大小吧,是16000采样率音频的一半。 </speak>
音频效果:SSML-speak4.mp3
rate属性
<speak rate="200"> 我的语速比正常人快。 </speak>
音频效果:SSML-speak5.mp3
pitch属性
<speak pitch="-100"> 我的音高却比别人低。 </speak>
音频效果:SSML-speak6.mp3
volume属性
<speak volume="80"> 我的音量也很大。 </speak>
音频效果:SSML-speak7.mp3
属性组合(空格分隔)
<speak rate="200" pitch="-100" volume="80"> 所以放在一起,我的声音是这样的。 </speak>
音频效果:SSML-speak8.mp3
effect属性
<speak effect="robot"> 你喜欢机器人瓦力吗? </speak>
音频效果:SSML-speak9.mp3
bgm属性
<speak bgm="http://nls.alicdn.com/bgm/2.wav" backgroundMusicVolume="30" rate="-500" volume="40"> <break time="2s"/> 阴崖老木苍苍烟 <break time="700ms"/> 雨声犹在竹林间 <break time="700ms"/> 绵蕝固知裨国计 <break time="700ms"/> 绵州风物总堪怜 <break time="2s"/> </speak>
音频效果:SSML-speak10.mp3
<break>
描述
用于在文本中插入停顿,该标签是可选标签。
语法
# 无属性 <break/> # 带time属性 <break time="string"/>
属性
说明使用无属性的<break>标签时,停顿时长为“1s”。
属性名称
属性类型
属性值
是否必选
描述
time
String
[number]s/[number]ms
否
以秒/毫秒为单位设置停顿的时长 (如“2s“、“50ms”)。
[number]s:以秒为单位,[number]取值范围为[1, 10]的整数。
[number]ms:以毫秒为单位,[number]取值范围为[50, 10000]的整数。
标签关系
<break>是空标签,不能包含任何标签。如果SSML结构中存在<s>标签,请把<break>写在<s>里面,表示对当前段落或句子设置停顿。
示例
<speak> 请闭上眼睛休息一下<break time="500ms"/>好了,请睁开眼睛。 </speak>
音频效果:SSML-break.mp3
<s>
描述
用于表示文本的句子结构,该标签是可选标签。
语法
<s>文本</s>
属性
无。
标签关系
<s>标签可以包含文本和以下标签:
<break>
<w>
<phoneme>
<say-as>
示例
<speak><s>这是第一句话</s><s>这是第二句话</s></speak>
音频效果:SSML-s.mp3
<sub>
描述
使用别名替换标签内文本。
语法
<sub alias="string"></sub>
属性
属性名称
属性类型
属性值
是否必选
描述
alias
String
替换后的内容
是
用于替换标签内的文本。
标签关系
<sub>标签仅包括文本。
示例
<speak><sub alias="网络协议标准">W3C</sub></speak>
音频效果:SSML-sub.mp3
<w>
描述
用于表示文本的词语结构,该标签是可选标签。
语法
<w>文本</w>
属性
无。
标签关系
<w>标签仅包括文本。
示例
<speak>南京市长<w>江大桥</w>今天发表了演讲。</speak>
音频效果:SSML-w.mp3
<phoneme>
描述
用于控制标签内文本的读音,该标签是可选标签。
语法
<phoneme alphabet="string" ph="string">文本</phoneme>
属性
属性名称
属性类型
属性值
是否必选
描述
alphabet
String
py
是
“py”表示拼音。
ph
String
标签内文本对应的拼音串
是
拼音用法的赋值规范:
字与字的拼音用空格分隔,拼音的数目必须与字数相等。
每个拼音由发音和音调组成,音调为1~5的数字编号,其中”5”表示轻声。
标签关系
<phoneme>标签仅包括文本。
示例
<speak> 去<phoneme alphabet="py" ph="dian3 dang4 hang2">典当行</phoneme>把这个玩意<phoneme alphabet="py" ph="dang4 diao4">当掉</phoneme> </speak>
音频效果:SSML-phoneme.mp3
<soundEvent>
描述
提示音标签,可以在SSML合成过程中,通过该标签在任意位置插入提示音。
语法
<soundEvent src="URL"/>
属性
属性名称
属性类型
属性值
是否必选
描述
src
String
URL提示音资源路径
是
您可以根据需求,使用自定义提示音。需要将提示音存放在阿里云OSS上,并且所在的存储空间至少为公共读权限,请参见创建存储空间,使用HTTP/HTTPS协议生成文件访问链接请参见管理Object章节中生成文件URL。
音频要求:
采样率16 KHz、单声道WAV格式。
不超过2 MB。
注意您需要对上传的音频版权承担相应的法律责任。
标签关系
<soundEvent>是空标签,不可以包含任何标签。
示例
<speak> 一匹马受了惊吓<soundEvent src="http://nls.alicdn.com/sound-event/horse-neigh.wav"/>人们四散躲避 </speak>
音频效果:SSML-sound-event.mp3
<say-as>
描述
用于指示出标签内文本的信息类型,进而按照该类型的默认发音方式发音。
语法
<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:按计量单位发音。
各<say-as>类型支持范围
cardinal
格式
示例
输出
说明
数字串
145
一百四十五
整数输入范围:20位以内的正负整数,[-99999999999999999999,99999999999999999999]。
小数输入范围:对小数点后小数的位数没有特殊限制,建议不超过10位。
负号+数字串
-145
负一百四十五
以逗号分隔3位数字串
10,000
一万
负号+以逗号分隔3位数字串
-10,124
负一万一百二十四
数字串+小数点+2个零
10.00
十
负号+数字串+小数点+2个零
-110.00
负一百一十
数字串+小数点+数字串
79.090
七十九点零九零
负号+数字串+小数点+数字串
-79.001
负七十九点零零一
digits
格式
示例
输出
说明
数字串
129090909
一二九零九零九零九
对数字串的长度没有特殊限制。
建议不超过20位,且当数字串超过10位时,每个数字后插入停顿。
telephone
格式
示例
输出
说明
座机号
4930286
四九三 零二八六
支持7~8位座机号,支持空格和’-‘作为分隔符。
其中:7位座机号支持“3-4”的数字分隔方式。8位座机号支持“4-4”的数字分隔方式。
493 0286
四九三 零二八六
493-0286
四九三 零二八六
62552560
六二五五 二五六零
6255 2560
六二五五 二五六零
6255-2560
六二五五 二五六零
座机号+分机号
4930286-109
四九三 零二八六 转幺零九
支持1~4位分机号。
4930286转109
四九三 零二八六 转幺零九
4930286分机109
四九三 零二八六 分机幺零九
4930286分机号109
四九三 零二八六 分机号幺零九
区号+座机号
01062552560
零幺零 六二五五 二五六零
支持区号:010、02x、03xx、04xx、05xx、07xx、08xx、09xx。
010 62552560
零幺零 六二五五 二五六零
010 6255 2560
零幺零 六二五五 二五六零
010 6255-2560
零幺零 六二五五 二五六零
010-62552560
零幺零 六二五五 二五六零
010-6255-2560
零幺零 六二五五 二五六零
(010)62552560
零幺零 六二五五 二五六零
03198907098
零三幺九 八九零 七零九八
0319-8907098
三幺九 八九零 七零九八
区号+座机号+分机号
010 62552560-109
零幺零 六二五五 二五六零 转幺零九
无
010-62552560-109
零幺零 六二五五 二五六零 转幺零九
(010)62552560-109
零幺零 六二五五 二五六零 转幺零九
(010)62552560转109
零幺零 六二五五 二五六零 转幺零九
(010)62552560分机109
零幺零 六二五五 二五六零 分机幺零九
(010)62552560分机号109
零幺零 六二五五 二五六零 分机号幺零九
国家代码+区号+座机号
86-010-62791627
八六 零幺零 六二七九 幺六二七
支持国家代码:86、 (86)、+86、(+86)、0086。并统一读为“八六”。
(86)10-62791627
八六 幺零 六二七九 幺六二七
+86-010-62791627
八六 零幺零 六二七九 幺六二七
0086-10-62791627
八六 幺零 六二七九 幺六二七
(+86)-10-6279 1627
八六 幺零 六二七九 幺六二七
国家代码+区号+座机号+分机号
(86)21-58118818-207
八六 二幺 五八幺幺 八八幺八 转二零七
无
(86)021-5811-8818-207
八六 零二幺 五八幺幺 八八幺八 转二零七
(86)021-58118818转207
八六 零二幺 五八幺幺 八八幺八 转二零七
(86)21-5811-8818分机207
八六 二幺 五八幺幺 八八幺八 分机二零七
+86-021-58118818分机号207
八六 零二幺 五八幺幺 八八幺八分机号二零七
手机号
151 9099 0987
幺五幺 九零九九 零九八七
支持11位手机号,支持3-3-5,3-4-4两种数字分隔方式
151-909-90987
幺五幺 九零九 九零九八七
151 909 90987
幺五幺 九零九 九零九八七
国家代码+手机号
+86-15190990987
八六 幺五幺 九零九九 零九八七
无
(+86)-151-9099-0987
八六 幺五幺 九零九九 零九八七
+8615190990987
八六 幺五幺 九零九九 零九八七
0086-151 909 90987
八六 幺五幺 九零九 九零九八七
服务号
110
幺幺零
支持常用的服务号如110。
支持以400/800开头的10位服务号,支持以“3-3-4”的数字分隔方式。
支持以12530/17951/12593开头的16位号码。
95566
九五五六六
4008110510
四零零 八幺幺 零五幺零
800-810-8888
八零零 八幺零 八八八八
1253013520638377
幺二五三零 幺三五 二零六三 八三七七
其他
(86)(21)9899-80800-0909
八六 二幺 九八九九 八零八零零 零九零九
支持“数字串+分隔符(左右括号、-)”方式。
address
格式
示例
输出
说明
常用地址格式
元和镇嘉元30-9
元和镇嘉元三十杠九
支持常用地址格式。此处地址指标准的邮寄地址。
市台路388弄1107-1108号
市台路三八八弄幺幺零七杠幺幺零八号
华润二十四城六期锦云府3-1-3205
华润二十四城六期锦云府三杠一杠三二零五
圣华名都大厦2幢2006室
圣华名都大厦二幢二零零六室
五常街道庭院5幢4单元201
五常街道庭院五幢四单元二零幺
芙蓉江路150弄19号
芙蓉江路幺五零弄十九号
id
格式
示例
输出
说明
字符串
dell0101
D E L L 零 一 零 一
大小写英文字符、阿拉伯数字0~9、下划线。
输出的空格表示每个字符之间插入停顿,即字符一个一个地读。
myid_1998
M Y I D 下划线 一 九 九 八
AiTest
A I T E S T
characters
格式
示例
输出
说明
字符串
ISBN 1-001-099098-1
I S B N 一 杠 零 零 一 杠 零 九 九 零 九 八 杠 一
支持中文汉字、大小写英文字符、阿拉伯数字0~9以及部分全角和半角字符。
输出的空格表示每个字符之间插入停顿,即字符一个一个地读。标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:
< > & " '
,分别对应<、>、& 、"、'。
x10b2345_u
x 一 零 b 二 三 四 五 下划线 u
v1.0.1
v 一 点 零 点 一
版本号2.0
版本号二 点 零
苏M MA000
苏M M A 零 零 零
空中客车A330
空中客车A 三 三 零
型号s01 s02和s03
型号s 零 一 s 零二 和s 零 三
空中客车A330
空中客车A 三 三 零
αβγ
阿尔法 贝塔 伽玛
punctuation
格式
示例
输出
说明
标点符号
…
省略号
支持常见中英文标点。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。
标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:
< > & " '
,分别对应<、>、& 、"、'。
……
省略号
!"#$%&
叹号 双引号 井号 dollar 百分号 and
‘()*+
单引号 左括号 右括号 星号 加号
,-./:;
逗号 杠 点 斜杠 冒号 分号
<=>?@
小于 等号 大于 问号 at
[\]^_
左方括号 反斜线 右方括号 脱字符 下划线
date
格式
示例
输出
说明
xx年
71年
七一年
支持2位和4位年份。其中:
2位年份支持60年~99年、00年~09年、10年~19年。
4位年份支持1000年~1999年、2000年~2099年。
04年
零四年
19年
一九年
1011年
一零一一年
1998年
一九九八年
2008年
二零零八年
xx年xx月
98年4月
九八年四月
当月份为1到9月时,支持开头带”0”和不带”0”两种写法。例如”1908年4月”和”1908年04月”。
1998年04月
一九九八年四月
08年8月
零八年八月
2008年8月
二零零八年八月
xx年xx月xx日xx年xx月xx号
98年4月23日
九八年四月二十三日
当日期为1到9日时,支持开头带”0”和不带”0”两种写法。例如”1908年4月8日”和”1908年04月08日”。
1998年04月23日
一九九八年四月二十三日
08年8月8号
零八年八月八号
2008年08月08号
二零零八年八月八号
xx年xx月xx日xx年xx月xx号
98年4月23日
九八年四月二十三日
当日期为1到9日时,支持开头带”0”和不带”0”两种写法。例如”1908年4月8日”和”1908年04月08日”。
1998年04月23日
一九九八年四月二十三日
08年8月8号
零八年八月八号
2008年08月08号
二零零八年八月八号
xx月xx号
3月20日
三月二十日
无
08月07号
八月七号
年月缩写
2018/08
二零一八年八月
支持”/“、”-“、”.”作为缩写的分隔符。
2018-08
二零一八年八月
2018.08
二零一八年八月
年月日缩写
2018/08/08
二零一八年八月八日
2018-8-8
二零一八年八月八日
2018.08.08
二零一八年八月八日
xx年xx月xx日~xx年xx月xx日xx年xx月xx号~xx年xx月xx号
04年9月1日~30日
零四年九月一日至三十日
支持”~”、”-“作为”至”的缩写标志。
2004年09月01号-2008年06月08号
二零零四年九月一号至二零零八年六月八号
xx年xx月xx日~xx日xx年xx月xx号~xx号
04年9月1日~30日
零四年九月一日至三十日
2004年09月01号-2008年06月08号
二零零四年九月一号至二零零八年六月八号
xx年xx月~xx年xx月
01年04月~10年04月
零一年四月至一零年四月
2001年04月~2010年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号
十月一号至七号
年月日缩写~年月日缩写
2018/03/03~2019/01/01
二零一八年三月三日至二零一九年一月一日
支持”/“、”.”作为缩写的分隔符,支持”~””-“作为”至”的缩写标志。
1997.9.9~1998.9.9
一九九七年九月九日至一九九八年九月九日
月日缩写~月日缩写
10/20~10/31
十月二十日至十月三十一日
xx~xx月xx月~xx月
1~10月
一至十月
1月~10月
一月至十月
月日年缩写
10/20/2018
二零一八年十月二十日
仅支持4位的年份,仅支持“/”作为日期的分隔符,仅支持”月/日/年”的书写方式。
time
格式
示例
输出
说明
时刻
12:00
十二点
支持常用时间和时间范围格式。
12:00:00点
十二点
10:20分
十点二十分
10:20:30
十点二十分三十秒
09:18:14
九点十八分十四秒
时刻~时刻
11:00~12:00
十一点到十二点
09:00-14:00
九点到十四点
11:00~11:30
十一点到十一点三十分
11:00-12:18
十一点到十二点十八分
10:30~11:00
十点三十分到十一点
09:28-10:00
九点二十八分到十点
10:20~11:20
十点二十分到十一点二十分
06:00~08:00
六点到八点
上午10:20~下午13:30
上午十点二十分到下午十三点三十分
时间缩写
5:00am
凌晨五点整
5:30am
凌晨五点半
5:20:12am
凌晨五点二十分十二秒
7:00am
上午七点整
7:30AM
上午七点半
7:20:12a.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
十二点五零人民币
12,000,000RMB
一千二百万人民币
12,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微克
十二点八九七微克
其中<say-as>常见符号读法如下表所示。
符号
读法
!
叹号
“
双引号
#
井号
$
dollar
%
百分号
&
and
‘
单引号
(
左括号
)
右括号
*
星
+
加
,
逗号
-
杠
.
点
/
斜杠
:
零冒号
;
分号
<
小于
=
等号
>
大于
?
问号
@
at
[
左方括号
\
反斜线
]
右方括号
^
脱字符
_
下划线
`
反引号
{
左花括号
|
竖线
}
右花括号
~
波浪线
!
叹号
“
左双引号
”
右双引号
‘
左单引号
’
右单引号
(
左括号
)
右括号
,
逗号
。
句号
—
杠
:
冒号
;
分号
?
问号
、
顿号
…
省略号
……
省略号
《
左书名号
》
右书名号
¥
人民币符号
≥
大于等于
≤
小于等于
≠
不等于
≈
约等于
±
加减
×
乘
π
派
Α
阿尔法
Β
贝塔
Γ
伽玛
Δ
德尔塔
Ε
艾普西龙
Ζ
捷塔
Ε
依塔
Θ
西塔
Ι
艾欧塔
Κ
喀帕
∧
拉姆达
Μ
缪
Ν
拗
Ξ
克西
Ο
欧麦克轮
∏
派
Ρ
柔
∑
西格玛
Τ
套
Υ
宇普西龙
Φ
fai
Χ
器
Ψ
普赛
Ω
欧米伽
α
阿尔法
β
贝塔
γ
伽玛
δ
德尔塔
ε
艾普西龙
ζ
捷塔
η
依塔
θ
西塔
ι
艾欧塔
κ
喀帕
λ
拉姆达
μ
缪
ν
拗
ξ
克西
ο
欧麦克轮
π
派
ρ
柔
σ
西格玛
τ
套
υ
宇普西龙
φ
fai
χ
器
ψ
普赛
ω
欧米伽
<say-as>常见计量单位如下表所示。
格式
类别
示例
缩写长度nm(纳米)、μm(微米)、 mm(毫米)、cm(厘米)、m(米)、km(千米)、ft(英尺)、in(英寸)面积cm²(平方厘米)、㎡(平方米)、km2(平方千米)、SqFt(平方英尺)体积cm³(立方厘米)、m³(立方米)、km3(立方千米)、mL(毫升)、L(升)、gallon(加仑)重量
μg(微克)、mg(毫克)、g(克)、kg(千克)
时间
min(分)、sec(秒)、ms(毫秒)
电磁
μA(微安)、mA(毫安)、Ω(欧姆)、Hz(赫兹)、KHz(千赫兹)、MHz(兆赫兹)、GHz(吉赫兹)、V(伏)、kV(千伏)、kWh(千瓦时)
声音
dB(分贝)
气压Pa(帕)、kPa(千帕)、Mpa(兆帕)中文单位支持不限于上述类别的中文单位,例如“米”、“秒”、“美元”、“毫升每瓶”等。以及中文量词,例如“架”、“场”、“头”、“部”、“盆”等。
标签关系
<say-as>标签仅包括文本。
示例
cardinal
<speak> <say-as interpret-as="cardinal">12345</say-as> </speak>
digits
<speak> <say-as interpret-as="digits">12345</say-as> </speak>
telephone
<speak> <say-as interpret-as="telephone">12345</say-as> </speak>
name
<speak> 她的曾用名是<say-as interpret-as="name">曾小凡</say-as> </speak>
音频效果:SSML-say-as_Name.mp3
address
<speak> <say-as interpret-as="address">富路国际1号楼3单元304</say-as> </speak>
id
<speak> <say-as interpret-as="id">myid_1998</say-as> </speak>
音频效果:SSML-say-as_id.mp3
characters
<speak> <say-as interpret-as="characters">希腊字母αβ</say-as> </speak>
punctuation
<speak> <say-as interpret-as="punctuation"> -./:;</say-as> </speak>
date
<speak> <say-as interpret-as="date">1000-10-10</say-as> </speak>
音频效果:SSML-say-as_date.mp3
time
<speak> <say-as interpret-as="time">5:00am</say-as> </speak>
音频效果:SSML-say-as_time.mp3
currency
<speak> <say-as interpret-as="currency">13,000,000.00RMB</say-as> </speak>
measure
<speak> <say-as interpret-as="measure">100m12cm6mm</say-as> </speak>
综合示例
本示例将详细展示SSML的使用方法,您可以直接拷贝到管控台的项目功能配置中,测试效果。音频效果:综合示例.mp3。
<speak> 相传北宋年间, <say-as interpret-as="date">1121-10-10</say-as>, <say-as interpret-as="address">开封城</say-as> 郊外的早晨笼罩在一片 <sub alias="双十一">11.11</sub> 前买买买的欢乐海洋中。一支运货的骡队刚进入城门 <soundEvent src="http://nls.alicdn.com/sound-event/bell.wav"/> 一个肤白貌美 <phoneme alphabet="py" ph="de5">地</phoneme> 姑娘便拦下第一排的小哥<say-as interpret-as="name">阿发。</say-as> </speak> <speak voice="xiaomei"> “亲,本店今日特惠,鞋履全场 <say-as interpret-as="digits">199</say-as> 减 <say-as interpret-as="cardinal">100</say-as>, 走过路过不要错过”。 </speak> <speak voice="sicheng" rate="150"> “不啦不啦,赶着上货,已经 <say-as interpret-as="time">09:59:59</say-as> 了,再晚就供应链断裂了”。 </speak> <speak> <say-as interpret-as="name">阿发</say-as> 擦了擦汗,带着运货队伍,径直穿过闹巷,耳边充斥着各种叫卖声: </speak> <speak voice="ninger" rate="200"> 最新花色现染布匹,买两尺送一尺; </speak> <speak voice="xiaobei"> 爆款纱帽头盔,7天无理由退货; </speak> <speak voice="sijia"> 专治大小方脉,调理男人妇人疑难杂症。 </speak> <speak> 突然,一匹马不知怎么受了惊,在路上嘶鸣狂奔 <soundEvent src="http://nls.alicdn.com/sound-event/horse-neigh.wav"/> 一个孩子也吓坏了,跌跌撞撞地扑向大人怀里 <break time="50ms"/>大喊道: </speak> <speak voice="sitong" rate="150"> “妈妈,妈妈!” </speak> <speak> 这时, <say-as interpret-as="name">阿发</say-as> 心想 </speak> <speak effect="robot" pitch="-100"> “吓死宝宝了!” </speak> <speak> 于是他赶紧捂住了 <phoneme alphabet="py" ph="he2 bao1">钱包</phoneme>, 继续赶路送货。一路上, <say-as interpret-as="address">开封城</say-as> 的繁荣景象给 <say-as interpret-as="name">阿发</say-as> 留下了深刻的印象。 </speak> <speak bgm="http://nls.alicdn.com/bgm/2.wav" backgroundMusicVolume="30" rate="-200"> 物换星移,繁华落尽,于是他在购物狂欢之余握起画笔,勾勒出一幅长卷,并命名为《清明上河图》。 </speak>
在文档使用中是否遇到以下问题
更多建议
匿名提交