はじめての電子工作超入門

ラズパイでスマートスピーカーを自作しよう!第1回: Google AIYを使って、日本語対応スマートスピーカーをサクッと作る

こんにちは、ヨシケンです!
ラズパイではさまざまなものを作ることができますが、AIを搭載して話しかけたら応えてくれるスマートスピーカーを作ってみたくはないでしょうか?
特にGoogleのおしゃべりスピーカーGoogle Homeと同様の機能が、Google AIY Projectsとして提供されています。そしてこのAIY Voice Kitが今年に入ってからアップグレードされ、日本語にも対応するようになりました。
ラズパイに最低限の部品を追加するだけで、驚くほど簡単にスマートスピーカーが作れてしまいますので、この機会にラズパイ+スマートスピーカーの世界に足を踏み入れてみてはいかがでしょうか?

voicekit.AIY projects
スマートスピーカー

 

今回の記事で必要なもの一覧

・Raspberry Pi 3 Model B
Raspberry Pi 3 Model B

・小型USBマイク
小型USBマイク

・パソコン(ラズパイにsshでつなぐ場合。ここではWindows10パソコンを使っています。)
・スマホ(Google Assistantアプリで日本語設定をするため)

これにイヤフォンがあれば、とりあえずのGoogle Home機能を作ることができます。

 

今回の記事の流れ

1.Google AIYに関して
2.ラズパイにGoogle AIYをインストール
3.Google Cloud/Assistantのセットアップ
4.OK Googleしてみる
5.まとめ

1.Google AIYに関して

Googleでは、スマートスピーカーGoogle Homeの機能を、誰にでも簡単に使えるようにするために、SDKが公開されています。そしてGoogle社自身が、AI YourselfというコンセプトでAIY Projectsとして、このような自作キットも提供しています。
https://aiyprojects.withgoogle.com/voice/

voice kit
このキットは日本でもスイッチサイエンス社などから、3500円程度(ラズパイ含まず)で販売されています。ただこのキットを買わなくても、ソフトウェア部分は基本的に無料で提供されているので、最低限の部品だけ用意すれば、自分でもGoogle Homeのようなスマートスピーカーを作ることができます。

ここでは、このAIY Projects (Voice Kit)を使って、ラズパイ・スマートスピーカーを作っていきます。

2.ラズパイにGoogle AIYをインストール

まずGoogleのこちらのページにアクセスして、Voice KitのSDイメージをダウンロードして下さい。

Voice KitのSDイメージをダウンロード

イメージをダウンロードしたら、DiskImagerなどのソフトでSDカードに書き込んで、使っていきます。
デバプラのこちらのページを参照して、イメージを使ったラズパイの起動SDカードを作ってください。

できたSDカードをラズパイに差して、ディスプレイにつなぐと、このようにAIYの壁紙が付いたラズパイが立ち上がっていると思います。

4

ラズパイのロケールやキーボード、Wi-Fiなど最低限の設定は、こちらの記事を参考に行ってください。

この後はGoogleの公式サイトUsers guideに従って、Google Cloudの設定をしていきます。
(既にGoogle Cloudの登録や、Assistant APIを有効化している方は、4項まで飛ばして下さいね。)

3.Google Cloud/Assistantのセットアップ

まず最初のステップは、Google Cloud上でAPIなどをデバイスで使えるようにします。
こちらのGoogle Cloudコンソールにアクセスし、設定を進めます。
https://console.cloud.google.com/

3.1 Google Cloudプロジェクトの作成

Google Cloudにプロジェクトが無い場合は、真ん中上のメニューから、新しいプロジェクトを作成して下さい。

3.2 Google Assistant APIの有効化

プロジェクトができたら(aiy-prjとしています)、Google Assistant APIを検索し、有効化させます。(課金設定なども必要ですが、範囲内なら無料で使うことができます。)

Google cloud platform

3.3 認証情報の作成

次に、Googleコンソールの左側メニューの“APIとサービス”から、“認証情報の作成”を選びます。
そこで“OAuthクライアントID”を作成します。
クライアントIDの作成で、“その他”を選んで、名前を付けます。

認証情報の作成

3.4 認証情報のダウンロード、ラズパイでの登録

作成された認証ファイルを、“JSONをダウンロード”というボタンから、作業しているパソコンにダウンロードして下さい。

ダウンロードした認証情報を、scpを使ってパソコンからラズパイのホーム直下に転送します。以下記述の”download_file.json”の部分は実際にダウンロードしたJSONファイルの名前を使い、これをラズパイ側でassistant.jsonという名前に変更しています。

(パソコンのコンソールなどから) scp download_file.json pi@xxx.local:assistant.json

ラズパイの方から、Googleの認証ツールで先ほどのassistant.jsonを読み込み、デバイス認証IDを登録します。

google-oauthlib-tool –scope https://www.googleapis.com/auth/assistant-sdk-prototype –save —
headless –client-secrets /home/pi/assistant.json

デバイス認証IDの登録

ここで、”Please visit this URL”と書いてある所の後ろのURLを、ブラウザに貼り付けてGoogleアカウントでログインします。その後、出力されるキーをラズパイ側の”Enter the authorization code”とある部分に貼り付けて、認証完了です。

認証完了

3.5 アクティビティ管理の追加

またGoogleデバイスのアクティビティ管理画面から、以下の項目を有効化させます。
https://myaccount.google.com/activitycontrols

  1. ウェブとアプリのアクティビティ
  2. 端末情報
  3. 音声アクティビティ

アクティビティ管理

3.6 デバイスの登録

あともう少しです!直近のアップグレードで、Googleデバイスの登録が必須になったので、こちらのGoogle Actionページにアクセスし、デバイスを登録します。
https://console.actions.google.com/

“(+) Add/improve project”とある部分をクリックして、デバイスのプロジェクト名(aiyprjなどとして)入れます。
その後、左側の”Connected properties”というところで、”DEVICE MODELS”の登録を行います。
ここでは、プロダクト名(device1としています)、Device Model IDを先ほどのプロジェクト名+プロダクト名(ここでは、aiyprj-device1としました)として登録します。

DEVICE MODELの登録

また”traits”という、特別の命令項目も選択しておきます。(こちらは後でカスタム命令に使います)

Register model
ここまで色々な設定がありましたが、次項目で最後にラズパイ側の設定をして、話しかけられるようになります!

4.OK Googleしてみる

ラズパイのUSBにマイク、音声ジャックにイヤフォン又はスピーカーをつなぎます。
OK Googleしてみる

4.1 ラズパイの音声確認

ここで、マイク、音声出力など、ラズパイで音声が扱えるかを確認しておきます。
Google AIYのSDイメージですと、キットのマイクを使うことを想定しているので、ラズパイ標準の音声管理がOFFになっている場合があります。そのため、こちらのconfig.txt中の”dtparam=audio=on”という部分を確認して、コメントアウト(#)されていたら、この#を消して、有効化させます。
変更を保存した後、ラズパイを再起動してください。

sudo vi /boot/config.txt

13

その後、以下画面のように”aplay -l”コマンドでスピーカーなどの出力を、”arecord -l”でマイクの確認を行います。”card 0: ”、”card 1: “のように出てきたら出力、マイクが使えるようになっているはずです。alsamixerコマンドで、音量の調節もしておいて下さい。
14

4.2 Google音声の日本語化

最後の最後、最近になって可能になったGoogle音声の日本語化をします。
これはスマホからGoogle Assistantアプリをダウンロードし、右上の“設定”からデバイスの言語を「日本語」に変更します。自分で登録した“device1”などのデバイスがスマホから見えていると思います。

設定完了
これで設定は全部完了!ついにOK Googleしてみましょう!

4.3 Googleに話しかけてみる

まずラズパイで一行目のシェルを実行し、Googleコマンドなどが読み込める環境にします。
その後二行目のgooglesamplesのhotwordというコマンドを起動します。その際、先ほど登録したプロジェクト名(ここではaiy-prj)と、モデル名(aiy-prj-device1)を指定して、エンターを押します!

./bin/AIY-projects-shell.sh

googlesamples-assistant-hotword –project_id aiy-prj –device_model_id aiy-prj-device1

ここで”ON_START_FINISHED”まで出てきたら、”OK Google”と英語風に話しかけてみて下さい。その後日本語で「天気教えて」などと言うと、その発した言葉がtextに日本語で表示され、Googleが応えてくれるはずです!
16

こちらがGoogle Homeのように受け答えをしている動画です。
受け答えをする

「面白い話をして」や「愚痴聞いてタンバリン」など色々話しかけてみて下さい。

5.まとめ

どうだったでしょうか?前半のGoogle Cloud、デバイスの設定などは、今後も使っていきますので、めげずに最後までやってみて下さい。要は、Google Cloudプロジェクト、APIをラズパイと紐づけ、デバイスを登録し、言語を日本語に変える、という流れです。
“OK Google”の発音は、今のところ英語風にする必要があり、日本版のように「ねえ、グーグル」などの起動ワードにはまだ対応していないようです。今後のアップデートが望まれますね。
ただその後の受け答えは、完璧に日本語で行え、ほぼGoogle Homeのようにできたのではないでしょうか?

今回は、ラズパイに無料のGoogle Home(AIY Voice Kit)機能を導入し、まずは”OK Google”を実現してみました。
次回は、もう少し電子工作っぽく、LEDプッシュボタンやスピーカーなどを自作し、ラズパイに追加したいと思います。100均の部品などを流用して1,000円程度で作り、Google Push to Talkという、ボタンを押したら話し始めるようにします。
お楽しみに!

電子工作マニュアル Vol.5
ヨシケン(吉田 顕一)

普通の会社に勤めるサラリーマンですが、モノ作りが好きな週末メイカーで、電子書籍MESHBOOKを出したり、ブログを書いたりしています!

http://blog.ktrips.net