基于Android Things打造AI 助手

如何基于 Iot 打造一个简单的 AI 助手呢?

https://raw.githubusercontent.com/saymagic/pic/master/8f2eb073gy1fpeh5buzr3j20rs07itbj.jpg

软件

硬件

Android Things 目前支持了如下的板子:

image

本文中,我们将选取NXP Pico i.MX7D 作为我们的开发板。

image

准备

首先需要进行如下两个步骤:

连接组件

大家可以按照 Google 官方提供的文档来安装:https://developer.android.com/things/hardware/imx7d-kit.html。当我们完成安装时,帅气的板子如下:

image

安装Android Things镜像

在安装完开发板之后,我们需要在开发板上安装Android Things镜像。

image

官方的安装文档为:https://developer.android.com/things/hardware/imx7d.html

如果无法访问或者更喜欢中文的话可以查看 Google 推广工程师的视频: http://v.youku.com/v_show/id_XMzI0NDI3NjcxMg==.html

构建应用

创建新项目

创建Android Things 项目非常简单:

image

image

Android Things 项目与普通有的 Android 项目有几处不同:

compileOnly 'com.google.android.things:androidthings:+'
  1. <uses-library android:name=”com.google.android.things />

  2. 增加intent filter来处理IOT_LAUNCHER

image

详细的官方文档在:https://developer.android.com/things/training/first-device/create-studio-project.html。 简单来说,IOT_LAUNCHER用于表明当在 IOT 设备上时,应该启动哪个 Activity,uses-library表明在运行时保证Android Things相关的库可用。

构建Hello World

完成上面之后,为 Android Things构建一个 Hello World 的 UI 程序 就和构造普通的手机/平板程序没有什么差别了。本例当中,我们在 Activity 中 增加一个按钮,点击之后弹出Hello World提示。

当编写完毕之后,将开发板通过 USB连接到电脑,我们直接像运行Android 程序一样,就可以将我们的项目安装在开发板上。

image

Simple AI 项目

有了前面的基础,我们可以更进一步, 打造一个 AI 助手。这个项目需要下面的步骤:

初始化工程

将下面的仓库clone 到电脑上:

https://github.com/saymagic/sample-googleassistant

添加Google Assistant API

在这里https://myaccount.google.com/activitycontrols开启Assistant需要用到的功能:

接下来:

image

image

image

image

image

pip install google-auth-oauthlib[tool]
google-oauthlib-tool --client-secrets client_secret_NNNN.json \ --credentials app/src/main/res/raw/credentials.json \ --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --save

当录音结束后,声音会提交给Google Assistant API,然后我们会得到 Google 的回馈音频。因为我们已经将服务与我们的 Google 账户进行了关联,我们甚至可以让它向我们的日历中添加事件或者获取其它信息、讲笑话、查寻天气等等。这里有一个全面的清单:

https://www.androidauthority.com/google-home-commands-727911/

image

扩展材料

Dave Smith有一个非常高质量的关于AndroidThings 的介绍。如果关于对 Android Things是什么、如何向别人介绍Android Things等感兴趣推荐看一下。

image

Rebecca FranksWayne Piekarski 在GDD上对 Android Things有非常好的介绍。

image

image

值得一提的是,我在今年的 IO 大会的 Android Things 展厅上也见到了Wayne Piekarski本人,他非常 nice的介绍了几个 Google 的 Android Things 模型,包括可以玩石头剪刀布的机器手臂、集成了 Tensor Flow 的机器人等等。