使用语音合成标记语言

已完成

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

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

例如,考虑以下 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 可指定两个不同的神经语音之间的口述对话,如下所示:

  • 阿丽亚娜 (欢快地):“我说番茄:
  • Guy:“I say tomato(发音为 tom-ah-toe)...Let's call the whole thing off!”

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

speechSynthesizer.SpeakSsmlAsync(ssml_string);

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