有时,在开发Alexa技能并对我的服务编写回复时,Alexa会错误地回复我的回复中的一个词,使用户感到困惑。
例如,如果我想让Alexa说一句话,让它成为 live ,我怎么能告诉Alexa如何正确发音这个词,因为 live
有没有办法向Alexa发出正确的发音,或用正确的自定义声音替换它?我是否需要使用其他标记或API调用?
答案 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>
标记支持IPA和X-SAMPA拼音字母。您通常可以在Wiktionary或通过Google查找任何字词的IPA拼写。
对于较长的消息,最好使用<audio>
标记并录制自定义语音:
音频标签可让您提供Alexa服务在呈现响应时可以播放的MP3文件的URL。您可以使用此功能在服务的响应中嵌入简短的预先录制的音频。例如,您可以在文字转语音响应旁边添加声音效果,或者使用与您的品牌相关联的语音提供回复。
引自亚马逊文档<audio>
。