You need to enable JavaScript to run this app.
导航

SSML标记语言

最近更新时间2023.09.06 15:57:01

首次发布时间2021.12.14 21:01:29

概述

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>中。
  • 语法:
<speak>SSML文本</speak>
  • 属性:目前支持以下的属性:

    • Pitch:设置pitch属性可以改变标签所包含的文本的语调,取值范围为[-12, 12]。
    • 示例
    <speak pitch="3">欢迎使用SSML标记语言</speak>
    
    • Rate:设置rate属性可以改变标签所包含的文本的语速,取值范围为[-50, 100]。

    • 示例

    <speak rate="10">欢迎使用SSML标记语言</speak>
    

word

  • 描述:控制文本的分词结果。
  • 语法
<word>分词</word>
  • 属性:目前不支持任何属性。

  • 示例

<speak>南京市长<word>江大桥</word>。</speak>

phoneme

  • 描述:控制文本的发音。

  • 语法

<phoneme alphabet="string" ph="string">文本</phoneme>
  • 属性
名称类型是否必选描述
alphabet字符串py表示该标签描述的是文本对应的拼音。(注意:拼音不支持用于中文之外的文本)
ph字符串标签内文本对应的拼音表示文本对应的拼音:
* 字与字的拼音用空格分隔,拼音的数目必须与字数相等。
* 每个拼音由发音和音调组成,音调为1~5的数字编号,其中”5”表示轻声。
  • 示例
<speak>您找<phoneme alphabet="py" ph="xie4 le4">解乐</phoneme>是吗?</speak>

say-as

  • 描述:描述文本的类型。

  • 语法

<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

  • 描述:对文本进行替换。

  • 语法

<sub alias="String">文本</sub>
  • 属性
名称类型是否必选描述
alias字符串替换后的文本对标签内的文本进行替换
  • 示例
<speak><sub alias="网络协议标准">W3C</sub></speak>

break

  • 描述:在文本中插入停顿。

  • 语法

<break time="string"/>
  • 属性
名称类型是否必选描述
time字符串[number]s或[number]ms设置文本停顿时长,单位是秒或毫秒,最大取值为10秒
  • 示例
<speak>听<break time="1.5s"/>,有人进来了</speak>