有时,在开发Alexa技能并编写服务响应的程序时,Alexa会在我的答复中错误地发音其中一个单词,使用户感到困惑。例如,如果我想让Alexa在不同的语言(也许是一种语言学习技能),我如何告诉Alexa如何正确发音这个单词,而不是应用英语发音规则?

这也适用于发音奇怪的英语单词;有没有办法向Alexa要求正确的发音,或用正确的自定义声音替换它?我需要使用其他标记或API调用吗?

#1 楼

Alexa支持SSML,这是一种类似于XML的语音标记语言。您可以使用SSML响应,而不是从服务中返回纯文本。特别需要<phoneme>标记:

phoneme
为所包含的文本提供语音/语音发音。例如,人们可能会以不同的方式发音“ pecan”之类的单词。

对于英语单词(尤其是美国英语),Alexa应该能够发音正确的语音发音的任何单词:

下表列出了与音素标记一起使用的受支持符号。这些符号全面覆盖了美国英语的声音。请注意,许多非英语语言要求使用此列表中未包含的符号,这些符号不受支持。不鼓励使用此列表中未包括的符号,因为这可能会导致语音合成效果欠佳。

Amazon文档中有关SSML的报价。
以下是为Alexa指定特定发音的示例:
<speak>
    <phoneme alphabet="ipa" ph="hɛˈləʊ̯">Hello</phoneme>.
    <phoneme alphabet="ipa" ph="bɔ̃.ˈʒuʁ">Bonjour</phoneme>.
</speak> 

<phoneme>标签支持IPA和X-SAMPA语音字母。通常,您可以在Wiktionary上或通过Google找到任何单词的IPA拼写。
对于较长的消息,最好使用<audio>标签并录制自定义语音:

音频标签可以您提供了Alexa服务在呈现响应时可以播放的MP3文件的URL。您可以使用它在服务响应中嵌入预先录制的简短音频。例如,您可以在文本语音转换响应中包含声音效果,或者使用与品牌相关的声音来提供响应。

摘自<audio>的Amazon文档。