Google Assistant Action - 隐式调用体验

Posted

技术标签:

【中文标题】Google Assistant Action - 隐式调用体验【英文标题】:Google Assistant Action - Implicit Invocation Experience 【发布时间】:2020-01-31 18:20:43 【问题描述】:

我目前正在开发 Google 助理操作。我理解谷歌描述的Implicit Invocation,根据我测试我自己的应用程序的经验,我非常理解它像他们描述的那样工作。

流程如下所示:

User: Ok Google, what's a good recipe I can make?
Google Assistant: Okay. For that, you might like < Your App Here >. Wanna give it a try?
User: Yes
Google Assistant: Opening < Your App Here >
Google Assistant: You should make spaghetti!

有道理。我问它一个一般性问题,它问我是否愿意使用某种服务来满足该请求。

为什么不是每个动作都这样?例如,音乐。

User: Ok Google, play blink-182
Google Assistant: Playing blink-182 on Spotify

好的。我将 Spotify 配置为我的默认音乐播放器,播放音乐是开箱即用的标准 Google Action。我可以理解为什么它会跳过确认并直接进入应用程序。

我从 Internet 下载的随机服务怎么样?喜欢this one。

User: Ok Google, enable study mode
Google Assistant: I'll make sure no one disturbs you

什么?!

没有确认?

Google 助理如何知道我想使用 IFTTT 服务并使用该服务中的意图来完成请求?显然可以改善 Google Assistant 操作的隐式调用体验,这样如果您的设备上没有安装明显的竞争服务,它将继续选择适当的服务并执行请求。

你到底是怎么做到的?

【问题讨论】:

【参考方案1】:

关于如何处理调用有很多事情要做,所以让我们看看你概述的那些,以及你没有提到的一些。

Explicit Invocations

You: Ok Google, talk to Shakespearean Insult
GA:  Ok, Here's Shakespearean Insult
SI:  ...

最直接的方法是通过您指定的名称调用您的操作。由于这是一个独特的名称,Google 可以直接在 Assistant 语音和您的 Action 语音之间进行切换,尽管如果用户使用得足够多,该切换部分会越来越短。因此,如果您与莎士比亚侮辱(在我们上面的示例中)交谈足够多,或者连续交谈足够多,对话就会变成:

You: Hey Google, talk to Shakespearean Insult
SI:  ...

Google 不清楚何时会发生这种情况,或者什么情况下会触发它,但它会发生在您最常使用的操作上。

Implicit Invocations

You: Ok Google, I need a chicken soup recipe.
GA:  Sure. For that, you might like Personal Chef. Wanna give it a try?

这些旨在帮助用户解决“发现问题” - 如果您不知道 Actions 的名称,而只是知道您希望他们做什么,如何找到它们。在某些方面与搜索引擎优化 (SEO) 类似,这使您可以添加也会触发您的操作的调用短语。但是,由于许多 Action 可能支持这些相同的短语,因此 Google 会验证用户想要使用的 Action。

在某些情况下,Google 还会查看哪些短语被用作您的操作的一部分,并且如果用户提出问题或尝试做某事,则可能会将您的操作作为直接响应的一部分。

与显式调用类似,如果用户选择了足够多的相同操作,那么如果这是他们希望使用的操作,Google 可能会停止提示。同样,确切的级别尚不清楚,但有可能。

Built-in Intents

You: Hey Google, I'd like to play a game.
GA:  Alright, I have a few options for that ... Which one would you like to try?

这类似于隐式调用,但不同之处在于可能的调用短语已由 Google 确定。开发者可以注册 Action 来接受这些内置的 Intent。

目前,只有“玩游戏”意图是公开可用的,但 Google 表示他们希望随着它们的开发和国际化推出更多。

音乐和Smart Home 命令

You: Ok Google, play blink-182
GA:  Playing blink-182 on Spotify
You: Turn on the living room light
GA:  <rising tone>

这些类似于内置 Intent 的工作方式,因为 Google 已经确定了可以调用不同 Intent 的短语。但是,不同之处在于两者都需要与 Google 更紧密地集成,因为用户通过 Google Home 应用中的控件来指定两者。

IFTTT

IFTTT 在 Google 助理中内置了特殊支持,但与其他会话操作相比,它存在一些限制。不需要明确的确认,因为您已经采取了明确的措施来启用小程序 - 您必须将您的帐户链接到 IFTTT 并设置小程序。这也不是必需的 - 因为 Applet 所能做的只是说出一件事然后关闭,而那一件事是由用户设置的。

Routines

You: Hey Google, Good Night
GA:  <declining tone>
GA:  Ok, playing relaxing sounds for 30 minutes
You:  Hey Google, record my weight
GA:   Getting Vodo Drive
Vodo: Ok, I've added a row to the spreadsheet named weight. What would you like to set today's weight to?

您在示例中没有提到改进调用短语的一件事是,用户可以使用例程设置他们自己想要的短语。这类似于 IFTTT,因为它具有一些内置集成,但需要用户显式创建它们。例程就像别名一样,您可以在其中设置一些命令,当您说某事时,助手将执行这些命令。

用户可以使用 Google Home 应用设置例程。 Google 提供了一些例程的名称,例如“早安”和“晚安”,但您也可以使用您想要的任何名称创建自己的例程。在上面的示例中,我有一个名为“记录我的体重”的例程,我告诉 Google,它相当于命令 ask Vodo Drive to add a row to weight,它将调用 Vodo Drive 操作来打开电子表格,向其中添加一行,并提示我供参考。

虽然一些内置例程将您限制为非对话式操作,但设置自定义例程可为您提供更大的灵活性。

总结

开发人员有一些(但不是很多)方法来获得更好的调用短语。然而,当用户利用它们时,谷歌会确保他们使用的不是谷歌的东西——而是第三方操作。随着时间的推移,Google 会改进这一点,因为很明显用户接受了这一点。

用户有一些方法可以自己设置更好的调用短语。在这种情况下,由于用户明确设置了针对第三方的设置,因此 Google 在这些情况下更加灵活,因为用户已经确认了这种第三方交互。

【讨论】:

(免责声明:Vodo Drive 和 Shakespeare Insult 都是我开发的动作,仅用于说明。)

以上是关于Google Assistant Action - 隐式调用体验的主要内容,如果未能解决你的问题,请参考以下文章

Google Assistant 的银行操作是不是必须使用交易 API?

启动 Google Assistant 语音交互

如何禁用 Google Assistant API(现在点击)

如何以编程方式启动 Google Assistant?

在 Google Assistant App 中拨打电话

为啥 Google Assistant 无法朗读某些页面?