USSML 语法

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 中的特殊字符需要进行转义,如下表所示:

特殊字符转义字符
&&amp;
<&lt;
>&gt;
"&quot;
'&apos;

标签说明 #

<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>