ダンボーGoogle Home制作メモ
前回のブログではAlexa Voice Serviceを使ってラズパイZeroで自作Echoを作成しました。
今回はGW直前に公開されたGoogle Homeを自作できるGoogle Assistant SDKを利用して、ダンボーHomeを作ってみました。
ラズパイの良いところは、SDカードを変えれば違うものとして動かすことが出来るので、AlexaとGoogle Assistant SDKは別のSDカードにセットアップしておくことで、SDカードを差し替えるだけでAmazon Echoになったり、Google Homeになったりすることが出来ます。
SDカードの抜き差しが簡単にできるように、ダンボーの横顔に穴を開けました。
セットアップで参考にしたのはこちらのQiitaの記事。
元になっているのはこちらの英語のドキュメントですので、こちらを見ながらAPIキーの発行などを進めてもセットアップは簡単に進められます。
Overview | Google Assistant SDK | Google Developers
実際にラズパイにインストールする際に必要なコマンドは、githubにあがっているサンプルに細かく書かれているので、こちらを見ながら進めました。
ラズパイ上でサンプルを動かす際、Google Assistant SDKに対して以下の情報を提供する権限を与える必要があります。
- Web & App Activity
- Location History
- Device Information
- Voice & Audio Activity
個人のgoogleアカウントに対してこれらの権限を許可するということは結構な情報を提供することになるので、気になる場合はメインではないアカウントを使うのが良さそうです。 ドキュメントにもデベロッパーアカウントではないgoogleアカウントでもOKと記載されています。
Set activity controls for your account
デモ動画
AVSのサンプルと違って、Google Homeのようにウェイクワードに反応することが出来ないようで、コマンドラインでエンターをすると音声を拾い始めるみたいな動きとなっていました。
MagPiの付録としてついてきているキットでもボタンを押して喋りかける使い方なので、Alexaのときと同じでそのうちウェイクワードにも対応するのかなって気がします。
使ってみた感想としては、「おっけー、ぐーぐる」と思っきり日本語英語で発音しても、問題なく拾ってくれたので音声認識の精度はAlexaより高い印象です。 時刻や天気を聞いたら勝手に東京の情報を返してきたので、連携しているアカウントの情報に基づいて、回答を返してくる気がします。 ちなみに、「おっけー、ぐーぐる」と話しかけたあとは、音声入力待ちになるので、次のコマンドを言うことが出来ます。
あとがき
Alexaのサンプルが出てきたときよりもドキュメントがしっかりしていて、セットアップでハマるところはほぼありませんでした。
ハマったのはGoogle Assistant SDKの部分ではなく、ラズパイでオーディオを再生すると音が割れる現象が何故か発生して原因がわからずだいぶハマりました。
ダンボーEchoと同じ2017-04-10-raspbian-jessie-lite を利用したのに、.asoundrcの設定を同じにしてもダメでした。
結局、OSを再インストールしても状況は変わらなかったので、.asoundrcのspeakerの方にレート rate 44100
を指定することで音割れしなくなりました。
pcm.!default { type asym capture.pcm "mic" playback.pcm "speaker" } pcm.mic { type plug slave { pcm "hw:2,0" } } pcm.speaker { type plug slave { pcm "hw:1,0" rate 44100 } }