如何通过Alexa在自定义技能中更改特定单词的发音?

时间:2018-02-09 16:54:54

标签: aws-lambda alexa alexa-skills-kit alexa-skill ssml

有时,在开发Alexa技能并对我的服务编写回复时,Alexa会错误地回复我的回复中的一个词,使用户感到困惑。

例如,如果我想让Alexa说一句话,让它成为 live ,我怎么能告诉Alexa如何正确发音这个词,因为 live

有没有办法向Alexa发出正确的发音,或用正确的自定义声音替换它?我是否需要使用其他标记或API调用?

1 个答案:

答案 0 :(得分:2)

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

  

音素

     

为包含的文本提供音素/语音发音。例如,人们可能会以不同的方式发出像“山核桃”这样的词语。

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

  

下表列出了与phoneme标记一起使用的受支持符号。这些符号完全覆盖美国英语的声音。请注意,许多非英语语言需要使用此列表中未包含的符号,这些符号不受支持。不鼓励使用此列表中未包含的符号,因为它可能导致语音合成次优。

Amazon documentation关于SSML的引言。

这是给Alexa一个特定发音的例子 live

<speak>
    <phoneme alphabet="ipa" ph="lɪv">live 1</phoneme>.
    <phoneme alphabet="ipa" ph="laɪv">live 2</phoneme>.
</speak> 

<phoneme>标记支持IPAX-SAMPA拼音字母。您通常可以在Wiktionary或通过Google查找任何字词的IPA拼写。

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

  

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

引自亚马逊文档<audio>