使用语音合成标记语言

已完成

虽然 Azure AI 语音 SDK 使你可以提交要合成为语音的纯文本(例如使用 SpeakTextAsync() 方法),不过该服务还支持基于 XML 的语法,用于描述要生成的语音的特征。 通过此语音合成标记语言 (SSML) 语法可更好地控制口述输出的声音,使你可以:

  • 指定说话风格,如使用神经语音时的“兴奋”或“愉快”。
  • 插入暂停或静默。
  • 指定 音素(拼音发音),例如将文本“SQL”发音为“sequel”。
  • 调整语音的韵律(影响音调、音色和说话速率)。
  • 使用常见的“表达为”规则,例如用于指定应将给定字符串表示为日期、时间、电话号码或其他形式。
  • 插入录制的语音或音频,例如包含标准录制消息或模拟背景噪音。

例如,考虑以下 SSML:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" 
                     xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US"> 
    <voice name="en-US-AriaNeural"> 
        <mstts:express-as style="cheerful"> 
          I say tomato 
        </mstts:express-as> 
    </voice> 
    <voice name="en-US-GuyNeural"> 
        I say <phoneme alphabet="sapi" ph="t ao m ae t ow"> tomato </phoneme>. 
        <break strength="weak"/>Lets call the whole thing off! 
    </voice> 
</speak>

此 SSML 指定两个不同神经语音之间的口述对话,如下所示:

  • Ariana (cheerfully): "I say tomato:
  • Guy: "I say tomato (pronounced tom-ah-toe) ... Let's call the whole thing off!"

若要向语音服务提交 SSML 说明,可以使用 SpeakSsmlAsync() 方法,如下所示:

speechSynthesizer.SpeakSsmlAsync(ssml_string);

有关 SSML 的详细信息,请参阅 Azure AI 语音 SDK 文档