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 许可协议。转载请注明出处!