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

如何检测DialogFlow请求来源设备?及Google Home音频流式传输实现

嘿,很高兴能帮你解决这两个问题!我来一步步给你拆解:

1. 如何检测DialogFlow请求的来源设备类型?

DialogFlow接收来自Google Assistant的请求时,会在请求 payload 里携带设备的详细信息,你可以在webhook中解析这些数据来判断设备类型:

  • 首先找到请求体里的 originalDetectIntentRequest.payload 字段,这是Google Assistant传递的原始请求数据
  • 查看 payload.request.device 对象,里面的关键信息:
    • capabilities 数组:包含设备支持的能力,比如Google Home这类智能音箱会包含 actions.capabilities.AUDIO_OUTPUT;带屏幕的设备(比如Nest Hub)会额外有 actions.capabilities.SCREEN_OUTPUT
    • isHomeDevice 布尔字段:直接标记该设备是否为家庭智能设备,Google Home会返回 true
  • 举个简单的判断逻辑(以Node.js为例):
const device = agent.originalDetectIntentRequest.payload.request.device;
const isGoogleHome = device.isHomeDevice && device.capabilities.some(cap => cap.name === 'actions.capabilities.AUDIO_OUTPUT');
2. 实现Google Home流式播放音频的方案

你的核心需求是让Google Home通过流式传输播放音频,这里有两种方案,优先推荐官方集成的方式:

方案一:使用Google Assistant Media Response(推荐)

这是官方为语音助手设计的媒体播放方案,不需要直接调用Chromecast API,就能让请求来源的Google Home直接流式播放音频,步骤如下:

  • 确认请求来自支持音频输出的设备(用上面的检测方法)
  • 在webhook中构造Media Response格式的响应,包含音频的公开可访问URL(支持MP3、AAC等流式格式)
  • 示例代码(Node.js + DialogFlow SDK):
const { MediaObject, Image } = require('actions-on-google');

function playGuideAudio(agent) {
  // 检测设备类型
  const device = agent.originalDetectIntentRequest.payload.request.device;
  const isAudioDevice = device.capabilities.some(cap => cap.name === 'actions.capabilities.AUDIO_OUTPUT');
  
  if (!isAudioDevice) {
    agent.add('抱歉,这个功能仅支持智能音箱设备哦');
    return;
  }

  // 构造媒体响应
  agent.add(new MediaObject({
    name: '操作说明',
    url: 'https://your-domain.com/guide-stream.mp3',
    description: '你的操作说明音频',
    image: new Image({
      url: 'https://your-domain.com/guide-art.jpg',
      alt: '操作说明封面图'
    })
  }));
  agent.add('好的,这就为你播放操作说明');
}

这种方式的优势是自动关联请求来源设备,不需要额外的设备发现或授权,完全和语音助手的上下文结合。

方案二:原生Chromecast技术(不推荐)

如果一定要用原生Chromecasting技术,需要做更多工作:

  • 首先需要用户授权你的应用访问他们的Google账号,从而获取其Chromecast设备列表
  • 从DialogFlow请求的 device.id 字段获取设备标识符,匹配到对应的Chromecast设备
  • 使用Chromecast SDK发送流式音频请求到目标设备
  • 这种方式复杂度高,需要处理授权、设备发现等问题,而且用户体验不如官方方案流畅,仅在有特殊定制需求时考虑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:56:13