为啥我的 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

【讨论】:

谢谢,但我很确定不是这些。如果我删除 标签并部署它,那么相同的技能会立即在我的所有设备上运行。很可能它根本没有达到技巧,但我必须假设这是因为 SSML 的存在导致构建以某种方式中断。【参考方案2】:

这种行为在我的设备上运行良好。我做了什么>

    创建新的自定义 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 设备上运行?的主要内容,如果未能解决你的问题,请参考以下文章

Alexa 技能 SSML 最大长度

为啥我的简单 pytorch 网络不能在 GPU 设备上运行?

错误:无法解析提供的 SSML。提供的文本无效 SSML

为啥应用内购买方法可以在模拟器上完美运行,但不能在真实设备 iOS 6 上运行?

使用虚拟 Alexa 设备进行持续集成?

Alexa.Discovery 响应:Alexa 未检测到设备