我很确定这个问题的答案是“不”,但我想无论如何我都会分享这个问题,以防其他人有一个聪明的解决方法:)
我正在构建一个食谱操作,因此用户可以说“让我们做玉米饼汤”,然后说“下一步”以继续进行食谱的下一部分。在每个步骤之间可能会有很长的停顿,因为用户正在切菜等。 Home 是否可以无限期地等待用户响应或等待几分钟?目前,它会等待几秒钟,然后说“对不起,我不明白那个响应”之类的内容,并最终退出操作。
强迫用户一遍又一遍地执行“好的,谷歌,让我跟大厨说话”这个动作是很烦人的,我认为,在每一步之后都需要立即结束对话,否则设备会挂起并说“对不起我不明白”。
更新
通过滥用 SSML,我发现了一种非常老套的方法。<break/>
有两种选择,可以叠加
assistant.ask(`<speak><break time="120s"/><break time="120s"/></speak>`);
这实际上导致 Home 播放非常奇怪的嗡嗡声。开发人员可能想看的东西:D
另一种选择(避免无人机)是播放 2 分钟的无声音频剪辑。根据文档,2 分钟是限制,<audio>
但您可以将它们堆叠起来。我刚刚证实你可以让它在那里至少坐十分钟。
assistant.ask(`<speak><audio src="https://.../pause.mp3">hello</audio><audio src="https://.../pause.mp3"></audio></speak>`)
当它像这样暂停时,您不能直接与代理交谈,但您可以说“OK Google,[whatever command]”,该命令实际上会传递给代理。