わりと今さらかもしれませんが、GoogleのAIYプロジェクトであるVoice Kit V2を買いました。外付けキーボード・モニター無しでセットアップして、とりあえず日本語で会話できるところまでセットアップします。
目次
Google AIY Voice Kit V2
以前はV1を使っていたのですが、V2が出ていたので買ってみました。V1よりサイズがコンパクトになっていてV1ユーザーにもおすすめです。RaspberryPi ZERO WHなのでキットの価格もお求めやすいです。
なお、キットの他に必要なものといえば、
- USB電源
- マイナスドライバー(2mm)
ぐらいですね。めっちゃ手軽にスマートスピーカー作りが楽しめます。
まずは組み立て
詳細な組み立て手順をGoogleが用意していくれているので、そのとおりに組み立てばOK!
特別ハマるところはなかったですが、手順にも記載のある通り『7. Check frame alignment』はよく確認しておいたほうがいいです。私はまんまと裏表反対に作ってしまってました・・・。
最新版のOSイメージをゲットする
キットに同梱のmicroSDカードにすでにイメージは入っているのですが、最新版を入れることをおすすめするぜと公式に書いてました。というわけで公式からイメージをダウンロードしましょう。
google/aiyprojects-raspbian#releases
ここから.img.xzファイルをダウンロードします。
microSDカードにOSイメージを焼く
balenaEtcherというアプリがあるので、それ使って焼きます。Windows/Mac/Linuxすべて対応してます。
使い方はすごく簡単。SDカードを差してbalenaEtcherを起動して、『Select image』で先程ダウンロードした.img.xzファイルを選択。そして『Flash』をクリックするだけ。特別な設定変更は必要ありません。
数分で焼き上がると思います。
SSHとWiFiの設定を施す
このままRaspberryPiを起動するとキーボード&モニターがないとネットワーク関係の設定ができません。1回こっきりの作業に使いもしないUSBキーボード買うのもアレでしょうから、最初からWiFiに繋がるようにしておきsshdを起動しておくようにします。
まずはさっき焼き終わったmicroSDカードのルートディレクトリを見てみましょう。(balenaEtcherで焼き上がった後にアンマウントされている可能性があるので、その場合は再度マウントするようにSDカードを抜き差ししてください)
おそらくSDカードのボリューム名が boot
になってると思いますが、直下(ルート)に ssh
というファイルがあるか確認しましょう。なければ作成してください。中身は空で構いません。このファイルが存在すると、起動時にsshdがオンになるようですね。
次にWiFiの設定をします。先程のsshファイルと同様、bootボリュームのルートに wpa_supplicant.conf
というファイルを作成します。中身は次の通りです。
country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="WiFiのSSID" psk="パスフレーズ" }
ファイルの作成場所を間違えないようにしてください。Macで作業してる場合は、それぞれ次のパスにファイルがあればOKになります。
- /Volumes/boot/ssh
- /Volumes/boot/wpa_supplicant.conf
これにてOSイメージは完成!
追記)
なんかWiFi接続のためのAndroidアプリもあるらしい。
使ったことはないですが、一発目の接続だけはこれ使ったほうが楽かもしれません。
電源投下
組み立てたVoice Kitに作成したSDカードを差し込み、電源をオンにします。電源ランプ(上部のボタンランプじゃない)が付いたら起動処理が完了するまでしばらくぼーっとします。
ひとしきりぼーっとした後、いよいよsshで接続できるか確認します。
$ ssh pi@raspberrypi.local
RaspberryPiの設定が上手く行っててMacからであればこれで繋がるはず。起動後すぐはsshデーモンが上がってない可能性があるので、しばらく待ってみたりして。WindowsでもMacのBonjourをインストールすればホスト名.localで疎通できるようになるらしいです。
ダウンロード – Bonjour Print Services (Windows)
さて、sshが繋がったらログインです。piユーザーの初期パスワードはraspberryです。ログインできましたか?
なお当たり前なんですが、自分のRaspberryPiをインターネットに公開するなら、パスワードは変更しましょうね。
スピーカーとマイクの確認
このあたりはGoogleの手順と変わらないのですが、英語が嫌いで発狂している人のためにも書きます。
前述の手順でRaspberryPiにsshでログインします。次のコマンドでPythonファイルを実行します。
pi@raspberrypi# /home/pi/AIY-projects-python/checkpoints/check_audio.py
英語のスピーカーから音声が流れ、続いて自分の声を3秒間録音できます。どちらも上手く動いたら組み立ては成功ってことですね。
なお音量が気に食わない場合はalsamixerで音量を調整できます。
pi@raspberrypi# alsamixer
上下キーで音量を変更してESCで終了します。
Google Cloud Speech API
ここまでくれば基本的なセットアップは完了です。ここからはGoogle Cloud Speech APIを使用できるようにセットアップしていきます。Cloud Speech APIというのは、まあ早い話GoogleアシスタントみたいなことができるAPIです。スマートスピーカーを作成するにあたって、音声をテキストに変換するのは必須だと思いますが、このあたりはやはりGoogleのお世話になった方がいいです。というわけでそのAPIを使用できるように、プロジェクトの作成・認証と進めていきます。
手順はやはり公式に書いてあるのですが
英語嫌いで発狂している人のためにも、ささっと説明しておきます。
まずはGoogle Cloud Platform上にプロジェクトを作成します。既存のプロジェクトを使用しても問題ありません。作成は↓こちら↓から。
プロジェクトを作成したらAPIを使用可能にしておきます。
次の画面でGoogle Assistant APIを検索して、ボタンをクリックして使用可能にしてください。
続いて認証情報の作成です。
このあたりは分かりやすい公式を見て下さい(手抜き)
最後に認証キー.jsonをダウンロードします。エディタなどで開き内容をコピーします。
この内容をRaspberryPiの/home/pi直下にassistant.jsonというファイルを作成し、その中に貼り付けます。
pi@raspberrypi# vi ~/assistant.json で内容をペースト
あ、viの操作方法がよく分からなかったらnanoを使いましょう。
では認証情報を使ってCloud Speechのデモを試してみます。
pi@raspberrypi# cd ~/AIY-projects-python pi@raspberrypi# src/examples/voice/assistant_grpc_demo.py
ターミナルに「ボタンを押して会話を始めてくれ」って表示されます。Voice Kitの上部のボタンが点滅してますね?そいつをッターンと叩いて何か話しかけてみましょう。冷たい英語が返ってくるはずです。終了するにはCTRL-Cを押します。
英語ですが、ちゃんとCloud Speechが使用できるようになりました!
日本語化
日本語化ですが、実はとても簡単です。OSのロケール(言語)を変更するだけでCloud Speechの言語も日本語に変わってくれます。さっそくロケールを変更します。
次のコマンドでRaspberryPiの設定画面を開きます。
pi@raspberrypi# sudo raspi-config
なにやら温かみのある設定画面が表示されます。
ここで『4 Localisation Options』を選択します。次の画面では『I1 Change Locale』を選択します。さらに次では『ja_JP.UTF-8 UTF-8』をスペースで選択状態にして終了します。ロケールの変更には結構待たされるかもしれません。
あ、ついでにここでタイムゾーンも変更しておいたほうがよいと思います。さっきの画面で『I2 Change Timezone』を選択して、Asia-Tokyoを選択すればいいです。
ロケールが変更できたら、先程のデモをもう一度実行してみましょう。
pi@raspberrypi# cd ~/AIY-projects-python pi@raspberrypi# src/examples/voice/assistant_grpc_demo.py
こんどは日本語で会話してくれるようになりました!
とりあえずこれでスマートスピーカーの開発のスタート地点に立てました。これから色々と遊んでみるつもりですが、何か面白いネタでもあればまた書こうと思います。
関連する記事
- ラズベリーパイに日本語で喋らせる[その1]Google Cloud Text-To-Speech
- ラズベリーパイに日本語で喋らせる[その2]Amazon Polly
- Google AIY Voice Kit V2の基本操作サンプル集
- 【ラズパイ】Voice KitにSnowboyを入れてホットワードでSwithBotを操る【よしこちゃん】
- ラズベリーパイに日本語で喋らせる[その3]Open JTalk