1

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

例如,如果我想让 Alexa 说出一个单词,让它成为live ,我如何告诉 Alexa 如何正确发音该单词,因为live存在两个发音。

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

4

1 回答 1

3

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

音素

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

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

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

来自关于 SSML的Amazon 文档的引用。

这是一个为 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拼音字母。您通常可以在维基词典或通过 Google 找到任何单词的 IPA 拼写。

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

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

引自亚马逊文档<audio>

于 2018-02-09T16:54:54.287 回答