USSML 语法说明 #
简介 #
USSML(Unified Speech Synthesis Markup Language)旨在归一化各TTS供应商的 SSML(Speech Synthesis Markup Language)语法格式。USSML 支持最常用的两个 SSML 标签:停顿 <break> 和指定读音<phoneme>,可以满足大部分的语音合成需求。如有 USSML 不支持的标签,用户仍然可以直接使用 TTS 供应商的 SSML 语法进行语音合成。
使用方式 #
语法格式 #
USSML 语法格式如下:
<speak sttts:version="0.1">
<break time="string" />
<phoneme ph="string"></phoneme>
</speak>
特殊字符 #
由于使用 XML,USSML 中的特殊字符需要进行转义,如下表所示:
| 特殊字符 | 转义字符 |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| ' | ' |
标签说明 #
<speak>
#
<speak> 标签是 USSML 的根标签,用于包裹所有的 USSML 标签。
属性 sttts:version 用于指定 USSML 的版本号,目前 USSML 的版本号为 0.1。
<speak sttts:version="0.1">
<!-- USSML 标签 -->
</speak>
<break>
#
<break> 标签用于指定停顿,其 time 属性用于指定停顿的时长。time 属性的值是一个字符串,单位为秒或毫秒。停顿的最大时长为5秒。例如:
<break time="5s" />
或
<break time="5000ms" />
<phoneme>
#
<phoneme> 标签用于指定读音,其 ph 属性用于指定读音的内容。由于不同供应商支持语言范围不同,目前 USSML 中的 <phoneme> 仅支持拼音。例如:
<phoneme ph="mo4">没</phoneme>
示例 #
例 1 #
<speak sttts:version="0.1">
你说<phoneme ph="bo2">薄</phoneme>。
<break time="500ms" />
我说<phoneme ph="bao2">薄</phoneme>。
</speak>