使用语音合成标记语言
虽然 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 文档。