xml<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:mstts="https://www.w3.org/2001/mstts"
xmlns:emo="http://www.w3.org/2009/10/emotionml"
xml:lang="zh-CN">
<voice name="{voice_model}" rate="{voice_speed}"> <!-- 动态赋值音频模型 和 语速 -->
<mstts:silence type="Leading" value="1000ms"/> <!-- # 文本开头的附加静音 -->
<mstts:silence type="Tailing" value="1000ms"/> <!-- # 文本末尾的静音 -->
<mstts:silence type="Sentenceboundary" value="1000ms"/> <!-- # 在两个句子之间添加 1000 毫秒的静音 -->
<mstts:silence type="Comma" value="300ms"/> <!-- # 逗号处添加 300 毫秒的静音 -->
<mstts:silence type="Semicolon" value="500ms"/> <!-- # 分号处添加 500 毫秒的静音 -->
<mstts:silence type="Enumerationcomma" value="300ms"/> <!-- # 枚举逗号处添加 300 毫秒的静音 -->
<mstts:express-as style="sad" styledegree="2"> <!-- 情感、风格使用示例 -->
快走吧,路上一定要注意安全,早去早回。
</mstts:express-as>
<break time="1s" /> <!-- # 开头默认停顿1秒 -->
{voice_text} <!-- 动态赋值要转换的文本 -->
</voice>
</speak>
这里记录Azure官方给出的文档示例及相关说明。官方文档链接:SSML文档
xml<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="string">
<mstts:backgroundaudio src="string" volume="string" fadein="string" fadeout="string"/>
<voice name="string" effect="string">
<audio src="string"></audio>
<bookmark mark="string"/>
<break strength="string" time="string" />
<emphasis level="value"></emphasis>
<lang xml:lang="string"></lang>
<lexicon uri="string"/>
<math xmlns="http://www.w3.org/1998/Math/MathML"></math>
<mstts:audioduration value="string"/>
<mstts:ttsembedding speakerProfileId="string"></mstts:ttsembedding>
<mstts:express-as style="string" styledegree="value" role="string"></mstts:express-as>
<mstts:silence type="string" value="string"/>
<mstts:viseme type="string"/>
<p></p>
<phoneme alphabet="string" ph="string"></phoneme>
<prosody pitch="value" contour="value" range="value" rate="value" volume="value"></prosody>
<s></s>
<say-as interpret-as="string" format="string" detail="string"></say-as>
<sub alias="string"></sub>
</voice>
</speak>
以下列表描述了每个元素中允许的一些内容示例:
audio
:如果音频文件不可用或不可播放,可在 audio
元素的正文中包含可讲述的纯文本或 SSML 标记。 audio
元素还包含文本和以下元素:audio
、break
、p
、s
、phoneme
、prosody
、say-as
和 sub
。bookmark
:此元素不能包含文本或任何其他元素。break
:此元素不能包含文本或任何其他元素。emphasis
:此元素可包含文本和以下元素:audio
、break
、emphasis
、lang
、phoneme
、prosody
、say-as
和 sub
。lang
:此元素可包含除 mstts:backgroundaudio
、voice
和 speak
以外的所有其他元素。lexicon
:此元素不能包含文本或任何其他元素。math
:此元素只能包含文本和 MathML 元素。mstts:audioduration
:此元素不能包含文本或任何其他元素。mstts:backgroundaudio
:此元素不能包含文本或任何其他元素。mstts:embedding
:此元素可包含文本和以下元素:audio
、break
、emphasis
、lang
、phoneme
、prosody
、say-as
和 sub
。mstts:express-as
:此元素可包含文本和以下元素:audio
、break
、emphasis
、lang
、phoneme
、prosody
、say-as
和 sub
。mstts:silence
:此元素不能包含文本或任何其他元素。mstts:viseme
:此元素不能包含文本或任何其他元素。p
:此元素可包含文本和以下元素:audio
、break
、phoneme
、prosody
、say-as
、sub
、mstts:express-as
和 s
。phoneme
:此元素只能包含文本,不能包含任何其他元素。prosody
:此元素可包含文本和以下元素:audio
、break
、p
、phoneme
、prosody
、say-as
、sub
和 s
。s
:此元素可包含文本和以下元素:audio
、break
、phoneme
、prosody
、say-as
、mstts:express-as
和 sub
。say-as
:此元素只能包含文本,不能包含任何其他元素。sub
:此元素只能包含文本,不能包含任何其他元素。speak
:SSML 文档的根元素。 此元素可包含以下元素:mstts:backgroundaudio
和 voice
。voice
:此元素可包含除 mstts:backgroundaudio
和 speak
以外的所有其他元素。语音服务可自动适当处理停顿(例如,在句号后面暂停片刻),或者在以问号结尾的句子中使用正确的音调。
若要在 SSML 元素的值或文本中使用字符 &
、<
和 >
,则必须使用实体格式。 具体而言,必须使用 &
而不是 &
,使用 <
而不是 <
,使用 >
而不是 >
。 否则,无法正确分析 SSML。
例如,请指定 green & yellow
而不是 green & yellow
。 以下 SSML 按预期进行分析:
xml<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AvaNeural">
My favorite colors are green & yellow.
</voice>
</speak>
引号、撇号和括号等特殊字符必须经过转义。 有关详细信息,请参阅可扩展标记语言 (XML) 1.0:附录 D。
属性值必须用双引号或单引号括起来。 例如,<prosody volume="90">
和 <prosody volume='90'>
是格式正确的有效元素,但无法识别 <prosody volume=90>
。
使用 break
元素替代单词之间的默认中断或暂停行为。 否则,语音服务会根据文本自动插入暂停。
主动停顿示例:
xml<break time="1s" />
break
元素可以有两个可选属性:
strength
:使用以下值之一指定暂停的相对持续时间:x-weak
、weak
、medium
(默认值)、strong
、x-strong
。time
:暂停的绝对持续时间,以秒为单位(例如 2s
)或以毫秒为单位(例如 500ms
)。 有效值的范围为 0
到 5000
毫秒。 如果设置的值大于支持的最大值,则服务将使用 5000ms
。 如果设置了 time
属性,则会忽略 strength
属性。本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!