Google AIY Voice Kitを使用したスマートスピーカーの作成

### 目的
Google AIY Voice KitによるGoogle版スマートスピーカーを作成することにより、
ハードウェア構成と、使用するAPIを把握し、Google版スマートスピーカーの基本的な仕組みを理解する。

### 準備
1.スマートスピーカーの組み立て
用意したもの
・Google AIY Voice Kit
　以下の正規代理店から購入しました。
　https://raspberry-pi.ksyic.com/
　Amazonでも売っていますが高いです。

・ラズベリーパイ3 (Raspberry Pi 3B made in JAPAN) 技適対応 日本製 + 5.1V/2.5A ラズベリー財団公式アダプタ 
https://www.amazon.co.jp/gp/product/B06XCLXMG6

・マイクロSDカード（１６GBあれば充分です）

合わせて一万円で収まるくらいでした。

Google AIY Voice Kitの中身はこんな感じです。
![bb02b4f4-b2bf-4344-b495-602ea34e6336.jpg](https://qiita-image-store.s3.amazonaws.com/0/218066/7f500bcd-4cd1-78c8-45ca-a9fdfb7510c0.jpeg)
↑外観
![9dfb79db-b248-495d-b1de-dea903013e88.jpg](https://qiita-image-store.s3.amazonaws.com/0/218066/4c41aee4-0f88-1ccb-3ec8-4262aadb377a.jpeg)
↑説明書と、ダンボールの本体
![66347afe-d123-49ca-99cb-7def126ccd4c.jpg](https://qiita-image-store.s3.amazonaws.com/0/218066/1e68bf71-f28e-420c-fe38-bcb3aa52cc36.jpeg)
↑Voice HATパーツ、配線、スピーカー、LEDボタン
![a0f5f64d-f587-4f44-839e-bdfd2bf421ad.jpg](https://qiita-image-store.s3.amazonaws.com/0/218066/b57b03e9-9469-e45d-2b39-05a104738d9f.jpeg)
↑組み上がるとこんな感じ

注意：組み立てる時に#0の精密プラスドライバーと、両面テープが必要です。

参考までにGoogle AIY Projectのページ
https://aiyprojects.withgoogle.com/voice#project-overview

2.OSのセットアップ
・マイクロSDカードにOSイメージを焼きます。
　今回は、Googleが公開している全部入りのイメージを使用します。
　以下のリンクからイメージファイルをPCにダウンロード
　https://dl.google.com/dl/aiyprojects/vision/aiyprojects-2018-01-03.img.xz

　SDカードに焼く。以下のツールが使いやすかったです。
　https://etcher.io/

・SDカードをラズパイのSDカードスロットに挿入し、キーボードと、ディスプレイへのHDMIケーブルもつなぎます。

・ACアダプターをつなぐと電源が入り、セットアップが開始されます。
・セットアップが完了すると、Linux（Raspbian）のデスクトップ画面が表示されます。
<img width="1024" alt="40f77761-1e27-4aa0-91b8-6a8bea1391c9.png" src="https://qiita-image-store.s3.amazonaws.com/0/218066/2091491e-1fb8-6e5d-704f-c27cc81029ae.png">

・インターネット接続が必要なので、LANケーブルを本体に接続するか、Wifiがある場合は、この画面から設定できます。

ちなみにOSは英語環境なので、日本語環境にしたい場合は設定が必要です。（Linuxの知識が必要です。）
https://qiita.com/t114/items/1ae469c5538a1bc83b14

・ネットワーク接続・スピーカー・マイクの動作確認
　デスクトップの「Check audio」を起動する。スピーカーとマイクの動作確認を行います。
　デスクトップの「Check WiFi」を起動する。Wifi接続確認を行います。（有線Lanの場合は不要）



3.Google Assistant APIの設定（ここが大変でした）
以下の設定は、Linux（Raspbian）上で行った方がいいです。
　・Google Cloud Consoleのログインする。
　　https://console.cloud.google.com/
　・以下の手順を行う。長いので、以下のURLを参照してください。
　　　プロジェクトの作成
　　　Google Assistant APIの有効化
　　　認証情報（OAuth クライアントID）の作成
　　　認証情報jsonファイルのダウンロード
　　　https://yuki-no-yabo.com/software-install-for-aiy-voice-kit/
　・認証情報jsonファイルの配置
　　ダウンロードしたjsonファイルを「/home/pi」配下に移動し、リネームします。

```
cd Downloads
mv client_secret_~.apps.googleusercontent.com.json /home/pi/assistant.json
```

　・アクティビティ管理画面を開き、以下の項目を有効化します。
　　①ウェブとアプリのアクティビティ（「Chrome の閲覧履歴と Google サービスを使用するウェブサイトやアプリでのアクティビティを含める」にもチェック」）
　　②端末情報
　　③音声アクティビティ
　　https://myaccount.google.com/intro/activitycontrols


4.OK Googleしてみる（スマートスピーカー動作確認）
　・デスクトップ上の「Start dev Terminal」を起動する。
　・開いたウィンドウ内で、以下のコマンドを実行。
　　　`src/assistant_library_demo.py`
　・これで、待機状態になりますので、OK Googleと言ってみて上のLEDボタンが光れば、OKです。（ただし英語版なので、発音に気をつけてください。日本語英語は通じません。）

[![mp4](/images/file_icons/movie.svg) 20180117\_114200.mp4](https://docbase.io/file_attachments/64e935d5-ace6-4333-8ab9-e81124b23658.mp4)
↑今日の天気を聞いてみた動画

　　

5.その他便利な設定など
・リモートでLinuxにつなぐ時にipアドレスを打ちたくない。（IPは、DHCPから払い出されるので変わります）
　Googleの全部込み込みイメージでは、avahi設定がしてあったので、ホスト名+.localでつなげますが、一応設定方法を載せておきます。
https://qiita.com/kimio_kosaka/items/0fd1e76d060df606d674
     
・リモートデスクトップ接続したい。（PCがMacなら設定後普通につなげます）　　　http://darmus.net/raspberry-pi-mac-vnc/

・ラズパイ起動時にGoogleアシスタントを自動起動したい
https://qiita.com/p_on_ro/items/d6d97d62095a651a9641


### 感想
Google Assistant API設定以外は、意外と簡単でした。
また、ラズパイ３の性能がいいので、IOTおもちゃとして、色々使えるので面白そうです。

↓これがすごいと思いました。
http://senyoltw.hatenablog.jp/entry/2016/12/16/043456

普通にOK Googleしたい場合は、Googleから販売している製品を買ったほうがいいです。
https://store.google.com/product/google_home?hl=ja



### 今後やりたいこと
・Google Assistantの日本語化
　最新のGoogle Assistant APIでは、日本語対応している。しかしうまくいかないので頑張って日本語化したい。
　https://kureuetan.com/web/iot/4818/

・Google Assistant API以外のAPIも使ってみる。
　音声認識プログラムを作ってみたいです。アレクサでいうスキルみたいなやつ
（今回の環境は、Pythonでした）

・アレクサも一緒に動かす。
　実現した強者がいるみたいなので、ぜひやってみたい。
   https://qiita.com/Dimeiza/items/2dcd6c48a9c0b02ccf2c