如何阻止Alexa处理响应后打开麦克风?带屏设备无outputSpeech/reprompt场景
阻止Alexa处理响应后打开麦克风的解决方案
1. 通用设备阻止麦克风自动打开
要阻止Alexa处理完响应后打开麦克风,核心是在技能返回的响应中明确标记会话结束:
- 在JSON响应里设置
shouldEndSession字段为true,这会告诉Alexa无需等待用户后续输入,会话直接结束,麦克风不会自动激活。 - 示例JSON响应:
{ "version": "1.0", "response": { "outputSpeech": { "type": "PlainText", "text": "已完成你的请求" }, "shouldEndSession": true } }
- 如果使用ASK SDK开发(比如Node.js或Python),可以通过SDK提供的方法直接设置,例如Node.js中用
responseBuilder.withShouldEndSession(true)构建响应。
2. 带屏幕的Alexa设备(如Echo Show)特殊处理
即使未设置outputSpeech或reprompt,带屏幕的设备仍可能自动打开麦克风,此时需要:
- 必须在响应中明确设置
shouldEndSession: true,哪怕响应只有屏幕模板内容。 - 示例包含屏幕模板的结束会话响应:
{ "version": "1.0", "response": { "directives": [ { "type": "Display.RenderTemplate", "template": { "type": "BodyTemplate1", "title": "操作完成", "textContent": { "primaryText": { "type": "PlainText", "text": "你的请求已处理完毕" } } } } ], "shouldEndSession": true } }
- 避免使用会触发会话保持的交互组件,比如不需要用户点击的按钮不要设置交互事件,确保整个响应的会话逻辑是结束状态。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

