如何更改技能中特定单词的 Alexa 发音?

物联网 亚历克斯
2021-06-23 02:58:03

有时,在开发 Alexa 技能并对我的服务的响应进行编程时,Alexa 会读错我的回复中的一个词,使用户感到困惑。

例如,如果我想让 Alexa 用不同的语言说一个单词(也许是为了语言学习技能),我如何告诉 Alexa 如何正确发音这个单词,而不是应用英语发音规则?

这也适用于发音奇怪的英语单词;有没有办法向 Alexa 口述正确的发音,或者用正确的自定义声音替换它?我是否需要使用额外的标记或 API 调用?

1个回答

Alexa 支持SSML,这是一种类似于 XML 的语音标记语言。您可以使用 SSML 响应,而不是从您的服务返回纯文本。<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>标签支持IPAX-SAMPA拼音字母表。您通常可以在维基词典或通过 Google找到任何单词的 IPA 拼写

对于较长的消息,最好使用<audio>标签并录制自定义语音:

音频标签允许您提供 Alexa 服务可以在呈现响应时播放的 MP3 文件的 URL。您可以使用它在您的服务响应中嵌入简短的预先录制的音频。例如,您可以在文字转语音回复中加入声音效果,或使用与您的品牌相关联的声音提供回复。

引自亚马逊文档<audio>