SSML(Speech Synthesis Markup Language)是一种基于XML的语音合成标记语言。与纯文本语音合成相比,使用SSML可以控制文本的类型、分词方式、发音、停顿等。
目前文本朗读能力支持的标签有 6 类:<speak>
、<word>
、<phoneme>
、<say-as>
、<sub>
、<break>
。
注意事项:
1. SSML仅支持中英文发音人,不支持除中英文以外的小语种发音人。
2. 目前版本下SSML对于英文发音人支持不够友好,建议尽量避免英文发音人使用SSML,内部正在持续优化中。
2. speak 标签必需且只能出现一次,所有文本包含在 speak 标签内。
2. speak 以外的其它标签出现次数不受限制,不支持嵌套使用。
<speak></speak>
中。<speak>SSML文本</speak>
属性:目前支持以下的属性:
<speak pitch="3">欢迎使用SSML标记语言</speak>
Rate:设置rate属性可以改变
示例
<speak rate="10">欢迎使用SSML标记语言</speak>
<word>分词</word>
属性:目前不支持任何属性。
示例
<speak>南京市长<word>江大桥</word>。</speak>
描述:控制文本的发音。
语法
<phoneme alphabet="string" ph="string">文本</phoneme>
名称 | 类型 | 值 | 是否必选 | 描述 |
---|---|---|---|---|
alphabet | 字符串 | py | 是 | 表示该标签描述的是文本对应的拼音。(注意:拼音不支持用于中文之外的文本) |
ph | 字符串 | 标签内文本对应的拼音 | 是 | 表示文本对应的拼音: * 字与字的拼音用空格分隔,拼音的数目必须与字数相等。 * 每个拼音由发音和音调组成,音调为1~5的数字编号,其中”5”表示轻声。 |
<speak>您找<phoneme alphabet="py" ph="xie4 le4">解乐</phoneme>是吗?</speak>
描述:描述文本的类型。
语法
<say-as interpret-as="String">文本</say-as>
名称 | 类型 | 值 | 是否必选 | 描述 |
---|---|---|---|---|
interpret-as | 字符串 | cardinal/ordinal/ digits/telephone/ characters/score/ date/time/email/ name/address/ math/id/fraction/ measure | 是 | 表示文本的类型: * cardinal: 整数 * ordinal: 序数词 * digits: 数字串 * telephone: 电话号码 * characters: 字符串 * score: 比分 * date:日期 * time:时间 * email: 邮箱 * name: 姓名 * address: 地址 * math: 数学表达式 * id: 用户号 * fraction: 分数 * measure: 计量单位 |
<speak>电话号码是<say-as interpret-as="telephone">1008611</say-as></speak>
描述:对文本进行替换。
语法
<sub alias="String">文本</sub>
名称 | 类型 | 值 | 是否必选 | 描述 |
---|---|---|---|---|
alias | 字符串 | 替换后的文本 | 是 | 对标签内的文本进行替换 |
<speak><sub alias="网络协议标准">W3C</sub></speak>
描述:在文本中插入停顿。
语法
<break time="string"/>
名称 | 类型 | 值 | 是否必选 | 描述 |
---|---|---|---|---|
time | 字符串 | [number]s或[number]ms | 是 | 设置文本停顿时长,单位是秒或毫秒,最大取值为10秒 |
<speak>听<break time="1.5s"/>,有人进来了</speak>