SSML(Speech Synthesis Markup Language)是一种基于XML的标记语言。 与纯文本的合成相比,使用SSML可以充实合成的内容,为最终合成效果带来更多变化。SSML不仅让人控制语音合成能读什么,更让人可以控制语音合成可以怎么读,包括控制断句分词方式、发音、速度、停顿、声调、音量等特征,甚至加入背景音乐。
阿里巴巴语音合成服务的SSML实现基于W3C 的语音合成标记语言版本1.0,但并不支持所有的W3C包含的标记类型,而是从业务角度出发,将支持的标记类型最大程度与业务需求绑定。
2 使用方式
说明:
- 目前只有中文合成支持SSML功能。
- 所有文本需放在<speak></speak>标签之内;每个语音合成任务只能包含一个<speak></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": "5fdf78c0dd574b6897f3cb204dd080b3",
"appkey": "fd4******er4",
"task_id": "6e1be78ef5804c50a2c5a8b92de15cb9"
}
}
语音合成服务所支持的SSML标签请阅读如下章节,使用方式与上述示例相同。
3 标签
3.1 speak
描述
<speak>标签是所有待支持SSML标签的根节点。一切需要调用SSML标签的文本都要包含在<speak></speak>中。
语法
<speak>需要调用SSML标签的文本</speak>
属性
<speak>标签可以使用以下属性:
属性名称 属性类型 属性值 是否必需 描述 voice String 线上可调用的发音人的名称代号(voice的属性值需要为全小写的voice参数值,如”siyue”) 否 阿里巴巴语音合成特有标签。在合成时,指定发音人,优先级高于接口请求参数voice指定的发音人。(xiaowei和xiaomeng暂不支持在voice中设置) encodeType String pcm
wav
mp3否 阿里巴巴语音合成特有标签。在合成时,指定音频文件格式,优先级高于接口请求参数format指定的文件格式。 sampleRate String 8000
16000否 阿里巴巴语音合成特有标签。在合成时,指定音频的采样率,优先级高于接口请求参数sample_rate指定的音频采样率。 rate String [-500, 500]之间的任意整数。0是默认值,大于0表示加快语速,小于0表示减慢语速。 否 阿里巴巴语音合成特有标签。在合成时,指定音频的语速,优先级高于接口请求参数speech_rate指定的语速。 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是高通滤波器。
备注:
1. 其中eq、lpfilter、hpfilter是高级效果器,您可以通过effectValue自定义效果器的效果。
2. 一个SSML只支持一种音效,不可以写多个effect属性。
3. 选择使用音效功能会增加系统延时。effectValue String 当用户选择使用高级音效eq, lpfilter, hpfilter时,可以使用该参数修改效果器的默认效果。 否 • eq(均衡器): 系统默认使用8个band,对应的频率为[“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个band对应的gain。gain的调整范围在[-20dB, 20dB]之间。例如effectValue=”1 1 1 1 1 1 1 1”。输入是一个以空格分割的8个整数组成的string。数值为0表示不调整对应频率的gain。
• lpfilter: 输入低通滤波器的频率值。可以是(0, 目标采样率/2]之间的任意整数。例如effectValue=”800”。
• hpfilter: 输入高通滤波器的频率值。可以是(0, 目标采样率/2]之间的任意整数。例如effectValue=”1200”。bgm String 线上可调用的背景音乐的名称,请阅读下面bgm属性说明。 否 阿里巴巴语音合成特有标签。为合成的语音添加指定的背景音乐。 backgroundMusicVolume String [0, 100]之间的任意整数。50是默认值,大于50表示增大音量,小于50表示减小音量。 否 阿里巴巴语音合成特有标签。控制背景音乐的音量。 bmg属性说明:
服务内嵌URL 目前阿里巴巴语音合成服务内嵌了几款背景音乐供您体验:
https://gw.alipayobjects.com/os/bmw-prod/0a794189-0d3f-4c31-bba0-4c1f74ff1457.wav
https://gw.alipayobjects.com/os/bmw-prod/46e7e489-6007-4d6b-b079-8cba944c2b9c.wav
https://gw.alipayobjects.com/os/bmw-prod/3b8227a2-ff74-4275-8c80-97e45ee42079.wav自定义背景音URL 您可以根据需求,使用自定义的背景音。需要将背景音存放在阿里云的OSS上,并且所在的Bucket至少为公共读权限,请参考创建存储空间,生成文件访问链接请阅读如何获取OSS文件的访问地址, 使用HTTP/HTTPS协议。
您需要对上传的音频版权承担相应的法律责任。
对音频要求:
1. 采样率16KHz、单声道wav格式
2. 大小不超过2MB
3. 合成时长超出背景音时长时,背景音将循环合成
(如果您的背景音不是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>
voice属性
<speak voice="xiaogang">
我是男声。
</speak>
encodeType属性
<speak encodeType="mp3">
我可以生成压缩格式的音频。
</speak>
sampleRate属性
<speak sampleRate="8000">
看看我的文件大小吧,是16000采样率音频的一半。
</speak>
rate属性
<speak rate="200">
我的语速比正常人快。
</speak>
pitch属性
<speak pitch="-100">
我的音高却比别人低。
</speak>
volume属性
<speak volume="80">
我的音量也很大。
</speak>
属性组合,用空格隔开
<speak rate="200" pitch="-100" volume="80">
所以放在一起,我的声音是这样的。
</speak>
effect属性
<speak effect="robot">
你喜欢机器人瓦力吗?
</speak>
bgm属性
<speak bgm="https://gw.alipayobjects.com/mdn/rms_c138ef/afts/file/A*OWd-SomRJWMAAAAAAAAAAABkARQnAQ" backgroundMusicVolume="30" rate="-500" volume="40">
<break time="2s"/>
阴崖老木苍苍烟
<break time="700ms"/>
雨声犹在竹林间
<break time="700ms"/>
绵蕝固知裨国计
<break time="700ms"/>
绵州风物总堪怜
<break time="2s"/>
</speak>
3.2 break
描述
用于在文本中插入停顿,该标签是可选标签。
语法
# 空属性
<break/>
# 带time属性
<break time="string"/>
属性
属性名称 属性类型 属性值 是否必需 描述 空 空 空 否 使用无属性的break标签时,停顿时长为”1s”。 time String [number]s
[number]ms否 以秒或毫秒的单位来设置停顿的长度 (如 “2s” 或 “50ms”)。
以毫秒为单位的话,number数值范围是[50, 10000]的整数。
以秒为单位的话,number数值范围是[1, 10]的整数。
• [number]s:停顿的持续时长,以秒为单位。
• [number]ms:停顿的持续时长,以毫秒为单位。标签关系
<break>是空标签,不可以包含任何标签。如果SSML结构中存在<s>标签,请把<break>写在<s>里面,表示对当前段落或句子设置停顿。
示例
<speak>
请闭上眼睛休息一下<break time="500ms"/>好了,请睁开眼睛。
</speak>
3.3 s
描述
用于表示文本的句子结构,该标签是可选标签。
语法
<s>文本</s>
属性
无
标签关系 <s>标签可以包含文本和以下标签:
- break
- w
- phoneme
- say-as
示例
<speak><s>这是第一句话</s><s>这是第二句话</s></speak>
3.4 sub
描述
使用别名来替换标签内文本。
语法
<sub alias="string"></sub>
属性
属性名称 属性类型 属性值 是否必需 描述 alias String 替换后的内容 是 用于替换标签内的文本 标签关系
<sub>标签仅包括文本。
示例
<speak><sub alias="网络协议标准">W3C</sub></speak>
3.5 w
描述
用于表示文本的词语结构,该标签是可选标签。
语法
<w>文本</w>
属性
无
标签关系
<w>标签仅包括文本。
示例
<speak>南京市长<w>江大桥</w>今天发表了演讲。</speak>
3.6 phoneme
描述
用于控制标签内文本的读音,该标签是可选标签。
语法
<phoneme alphabet="string" ph="string">文本</phoneme>
属性
属性名称 属性类型 属性值 是否必需 描述 alphabet String py 是 py表示拼音 ph String 标签内文本对应的拼音串 是 拼音用法的赋值规范:
1.字与字的拼音用空格分隔,拼音的数目必须与字数相等。
2.每个拼音由发音和调组成,调为1~5的数字编号,其中”5”表示轻声。标签关系
<phoneme>标签仅包括文本。
示例
<speak>
去<phoneme alphabet="py" ph="dian3 dang4 hang2">典当行</phoneme>把这个玩意<phoneme alphabet="py" ph="dang4 diao4">当掉</phoneme>
</speak>
3.8 soundEvent
描述
提示音标签,可以在SSML合成过程中,通过该标签在任意位置插入提示音。
语法
<soundEvent src="URI"/>
属性
属性名称 属性类型 属性值 是否必需 描述 src String URI提示音资源路径 是 您可以根据需求,使用自定义的提示音。需要将提示音存放在阿里云的OSS上,并且所在的Bucket至少为公共读权限,请参考创建存储空间,生成文件访问链接请阅读如何获取OSS文件的访问地址,使用HTTP/HTTPS协议。
您需要对上传的音频版权承担相应的法律责任。
对音频要求:
1. 采样率16KHz、单声道wav格式;
2. 大小不超过2MB。标签关系
<soundEvent>是空标签,不可以包含任何标签。
示例
<speak>
一匹马受了惊吓<soundEvent src="https://gw.alipayobjects.com/os/bmw-prod/520dcd7c-19b8-43fb-bdd9-1c1a8ea6434d.wav"/>人们四散躲避
</speak>
3.7 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: 将标签内的文本按character一一读出。
• 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 幺幺零 1.支持常用的服务号如110
2.支持以400/800开头的10位服务号,支持以3-3-4的数字分隔方式
3.支持以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年 七一年 xx年支持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片 两片 支持常见中文单位,单位缩写,具体请参考表格meausre 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 chartable如下表所示:
符号 | 读法 |
---|---|
! | 叹号 |
“ | 双引号 |
# | 井号 |
$ | dollar |
% | 百分号 |
& | and |
‘ | 单引号 |
( | 左括号 |
) | 右括号 |
* | 星 |
+ | 加 |
, | 逗号 |
- | 杠 |
. | 点 |
/ | 斜杠 |
: | 零冒号 |
; | 分号 |
< | 小于 |
= | 等号 |
> | 大于 |
? | 问号 |
@ | at |
[ | 左方括号 |
\ | 反斜线 |
] | 右方括号 |
^ | 脱字符 |
_ | 下划线 |
` | 反引号 |
{ | 左花括号 |
| | 竖线 |
} | 右花括号 |
~ | 波浪线 |
! | 叹号 |
“ | 左双引号 |
” | 右双引号 |
‘ | 左单引号 |
’ | 右单引号 |
( | 左括号 |
) | 右括号 |
, | 逗号 |
。 | 句号 |
— | 杠 |
: | 冒号 |
; | 分号 |
? | 问号 |
、 | 顿号 |
… | 省略号 |
…… | 省略号 |
《 | 左书名号 |
》 | 右书名号 |
¥ | 人民币符号 |
≥ | 大于等于 |
≤ | 小于等于 |
≠ | 不等于 |
≈ | 约等于 |
± | 加减 |
× | 乘 |
π | 派 |
Α | 阿尔法 |
Β | 贝塔 |
Γ | 伽玛 |
Δ | 德尔塔 |
Ε | 艾普西龙 |
Ζ | 捷塔 |
Ε | 依塔 |
Θ | 西塔 |
Ι | 艾欧塔 |
Κ | 喀帕 |
∧ | 拉姆达 |
Μ | 缪 |
Ν | 拗 |
Ξ | 克西 |
Ο | 欧麦克轮 |
∏ | 派 |
Ρ | 柔 |
∑ | 西格玛 |
Τ | 套 |
Υ | 宇普西龙 |
Φ | fai |
Χ | 器 |
Ψ | 普赛 |
Ω | 欧米伽 |
α | 阿尔法 |
β | 贝塔 |
γ | 伽玛 |
δ | 德尔塔 |
ε | 艾普西龙 |
ζ | 捷塔 |
η | 依塔 |
θ | 西塔 |
ι | 艾欧塔 |
κ | 喀帕 |
λ | 拉姆达 |
μ | 缪 |
ν | 拗 |
ξ | 克西 |
ο | 欧麦克轮 |
π | 派 |
ρ | 柔 |
σ | 西格玛 |
τ | 套 |
υ | 宇普西龙 |
φ | fai |
χ | 器 |
ψ | 普赛 |
ω | 欧米伽 |
其中say-as measure unit table如下表所示:
格式 | 类别 | 举例 |
缩写 | 长度 | 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(兆帕) | |
中文单位 | 支持不限于上述类别的中文单位,例如“米”“秒”“美元”“毫升每瓶”等,以及中文量词,例如“架”“场”“头”“部”“盆”等 |
5.标签关系
<say-as>标签仅包括文本。
6.示例
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>
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>
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>
time
<speak>
<say-as interpret-as="time">5:00am</say-as>
</speak>
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>
4 综合示例
本示例将详细展示SSML的使用方法,您可以直接拷贝到管控台的项目功能配置中,测试效果。
注意:
- 示例样音中旁白发音人使用的是定制声音,暂没有开放。体验定制声音,请阅读语音合成声音定制。
- 语音合成每次合成请求的文本字数不能超过300字符,且只能使用一次<speak>标签,以下示例需要按照<speak>标签分多次进行合成测试。
<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="https://gw.alipayobjects.com/os/bmw-prod/9a4c57cc-caec-46aa-b4fa-d1e2dd0187d0.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="https://gw.alipayobjects.com/os/bmw-prod/520dcd7c-19b8-43fb-bdd9-1c1a8ea6434d.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="https://gw.alipayobjects.com/os/bmw-prod/46e7e489-6007-4d6b-b079-8cba944c2b9c.wav" backgroundMusicVolume="30" rate="-200">
物换星移,繁华落尽,于是他在购物狂欢之余握起画笔,勾勒出一幅长卷,并命名为《清明上河图》。
</speak>