使用 Dialogflow 和 webhook 收听广播
Listen to the radio with Dialogflow and a webhook
我想在我自己的应用程序中收听广播,该应用程序使用 webhook(托管在 firebase 上)通过 dialogflow 制作。
我看到了 dialogflow 的预构建代理示例,但它只有助于创建意图,而不是如何播放收音机。
我知道我们可以使用 SSML 或 mp3 文件流式传输音频,但我从未见过有关收音机的任何内容?
我知道这是可能的,因为我可以让我的 Google Home Mini 播放电台,但是是否可以创建一个可以播放电台的应用程序?
如有任何指示,我们将不胜感激。
您要解决两个略有不同的问题。
无线电流,例如您正在谈论的 France-Inter 流,仍然需要直接与 Google 或现有流媒体服务之一协调。
对于您自己的音频文件,SSML 肯定是一个问题,但是您可以使用 Media Response 来处理您想要的。 Dialogflow 将使用 actions_intent_MEDIA_STATUS
事件调用,您可以创建一个 Intent 来捕获。然后您可以使用播放列表中的下一首歌曲发送另一个媒体响应。
根据您的评论更新。
要保持您在播放列表中的位置,您应该 . Firebase cloud functions do not guarantee that you will get the same instance two calls in a row. There are a few good approaches 归结为
- 使用 Dialogflow 上下文存储位置
- 将位置存储在某些数据存储(如 Firestore 数据库)中并使用会话 ID 对其进行索引 或
- 对 Google 库
app.data
对象使用操作
我想在我自己的应用程序中收听广播,该应用程序使用 webhook(托管在 firebase 上)通过 dialogflow 制作。 我看到了 dialogflow 的预构建代理示例,但它只有助于创建意图,而不是如何播放收音机。
我知道我们可以使用 SSML 或 mp3 文件流式传输音频,但我从未见过有关收音机的任何内容?
我知道这是可能的,因为我可以让我的 Google Home Mini 播放电台,但是是否可以创建一个可以播放电台的应用程序? 如有任何指示,我们将不胜感激。
您要解决两个略有不同的问题。
无线电流,例如您正在谈论的 France-Inter 流,仍然需要直接与 Google 或现有流媒体服务之一协调。
对于您自己的音频文件,SSML 肯定是一个问题,但是您可以使用 Media Response 来处理您想要的。 Dialogflow 将使用 actions_intent_MEDIA_STATUS
事件调用,您可以创建一个 Intent 来捕获。然后您可以使用播放列表中的下一首歌曲发送另一个媒体响应。
根据您的评论更新。
要保持您在播放列表中的位置,您应该
- 使用 Dialogflow 上下文存储位置
- 将位置存储在某些数据存储(如 Firestore 数据库)中并使用会话 ID 对其进行索引 或
- 对 Google 库
app.data
对象使用操作