AIY: 日本語化

Google AIY Voice KitHot WordsとかWake Voiceといわれる呼びかけの言葉がOK Googleなのは構わんのですが、その後の言葉が英語です。
大したことを聞くわけでもないので英語のままでも支障はありませんが、SDKが日本語対応したと聞くと自分もやってみたくなるというのが趣味の世界。実用という意味では、かみさんが台所仕事をしながらタイマーセットしたりするのに、日本語のほうがよろしいかなということもあり、早速挑戦です。

クレウエタンさんのサイトから(https://kureuetan.com/web/iot/4818/)

こちらは、スマホアプリAssistant SDKから制御することを前提にした内容

ブログだいちゃん:Google Assistant SDKの hotword.py が日本語に対応した
(http://www.love-hokuto.com/?p=6441)

こちらも同じですが、より簡単

あみこども未来ラボ:ラズパイで「OK Google」(http://amikodomolabo.org/2018/01/13/%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4%E3%81%A7%E3%80%8Cok-google%E3%80%8D/)

いずれも同じ方法です。さっそくやってみました。

タブレットにGoogle Assistantをインストールして設定を見ると、あれ、すでに日本語になっています。
何か変だなと思いつつ、「OK Google、日本語わかる?」と聞いてみたら、LEDが点灯したまま無言状態・・・・・(´・ω・`)

ラズパイに乗っているSDKのバージョンを見たら9月のままでした。やはり拙速はいけません。関係するファイルの更新をやってから再挑戦です。

設定のやり直し

認証ファイルのダウンロードからやり直しました。ここでまた同じ失敗。IDを切り替えるのをつい忘れてしまい、AIY用ではない元のアカウントで認証キーを作ってしまいました。気がついたから良かったものの、前回動かない原因で気づかずに一番苦労したところです。

パイソンの環境(env)に入るためのshスクリプトを見つけたので、それを叩いて、アップデートします。

pi@RPi02-AIY:~ $ cd bin
pi@RPi02-AIY:~/bin $ ls
AIY-voice-kit-shell.sh
pi@RPi02-AIY:~/bin $ AIY-voice-kit-shell.sh
Build info: Tue Sep 12 00:36:20 UTC 2017 @ 3955cac
Dev terminal is ready! Hint: enter src/assistant_library_demo.py
(env) pi@RPi02-AIY:~/AIY-voice-kit-python $ pip install google-assistant-library --upgrade
Successfully installed google-assistant-library-0.1.0 google-auth-1.0.1 requests-2.14.2
(env) pi@RPi02-AIY:~/AIY-voice-kit-python $ pip install google-assistant-sdk[samples] --upgrade
Requirement already up-to-date: google-assistant-sdk[samples] in ./env/lib/python3.4/site-packages
Requirement already up-to-date: google-auth-oauthlib[tool]>=0.1.0 in ./env/lib/python3.4/site-packages (from google-assistant-sdk[samples])
Successfully installed CFFI-1.11.4 futures-3.1.1 google-assistant-grpc-0.1.0 google-auth-1.3.0 googleapis-common-protos-1.5.3 grpcio-1.8.4 monotonic-1.4 protobuf-3.5.1 pycparser-2.18 requests-2.18.4 setuptools-38.4.0 sounddevice-0.3.10 tenacity-4.8.0

最後は時間がかかりました。

(env) pi@RPi02-AIY:~/AIY-voice-kit-python $ pip install --upgrade google-auth-oauthlib[tool]
最初は赤い文字で、エラーが出たのでおののきましたが、単なるスペルミス。

Could not find a version that satisfies the requirement google-auth-oauhtulib[tool] (from versions: )
No matching distribution found for google-auth-oauhtulib[tool]

再度確認して、漸く。

(Requirement already up-to-date:

続いて、認証の処理をします。

(env) pi@RPi02-AIY:~/AIY-voice-kit-python $ google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless --client-secrets ~/client_secret_xxxxxx.apps.googleusercontent.com.json
Please visit this URL to authorize this application:
Enter the authorization code:
credentials saved: /home/pi/.config/google-oauthlib-tool/credentials.json

無事認証は終わり。実はここでも痛恨のスペルミスがあり、prototypeをproptypeとしていたために何度やっても失敗しました。

(env) pi@RPi02-AIY:~ $ googlesamples-assistant-devicetool register-model --manufacturer "Assistant SDK developer" --product-name "Assistant SDK light" --type LIGHT --model
Creating new device model
Model successfully registered

次にひかかったのがここです。この処理はHomeディレクトリですべきところをこれまでの流れでそのままやっていたので、認証ファイルが存在しないということでエラーが続きました。

ようやくエラーから脱出して、次のコマンド

googlesamples-assistant-hotword --project_id xxxx --device_model_id yyyyyy

これで何やら長いメッセージが出てきて受付状態になりますが、なんだか調子が悪いです。
でも、音は小さいけど例のごとく、時間とかお天気は回答はしてくれます。しかし日本語にはなりません。

スマホからのアクセス

アンドロイドスマホであれば、Google Assistantの設定でできるとか、Google Homeでできるとか出ていますが、どうやらGoogle Homeプロダクト向けであって、ラズパイではもうひとひねり必要なようですね。

あわてず英語でしばらく続けます。

困ったのが、最初のデモが動かなくなったことですね。
LEDが点灯したり点滅したりするので、活動状態がわかってよかったのですが、いまのgooglesample-assistant-hotword.pyはお化粧部分(機能に関係なくライトを制御するところ)が外してあるので、外見からは寝ているように感じます。
インタフェースは大切ですね。


RealVNC for Android

タブレットからラズパイにアクセスするには、VNCを使うと便利なのは言うまでもないが、実はこれまで既に試しつつうまくいってなかった。

このたび、自宅以外の場所でGoogle AIY Voice Kitを使うシチュエーションを考えた場合、キーボードや外付けディスプレイを持ち歩くわけにもいかないので、どういう対応の仕方があるかと思案。

やはりタブレットからのVNCしかない!!
探せばあるものだが、うまくいかなかったRealVNCでいいようだ。

VNC以外にも方法があるのではないかといろいろとググっていたら、「USBテザリング」なんていうことも書いてあった。テザリングとはWiFiのアクセスポイントをスマホにしてスマホ回線を利用する方法かと思い込んでいたら、英語の意味は「つなぐ」だけなので、WiFiに限られた話ではなくUSBでつながってもいいわけだ。

Raspberry Pi Zero に Android だけで リモートデスクトップ

ついでになんとなく見つけたこのページ

VNC Connect and Raspberry Pi

確かにVNCサーバーがインストールされていたが、Remminaからは使えなかった。なぜだろうか?ディストリの違いかな?


AIY:Google Cloud Platform APIにアクセス(2)

どうやら認証が旨く行っていないので調べてみたところ、ラズパイで設定しているIDと認証ファイルを落としたIDとが違っていました。AIY用にIDを取得したのでそちらで取るべきだったのですがどこかで間違ったようでく行っていないので調べてみたところ、ラズパイで設定しているIDと認証ファイルを落としたIDとが違っていました。AIY用にIDを取得したのでそちらで取るべきだったのですがどこかで間違ったようで。
またブログに書かれていたのは、鍵のファイルをassistant.jsonに名前変更するとありましたが、本家本元のマニュアルを読むと、それはしてはならないと書いてあります。

原因がわかったところで再度挑戦。

OK Googleと呼びかけると、今度はエラーメッセージが帰ってきません。

What time is it?
と問いかけたら、
It's 7:05.
と正しい答えを返してきます。
その他に色々と質問してみました。
Where do you live?
How old are you?
Do you know my name?
How did you know my name?
いずれもきちんと回答を返してきます。
ただし、
What is the biggest news today?
に対しては、ニュースには対応していませんという答えが返ってきました。おそらく配信契約ができていないのでしょう。

さて気になるのは課金の方法です。
クレジットカード番号を登録させられたのですが、他のサイトでは登録しなくても出来るという案内もあり、当面は無料枠を使うので削除したほうがよいでしょうね。

参考サイト
Google Assistant
Voice
暮植譚


AIY:Google Cloud Platform APIにアクセス

先週、無残にもSDカードを壊して終わってしまったAIYプロジェクトですが、新しくカードを買ってインストールまでを一気に進めました。一度やっているので、復旧は簡単です。さらに、バックアップも取ってあります。ラズパイはLinux/Debianベースなのでしばしば更新されるたびにバックアップを取らねばならず、これが割と面倒ですが・・・。

今日は、音声認識をさせるまでをやります。
端末側の設定は既にできたので、Googleのアカウントを設定します。
すでにメールアドレスはあるのですが、このプロジェクト用にもう一つアドレスを取得しました。

ラズパイマガジンの記事を参考に進めたのですが、変化の激しい世界ですから、Google側の画面や設定の進め方が、書いてあるとおりではありません。いまひとつ大事なところがよくわからず、コチラのサイトを参考にして進めました。ありがとうございます。

Google AIY Voice KitのOS・ソフトウェアインストールと設定方法

AIYキットの操作は、PCからVNCアクセスで行います。設定はVNC経由のラズパイのデスクトップで、参照はPCのデスクトップで、切り替えながら進めていくのですが、自分が今どこにいるのかわからなくなる変な気分を味わいます。

一通り設定を終えて、ラズパイデスクトップの、StartDevTerminalをダブルクリックすれば晴れてOK Googleということだったのですが、なぜか起動しません。中身を開いて一つ一つコマンドを叩いて進めたら、AIYキットのボタンが「ぼわ〜ん」と点滅を始めます\(-o-)/

OK Google

と話しかけると反応して、ボタンの点滅が点灯状態に変化します。(^o^)

wake voiceというそうです。その他の音「あのぅ」とか「やぁ」では反応しません。流石によくできています。

しかし、OK Googleの後に、What is the weather?と聞いてみると、AIYキットから聞こえた最初の声は、Something went wrong.とか、There is a glitch.という些か気の強そうな女性のお返事です。

しばらく英語使っていないし、発音悪くなったかな (´・ω・`)

エラーメッセージを見ると、まだAPI側に繋がっていないようです。PC側のメールを見ると、Googleからメールが来ていて、アンケートに回答してからようやく使えるようです。


AIY: 初期設定やり直し

昨日は、SDカードが壊れてしまい認識すらしてくれなくなったので、今日はお店からカードを2枚購入してきました。
ついでに、HDMIケーブルの長いやつも。

早速、「復習」をカネて作業を開始。

1. SDカードの焼付(すでにダウロードしてあるので焼くだけ)
2. sshとWiFI設定の書き込み
3. ラズパイに入れてブート
4. sshでログインする(IPアドレスも昨日と同じものを指定したら一発命中)
5. 初期パスワードの変更
6. /etc/hostsと/etc/hostnameの書き換え(デフォルトのraspberrypiでは2台のラズパイの区別ができないので)
7. /etc/apt/sources.listの設定をデフォルトのラズパイ財団から日本のJAISTサーバへ
8. ラズパイのアップデート
(おっと、ここでエラーメッセージ。localeなどの初期設定をしていないことがわかる。アップデート前にすべきだったかも。)
9. raspi-configで設定(地域設定がメイン。VNCは使うけど、あとで変えるのでNo)後、保存しするとリブートが求められる
(再起動が順調に行われたことを確かめる)
10. tightvcnserverのインストール(初期導入のRealVNCは自動削除される)
11. VNCアクセスを試すためラズパイ側で
vncserverと入力するとパスワードの設定が求められる。view-only passwordにはNoとしておく
12. PC側からRemminaを起動してアクセスしてみる
12. SDカードのバックアップ(デスクトップメニュにあるSD Card Copierを使うと簡単)
(ここまでは順調)