为啥我的 SSML 不能在 Alexa 设备上运行?
Posted
技术标签:
【中文标题】为啥我的 SSML 不能在 Alexa 设备上运行?【英文标题】:Why does my SSML not work on Alexa Devices?为什么我的 SSML 不能在 Alexa 设备上运行? 【发布时间】:2021-11-16 10:46:56 【问题描述】:我正在制作一个非常简单的技能来测试 Alexa 的 SSML 功能。为简单起见,我在 Alexa 的在线开发者门户中构建了整个东西。这是我在 index.js 中的 LaunchRequest:
const LaunchRequestHandler =
canHandle(handlerInput)
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
,
handle(handlerInput)
var speechOutput = '<prosody pitch="low">Hello.</prosody>';
return handlerInput.responseBuilder
.speak(speechOutput)
.reprompt(speechOutput)
.getResponse();
;
当我进入开发者控制台的测试页面并运行我的技能时,它会完全按照应有的方式运行,Alexa 会低声说“你好”。但是,当我尝试从我的任何 Echo 设备上启动相同的技能时,她会告诉我“抱歉,我遇到了问题。请稍后再试。”
我有其他不使用 SSML 的技能,它们在我的所有设备上都能正常工作,那么在这种情况下发生了什么?
【问题讨论】:
【参考方案1】:当 Alexa 回复 "Sorry, I'm having trouble. Please try it in a little while."
时,通常意味着由于多种原因之一,它甚至没有掌握该技能,因此不太可能与 SSML 相关。
这通常是互联网或设备出现问题(尝试检查更新),重新启动它通常可以为我解决这个问题。
您在设备上使用与创建技能的开发者帐户相同的开发者帐户登录吗?
如果没有,当您从其他帐户调用它时,设备将无法看到您的技能(因为它尚未启用)。另一种选择是将您的 echo 设备帐户添加为您正在分发的开发者帐户中的 beta 测试人员。
另一个原因可能是 Alexa 不理解您在说什么(发音问题或不明确的技能名称)。
要查看您说话时 Alexa 听到的内容,您可以查看您的话语历史记录、聆听您所说的内容并了解 Alexa 如何解释它以及采取的行动。
您可以在此处查看(将 .com 更改为您正在使用的任何内容):https://alexa.amazon.com/spa/index.html#settings/dialogs
【讨论】:
谢谢,但我很确定不是这些。如果我删除这种行为在我的设备上运行良好。我做了什么>
-
创建新的自定义 Alexa Skill Hosted(本地 en-US)
将调用名称设置为:“test one”
更新语音输出
const speakOutput = 'Welcome, you can say Hello or Help. Which would you like to try?';
到:
const speakOutput = '<prosody pitch="low">Welcome, you can say Hello or Help. Which would you like to try?</prosody>';
然后我在开发者控制台上测试:OK。 然后我在 Echo Dot 4 上进行了测试:OK
现在你需要调试问题所在:
在cloudwatch上登录(如果不在默认区域,试试另一个) 然后进入你的最新日志您应该能够看到这里出了什么问题。
如果不是,请提供有关您的技能(本地、日志等)以及您用于测试的设备的详细信息。
【讨论】:
以上是关于为啥我的 SSML 不能在 Alexa 设备上运行?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的简单 pytorch 网络不能在 GPU 设备上运行?