SSML使用说明

SSML简介

语音合成标记语言(Speech Synthesis Markup Language, SSML)是一种基于XML的标记语言,用于提供语音合成的文本注释。用户通过给输入文本加上SSML中预先定义的标签,可以很好地指导合成器按照其需求进行操作。在接收到完整的SSML输入后,引擎对文本所有标签进行解析,再按长句(以句号、问好、感叹号结尾的句子称之为长句)输入后端合成声音。使用SSML版本的合成,需要在引擎初始化之前,设置usessml参数为1,该参数默认为0。

使用方式

说明:

  • 目前只有中文合成支持SSML功能
  • 所有文本需放在<speak></speak>标签之内;每个语音合成任务只能包含一个<speak></speak>标签。

 

语法:

<?xml version="1.0" encoding="utf8"?><speak>需要调用SSML标签的文本</speak>

常用标签

w 标签

一对< w>< /w>标签中的内容会作为一个词语连读,语句有停顿错误的情况可以使用此标签调整。

示例:

原句:这群山里的娃娃。
原有停顿: 这| 群山| 里的| 娃娃。
使用 ssml 调整:

<?xml version="1.0" encoding="utf8"?><speak xml:lang="cn"><p><w>这群</w><w>山里
的</w>娃娃。</p></speak>

注释:<w></w>标记出“这群” “山里的”分别是一个词,从而消除了停顿错误


break 标签

在音频中加入指定时长的停顿。

示例:

原句:我有一条蓝色的绣花短袖长裙。

使用ssml调整:

<?xml version="1.0" encoding="utf8"?><speak xml:lang="cn"><p> 我 有 一 条
<break></break>蓝色的绣花短袖长裙。</p></speak>
<speak xml:lang="cn">
    <p>
        <break time="3000ms"></break>今天天气非常好,我们打算出海去打鱼
        <break time="2s"></break>。
    </p>
</speak>

注释:<break></break>的作用是在“一条”和“蓝色的”之间加入了明显停顿。
特殊说明:break 只对部分发音人(voiceId)起作用,一般不建议使用。

 

phoneme 标签

指明标签内文本的读音。目前仅支持汉语拼音,读音通过 py 属性给出。
示例:
原句: 未来三年中将增长两倍。
问题:多音字“将”被读为”jiang4”(四声)

使用 ssml 调整:

<?xml version="1.0" encoding="utf8"?><speak xml:lang="cn"><p>未来三年中<phoneme 
py="jiang1">将</phoneme>增长两倍。</p></speak>

注释:<phoneme py="jiang1">将</phoneme>指定将的发音为”jiang1“,拼音1-4代表声

调里的一声到四声,5代表轻声。

 

sayas 标签

指明文本中数字串和字母串的发音方式,属性 type 可选值 spell-out(字母逐个读出),
number:digits(数字逐个读出),number:ordinal(数字按照数值发音)。
原句:我的设备号是 27AM5
问题:“27“被读为二十七, “AM”读成单词”am“
使用 ssml 调整:

<?xml version="1.0" encoding="utf8"?><speak xml:lang="cn"><p> 我 使 用 的 设 备 号 是
<sayas type="number:digits">27</sayas><sayas type="spell-out">AM</sayas><sayas 
type="number:digits">53</sayas>,你使用过这种设备吗?</p></speak>

注释:<sayas type="number:digits">27</sayas>标记 “27“读为二七;<sayas type="spell-out">AM</sayas>标

记”AM“按照字母逐个读出。

 

sub 标签

使用指定的文本替换原有的文本的发音,如果指定文本为空,则不发音。使用sub元素替换原来文本中的内容,或者是让一段文本不发音。

属性 说明 是否支持
alisa 必需,指定替换后的文本
<?xml version="1.0" encoding="GB2312"?> 
<speak xml:lang="cn"> 
<sentence> 
中国是<sub alias="世界贸易组织">WTO</sub>的成员 
</sentence> 
</speak> 

总结

同一句中,上述标签可结合使用,对于未用标签标注的部分,系统将按照正常流程处理。