首页 > 解决方案 > 助手在等待用户输入时完成通话后麦克风自动拾取

问题描述

我遇到了一个有趣的问题,谷歌助手的麦克风正在拾取助手所说的上一条消息的结尾作为用户的响应。目前,这只是安卓手机的问题,而不是家庭迷你。似乎这只发生在它所说的消息很长时,我的大部分时间都超过 25 秒。

因此,例如,消息将是 app.ask() 的 30 秒的最后 5 秒,带有“你想听到这个重复吗?” 并且麦克风可能会拿起“喜欢听到重复的声音”,然后尝试处理它,这当然是出乎意料的。

有没有其他人遇到过这个问题或解决方法?我在 simpleResponse 中使用 SSML(Node.js 1.0,尚未迁移。)所以我尝试在最后插入几秒钟的中断,但没有解决它,以及在更长的持续时间后说些什么最后打破希望麦克风会打开,但这并没有解决它。任何人有任何想法如何解决它?

附加信息:

直到讲话完成后,麦克风才会转换其形状,但随后会从图标转换之前拾取它自己的口语。

我尝试了更多的故障排除,并使其更具确定性。有两种进入行动的方式。一个是要求与它交谈,另一个是询问该操作是否可以提供在开始与它交谈后随后会被要求的数据。(显式调用,与调用动作时的显式调用。)这仅在请求与其交谈并随后请求数据时发生

确保每个<sub alias=...></sub>标签都有一个与之关联的值<sub alias = "Yes">No</sub>也没有解决。

我的代码在读数中有多个子别名标签 (>10)。将它们全部编译成一个大的别名块也没有解决。

确认这发生在其他安卓设备上。

标签: actions-on-googledialogflow-es

解决方案


我最终无法直接解决这个问题。

由于我有丰富的响应,我的解决方案是在第一个响应之后简单地添加第二个(在撰写本文时只能有两个)对丰富响应的简单响应,以确保麦克风不会自行拾取。

app.buildRichResponse()
    // Create a basic card and add it to the rich response
    .addSimpleResponse(output[0])
    .addBasicCard(app.buildBasicCard(output[1])
        .setTitle(title)
        .setSubtitle(subtitle)
        .addButton("Online Link", "URL HERE")
    )
    .addSimpleResponse("Would you like this repeated?")

推荐阅读