You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何延长Dialogflow机器人监听时长?解决Google Actions Bot输入丢失问题

解决Google Actions语音输入停顿截断问题的方案

我之前开发类似多语音输入的Action时也碰到过这个问题——用户中间停顿一下,后面的内容就被截断了。刚好可以给你几个可行的解决思路:

1. 调整Actions Console的语音识别预期设置

Google Assistant的语音监听超时是根据预期输入长度自动调整的,你可以在Actions Console里手动设置让它预期更长的输入:

  • 打开你的项目,进入Settings -> Interaction -> Speech
  • 找到Expected speech duration选项,选择Long
    这个设置会让Assistant延长对用户输入停顿的容忍时间,默认的短停顿超时会被拉长,更适合用户慢慢说出多个单词的场景。

2. 在代码里配置监听超时参数(Actions SDK v3)

如果你用的是actions-on-google的v3版本,可以通过Listen类直接设置静默超时时间,比如把停顿容忍从默认的1秒左右调到3秒:

const { conversation, Listen, SimpleResponse } = require('@assistant/conversation');
const app = conversation({ debug: true });

app.handle('repeat_words_intent', async (conv) => {
  // 先给出要重复的单词提示
  conv.add(new SimpleResponse({
    text: "请重复这10个单词:猫、狗、树、花、太阳、月亮、车、书、笔、杯子",
    speech: "<speak>请重复这10个单词:猫、狗、树、花、太阳、月亮、车、书、笔、杯子</speak>"
  }));
  // 配置监听参数,延长静默超时到3秒
  conv.add(new Listen({
    silenceDuration: "3s",
    // 可选:添加语音识别提示词,提高识别准确率
    speechBiasingHints: ["猫", "狗", "树", "花", "太阳", "月亮", "车", "书", "笔", "杯子"]
  }));
});

这个设置会让Assistant在用户停顿3秒后才停止监听,足够用户思考或停顿后继续说出剩下的单词。

3. 分段收集输入作为 fallback 方案

如果上面的设置还是无法覆盖所有场景(比如用户停顿超过3秒),可以用上下文(Context)来分段收集输入:

  • 在Dialogflow里创建一个上下文,比如collecting_words,设置生命周期为2-3轮
  • 当用户第一次输入后,在Webhook里判断输入的单词数量是否达到10个
  • 如果没达到,返回一个追问的提示(比如“还有吗?请继续说剩下的单词”),保持上下文活跃
  • 用户继续输入后,在Webhook里把两次输入的内容拼接起来,直到收集到足够的单词

这种方式更灵活,完全不受监听超时的限制,适合需要用户分多次输入的场景。

注意事项

  • 测试的时候尽量用真实的Google设备(比如Google Home或手机上的Google Assistant),模拟器的语音输入处理逻辑和真实设备可能有差异
  • 给语音识别添加提示词(speechBiasingHints)不仅能提高准确率,也能让Assistant更清楚用户可能输入的内容,减少截断的概率

内容的提问来源于stack exchange,提问作者Pawder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:09:51