クラウド同上

自分だけの Google Home を作ってみた〜Voice Kit で Google Assistant APIを使って

Author
Daiko
Lv:4 Exp:490

2018年9月入社ーシステム開発部所属
GCPに関する知識を急速に吸収中です。

こんにちは

自作で Google Home のようなものが作れる Kit 「 Voice Kit 」をご存知でしょうか。
Voice Kit とは Google が開発したインテリジェンススピーカーのことで、音声認識やGoogle Assistant を試すことができるキットです。

昨年、会社の忘年会イベントがあり、 Google 関連の景品がある中、
Voice Kit が見事当たりましたので、せっかくなんでVoice Kit で色々やってみました。

今回作ったVoice Kitのシステム構成図

現在のバージョンには英語のオンラインマニュアルしかありませんが、マニュアルを見ながらVoice Kitを組み立てていきました。

それでは Voice Kit を組み立ていきましょう。

▼ Google Home を自分で作成できる Voice Kit の紹介


今回、自分だけの Google Home を作るために、Voice Kit と Google Assistant API を利用して作成しました。
Voice Kit とは Google が開発したインテリジェンススピーカーのことで、音声認識やGoogle Assistant を試すことができるキットです。
他に何ができるかというと、Google Assistant 機能以外にマイク機能があるので音声認識を使ったプログラムを動かすことができます。

設定作業には PC が必要ですが、Voice Kit の最新版のV2 から Raspberry Pi が 付属しているので Voice Kit を購入するだけで自分だけのGoogle Home を製作することができます。
また、ドライバーは必要ですが、組み立てる際にはんだづけが不要なので子供から作成することができます。

▼ 実際に箱を開封して見ました。


スピーカー部品やボタンとRaspberry Pi が入っています。
Raspberry Pi は存在は知っててたのですが、初めて実物みて思ったより小さくてびっくりしました。
同梱しているものはダンボールですが、木の板とか買ってきて箱を作っても良さそうですね。

▼ Voice Kit を組み立てる上で必要なもの。

Voice Kit に入っていないもので必要なものがあるので準備をしましょう。
・PC
・Google アカウント
 ※Google Cloud Platform を利用するので必要です。
  apps-gcp に作り方の記事があるので参考に用意お願いいたします。
  初心者のためのGCPプロジェクト始め方入門
・microSDカードをPCに繋ぐためのケーブル
 ※スロットがない場合に必要です。最新版のシステムイメージをダウンロードする必要がある。
・2mmのマイナスドライバ
 ※スピーカのケーブルと基盤を接続に必要。
・USB電源アダプタ
・スマートフォン
 ※専用のアプリをダウンロードしてVoice Kit のWi-Fi 設定をするのに利用しました。PCでも設定できますので必須ではありません。
Voice Kit の中身はAIY プロジェクトのページに記載されていますのでそちらで確認ください。

▼ Voice Kit を作る。

AIY プロジェクトのVoice Kit のページに製作方法がありますのでそれを見ながら製作して行きました。
https://aiyprojects.withgoogle.com/voice/

▼最新版のシステムイメージを取得する。

Voice Kit には追加のAIYソフトウェアを含む最新版バージョンの Raspbian オペレーティングシステムが必要なのでシステムイメージの最新版を取得から始めます。
Voice Kit に含まれているMicroSDカードにもシステムイメージがインストールされていますが、古い可能性があるため念の為、最新版をインストールします。

1)Raspbian最新版取得先を開きます。
https://github.com/google/aiyprojects-raspbian/releases

2)赤枠のaiyprojects-2018-11-16.img.xzをクリックし、img.xzをダウンロードします。
3)付属のmicroSDカードを PC に繋ぎます。
4)balenaEtcherなどのツールを使ってimg.xzファイルをmicroSDカードにインストールします。
ここではbalenaEtcherを使ってimg.xzファイルをインストールしています。
5)balenaEtcher を開きます。

6)Select image をクリックし、先ほどダウンロードしたimg.xzファイルを選択します。

7)Select drive をクリックし、microSDカードのドライブを選択します。

8)Flash! をクリックします。

クリックすると下記のような画面が表示されてインストールが始まります。

システムイメージをカードにインストールするのに数分かかることがあります。

完了後は下記のように表示されます。

OS の準備が完了したので Voice Kit の組み立て作業に進んでいきましょう。

▼内装部分を組み立てていきます。

まずは、外装の中に入れる部品となる部品11の内部フレーム用ボール紙を組み立てて行きます。
公式サイトの FOLD THE INTERNAL FRAME をみながら作成していきましょう。

▼ボード部分を繋いでいきます。

ここでは、ボードやスピーカーを繋げて行きます。
公式サイトの CONNECT THE BOARDSをみながら作成していきましょう。

ここで使う部品の Raspberry Pi は小型のコンピュータになります。
Voice Bonnet は2つのマイク、スピーカーコネクタ、LEDボタンコネクタ、そして特別なオーディオコーデックプロセッサの機能があります。

ボード部分を繋ぐ作業で補足事項は以下です。
・11 Insert standoffs の作業では プラスチック スペーサーを右の穴に2つ差しますが、結構硬いので力を加える必要がありますのでボードが曲がらないように左右を持ってカチっとなるまで差し込んでください。
・14 Loosen screws の作業ではスピーカーとボードを接続する作業しますが、
その前にスピーカーの線を繋ぐために赤い部分の2つのネジを 2mm のマイナスドライバーでゆるめます。

▼外装部分を組み立てていきます。

次は、外装箱用ボール紙を組み立てて行きます。
公式サイトの PUT IT ALL IN THE BOX をみながら作成していきましょう。

組み立て際にコネクタ部分の穴が一致していない場合は、外装に力を加えたりして合わせてください。

▼ボタン部分を組み立てていきます。

Voice Kit の組み立てもあともう少しです。それでは、ボタン部分を作って行きましょう。
公式サイトの ADD THE BUTTON をみながら作成していきましょう。

ほとんどの工程を公式サイトを見ながら簡単に作成することができました。
自分だけの Google Home が誕生しました。

▼Voice Kit にログインしてみましょう。

先ほどできた Voice Kit に電源をいれてみましょう。
ここでは Wifi の設定まで実施して、Voice Kit にログインできる準備をします。

公式サイトの OPTION 1: AIY PROJECTS APP をみながら設定していきましょう。

AIY Projects app の手順について補足します。

1)AIY Projects app を起動し、GET STARTED ボタンを押します。

2)Voice Kit ボタンを押します。

3)CONTINUE を選択します。

4)Voice Kit の蓋を開けて CONTINUE を選択します。

5)基盤の真ん中に黒い小さいボタンがあります。押して5秒くらい待つと緑色に点滅するようになります。
  緑色に点滅後、 CONTINUE を選択します。

6)スマホと Voice Kit のペアリングを行います。ALLOW ACCESS を選択します。

7)少しの間待つと、下記のように Voice-Bonnet が現れるので Voice-Bonnet を選択します。

8)ペアリングが完了するとWi-Fi の選択画面が表示されます。

Wi-Fiの選択画面が表示されない場合はリトライします。私の時も何回かリトライする必要がありました。

9)Wi-Fi の接続が完了するとIPアドレスが設定されます。
  この状態になるとSSH でVoice Kit に接続するため準備が完了したことになります。
  これで、Voice Kit の組み立てが完了しました。お疲れ様でした。

▼ Google Assistant を設定しよう。

Voice Kit の組み立て作業が完了してVoice Kit にアクセスできる状況になりました。
PC から SSHでアクセスして Google Assistant のセットアップをして行きましょう。

▼Voice Kit にログインしよう。

Voice Kit には SSH を使ってログインします。

公式サイトの SSH TO YOUR KIT をみながら実施してみましょう。

1)SSH でアクセスするための Tool を準備します。ここでは Chrome の拡張機能のSecure Shell Extension を使っていきます。

2)インストールが完了すると Chrome の右上らへんに黒いアイコンが表示されます。

3)Secure Shell Extension を起動すると接続ダイアログが表示されるのでクリックします。

4) pi@192.168.100.124 は名前になるので分かりやすい名前としてください。
pi はユーザ名となるので pi は変更しないでください。
192.168.100.124 のアドレスはAIYアプリで表示されているIP アドレスを入力してください。
入力後。[ENTER] 接続ボタンを押下します。

5) Are you sure you want to continue connecting (yes/no)? と表示されたら yes を入力します。

6) password と表示されたら raspberry を入力します。

7) SSH 接続ができるとRaspbian OS に接続されます。
Raspbian OS は Debian ベースにRaspberry Pi ハードウェア用に最適化されたOS のようです。

▼Audio 機能を確認しよう。

Voice Kit を組み立て時にスピーカーを接続しましたが、正しく接続できているか確認していきましょう。

公式サイトの VERIFY AUDIO WORKS をみながら実施してみましょう。
ここでは手順に沿って説明します

1)Audio が機能しているか下記コマンドを実行することで確認することができます。
少し大きいので実行する場合は気をつけてください。
コマンド

$ /home/pi/AIY-projects-python/checkpoints/check_audio.py

2)声が聞こえたか尋ねてくるので y を入力します。さらに Enter キーを押下すると、録音が始まります。
その後録音メッセージが聞こえた場合はさらに y を入力します。最後に Enter キーを押下してプログラムを終了します。

3)音声のボリュームを調整するためのコマンドも用意されています。キーボードの矢印キーの上下で調整できます。
終了する場合は esc キーで抜けます。私は 60 くらいがちょうどよかったです。

コマンド

$ alsamixer

▼認証情報を取得して設定しよう。

Voice Kit と GCPプロジェクトの認証情報を紐付ける作業を行います。

公式サイトの GET CREDENTIALS をみながら実施していきます。
ここでは手順に沿って説明します。

(1) GCPコンソールを開き、新規プロジェクトを作成して行きましょう。
プロジェクト名は好きな名前で構いません。入力したら作成ボタンを押して作成していきます。

(2) プロジェクトが作成されると Home 画面が表示されます。

(3) Google Assistant API を有効にします。
左上のナビゲーションメニュー→API とサービス→ライブラリの順にクリックしていきます。

(4) API とサービスの検索欄に Google Assistant と入力します。

(5) Google Assistant API をクリックし、有効ボタンを押下します。

(6) Voice Kit がこのプロジェクトにアクセスできるように認証情報を作成します。
認証情報作成ボタンを押下します。

(7) 使用する API を選択します。選択…と表示されているプルダウンをクリックしてGoogle Assistant API を選択します。

(8) API を呼び出す場所については その他の UI (Windows 、CLI ツールなど )を選択します。

(9) アクセスするデータの種類については ユーザーデータを選択します。
そして必要な認証情報ボタンを押します。

(10) 次に、OAuth 2.0 クライアント ID を作成します。
名前は Voice Kit としています。(自由に付けてください。)
そして、 OAuth クライアント ID を作成ボタンを押します。

(11) まず、メールアドレスを選択します。(アカウントと同じもので良いです。)
そして、ユーザーに表示するサービス名をVoice Kit と入力して
次へボタンを押下します。

(12) Voice Kit で利用するための認証情報をダウンロードします。
ダウンロードボタンを押します。

(13) ダウンロードした認証情報を開いてテキスト内容をコピーします。
Voice Kit 上で テキストエディタを開き、認証情報を貼り付けます。
ここではマニュアル通りに nano コマンドを利用します。
コマンド

$ nano assistant.json

(14) 認証情報を貼り付け、貼り付けた最後で改行します。

(15) control + O を入力して return キーを押下し、ファイルを保存します。

(16) control + X を入力してnano エディタを終了させます。

(17) assistant.json が作成されたか ls コマンドで確認します。
コマンド

$ ls

(18)次の作業のために Demo フォルダに移動します。
コマンド

$ cd AIY-voice-kit-python

▼ Google Assistant のデモプログラムを動かしてみよう。

それでは、 Voice Kit に元からインストールされている Google Assistant のデモプログラムを動かしてみましょう。

公式サイトの RUN THE ASSISTANT DEMO をみながら実施してみましょう。

1)DEMO ファイルを起動します。
コマンド

$ src/examples/voice/assistant_grpc_demo.py

2)起動後に表示される url をコピーしてPC のブラウザでアクセスします。

3)アクセス許可の画面が表示されるので許可ボタンを押下します。

4)コードが表示されるのでコピーして先ほど DEMO プログラムに貼り付けます。

5)DEBUG ログが下記のように出力され、「INFO:root:Press button to start conversation…」と表示されたら Voice Kit の上のボタンを押します。表示されない場合は認証情報の貼り付けが失敗している可能性がありますので再度、認証情報の「 assistant.json 」を作成しましょう。

6)「Recording started.」と表示された後に「あいうえお」と言うと下記のように表示されました。
Voice Kit の言語設定は現時点では変更していないので英語で変換されて「are you 」と変換されました。

7)Good Bye と言っても止まるようですが、今回はコマンドで停止させました。
control + C で DEMO プログラムを停止させると下記のように表示されプログラムが終了します。

8)sudo poweroff コマンドを実行してVoice Kit を停止させます。
コマンド

$ sudo poweroff

下記で表示される場合はありますが、Voice Kit の緑色のランプが消えれば電源を抜いても問題ない状態です。control + X を入力するSSHの画面が閉じられます。

Voice Kit の設定は以上となりますが、
DEMOプログラムであいうえおと発言しましたが、Are you とかで反応しているので次は日本語で反応するようにしていきましょう。

▼まとめ

まず、始めに Voice Kit を組み立てみました。
工作ってなんかワクワクしますね。私だけでしょうか。
はんだ付けとかなく簡単に作れました。

そして、外見ができたら中見ということでGoogle Assistant API を使えるように設定いきました。
サンプルを動かして Google Assistant が利用できることを確認しました。

現状では英語でしか反応しない状態ですので次回は、せっかくなんで日本語で反応できるようにしたいと思います。

宣伝になりますが、apps-gcpを運営するクラウドエースは、Google 関連のクラウド・機械学習の分野においては世界一のプロフェッショナル集団ですので。何かお困りのことや、Google Cloud にご興味がある方はぜひご相談ください!

▼参考リンク

Voice Kit 公式サイト「https://aiyprojects.withgoogle.com/voice

次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます