专栏名称: 唤之
目录
相关文章推荐
OSC开源社区  ·  敢自称Java版PyTorch,EasyAi ... ·  2 天前  
程序员的那些事  ·  普通人如何抓住 DeepSeek ... ·  2 天前  
码农翻身  ·  DeepSeek彻底爆了! ·  3 天前  
51好读  ›  专栏  ›  唤之

基于Android Things打造AI 助手

唤之  · 掘金  · 程序员  · 2018-04-11 02:45

正文

基于Android Things打造AI 助手

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

http://img2.jintiankansha.me/get5?src=http://wx1.sinaimg.cn/large/8f2eb073gy1fpeh5buzr3j20rs07itbj.jpg

软件

  • Android Studio3.0
  • Android Things
  • Google Assistant SDK

硬件

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

image

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

image

准备

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

  • 连接 NXP Pico i.MX7D 的各个组件
  • 在板子上安装 Android Things

连接组件

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

image

安装Android Things镜像

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

image

官方的安装文档为: developer.android.com/things/hard…

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

构建应用

创建新项目

创建Android Things 项目非常简单:

  • 打开 Android Studio,选择Start a new Android Studio project
  • 在 Target Android Devices 面板勾选 Android Things

image

  • 本例中,我们需要 UI,所以选择 Android Things Empty Activity

image

  • 一路选择 next,最后我们的项目就创建完成。

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

  • 在 build.gradle 中增加了 android things 的库:
compileOnly 'com.google.android.things:androidthings:+'
  • manifest文件增加了两个点:
  1. <uses-library android:name=”com.google.android.things />

  2. 增加 intent filter 来处理IOT_LAUNCHER

image

详细的官方文档在: developer.android.com/things/trai… 。 简单来说, 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 到电脑上:

github.com/saymagic/sa…

添加Google Assistant API

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

  • 网络与应用活动记录(Web & App Activity), 需要将 包含 Chrome 浏览记录以及在使用 Google 服务的网站和应用中的活动数据(Include Chrome browsing history and activity from websites and apps that use Google services) 勾选上
  • 设备信息记录(Device Information)
  • 语音和音频活动记录(Voice & Audio Activity)

接下来:

image

image

image

  • 点击生成(Create)。会出现client ID 和 secret的弹窗。(不需要记住,直接关闭弹窗即可)

image

  • 点击 ⬇按钮去下载client ID和secret的 JSON 文件。(client_secret_NNNN.json or client_id.json)。

image

  • 打开本地带有 python 环境的终端,安装 google-auth-oauthlib , 命令为:
pip install google-auth-oauthlib[tool]
  • 前往项目的根目录
  • 将刚刚下载的client_secret_NNNN.json文件拷贝到项目的根目录下。执行下面的命令:
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 账户进行了关联,我们甚至可以让它向我们的日历中添加事件或者获取其它信息、讲笑话、查寻天气等等。这里有一个全面的清单:







请到「今天看啥」查看全文