conv.ask() 等到音频完成

conv.ask() wait until audio is complete

我正在使用 actions-sdk 和 nodejs 构建 'game'。对于此游戏,一项功能要求在接受用户输入之前完成音频。是否可以使用 conv.ask() 忽略文本意图的输入,直到音频完成?无论如何,当音频完成时,是否可以在 conv.ask() 上进行回调?

您可以使用媒体回应:https://developers.google.com/actions/assistant/responses#media_responses

音频结束时有回调。在回调中,您可以执行 conv.ask 来提示用户输入。

这是 Google 助理的正常行为 - 麦克风会保持关闭状态,直到音频播放完毕,然后它会打开麦克风供用户回复。但是 - 用户可以随时使用热词 ("Hey, Google") 中断智能助理。没有办法阻止它,但不清楚为什么要阻止他们这样做。

也无法在传送音频时进行回调。请记住,conv.ask() 在您的服务器上运行 - 而不是在本地设备上运行(尽管音频是在该设备上播放的)。

如果您想做一些事情,比如提出问题,然后给他们 15 秒的时间来回答,您可以看看媒体回应是否有帮助。如果您在提问时连同媒体回复,他们可以用 "Hey Google" 和答案打断音频,或者媒体将结束并在完成后向您发送事件。