官方文档:语音合成标记语言 (SSML) 的语音和声音 - 语音服务 - Azure AI services | Microsoft Learn

一、SSML概述

Speech Synthesis Markup Language(SSML)是W3C标准的XML格式标记语言,用于精确控制语音合成的输出效果。微软Azure认知服务的神经语音技术深度支持SSML规范,并提供扩展功能,可实现对发音、语调、节奏等200+参数的精细控制,支持超过450种神经语音和90种标准语音。

二、基础文档结构

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
  
  <!-- 正文内容 -->

</speak>

支持多命名空间嵌套,可通过xml:lang声明主语言(支持87种语言/变体)

三、语音控制

1. 选择发音人

<voice name="en-US-JennyNeural">
  This is the default voice.
</voice>

2. 动态切换发音人

<voice name="en-US-JennyNeural">
  Main content...
  <voice name="en-US-GuyNeural">
    Interruption part
  </voice>
</voice>

四、韵律控制

1. 语速调节

<prosody rate="+20%">加速20%</prosody>
<prosody rate="-30%">减速30%</prosody>
<!-- 取值范围:0.5x-3x -->

<!-- 微软扩展 -->
<mstts:silence type="Sentenceboundary" value="500ms"/>

2. 音调调节

<prosody pitch="high">高音调</prosody>
<prosody pitch="+5st">升高5半音</prosody> 
<!-- 范围:-12st到+12st -->

3. 音量控制

<prosody volume="+6dB">大声</prosody>
<prosody volume="soft">轻声</prosody>
<!-- 范围:-24dB到+24dB -->

4. 停顿控制

<break time="500ms"/> <!-- 精确毫秒控制 -->
<break strength="x-weak"/> <!-- 四级停顿强度 -->
<bookmark mark="chapter1"/> <!-- 锚点标记 -->

五、高级发音控制

1. 多语言混合

<lang xml:lang="ja-JP">
  こんにちは
</lang>

2. 音素控制

<phoneme alphabet="sapi" ph="t eh 1 k s t">text</phoneme>
<!-- 支持IPA/SAPI两种音标体系 -->

3. 特殊发音

<say-as interpret-as="telephone">+1 (800) 555-1234</say-as>
<say-as interpret-as="ordinal">3rd</say-as>
<!-- 支持18种语义解释类型 -->

六、语音风格控制(微软扩展)

1. 情感表达

<mstts:express-as style="cheerful">
  今天真是个好天气!
</mstts:express-as>
<!-- 支持15+情感风格 -->

2. 角色扮演

<mstts:role-play role="Boy">
  妈妈你看,飞机!
</mstts:role-play>

3. 背景音效

<mstts:backgroundaudio src="soundbank://sound/restaurant/plate_clinking"/>

七、最佳实践建议

  1. 渐进式调节原则:每次只调整一个参数
  2. 环境适配:设备外放建议+3dB音量补偿
  3. 自然停顿配置:
    <prosody rate="-10%"><break strength="medium"/>重要内容</prosody>
  4. 多语音工程结构:
    <speak version="1.0">
      <voice name="en-US-JennyNeural" role="narrator">
        <!-- 主叙述 -->
      </voice>
      <voice name="en-US-AriaNeural" style="whispering">
        <!-- 画外音 -->
      </voice>
    </speak>

     

八、完整示例

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

 

发表回复

后才能评论