OK Googleがついに日本語を話すように

Raspberry Piのシステムをアップデートしたら、恒例のエラーが発生したので、今回はシステムが新しくなっていることもあり、ディスクの焼付からやり直した。
最近OK Googleをしていないなということを、ふっと思い出して、日本語化に挑戦してみることにした。

クレウエタンさんのサイトを参考に、あれこれいじっていたら出来たのだが、実は設定を変えても何もないかのように英語をはなしていたが、あるところから突然日本語をしゃべりだしたので、何が有効だったのかはよくわからない。
ただ、一つ言えることは、タブレットでGoogle Assistantを起動してGoogleのサービス側(つまりサーバー側)の設定をいじることでなんとかなるということかな。つまり、ラズパイを触っても設定を変えることは出来ないがタブレットのメニュの中に話しかける言語や、応答言語を設定するところがあるので、それを使えば良い。


AIYのアップデートの続き

メディアの焼き直しから起動まではスムーズに行ったが、その後のアップデートをしたら今度はBluetoothが使えなくなった。
そもそもデバイスとしてserviceが起動していないようだ。

こちらのサイトと全く同じ症状。
https://teratail.com/questions/144273

そしてラズパイのご本家にお伺いを立てても、どうやら症状が特定できていない。
https://www.raspberrypi.org/forums/viewtopic.php?t=148305
https://lb.raspberrypi.org/forums/viewtopic.php?t=147333


AIYのアップデートにはまる

久しぶりにラズパイをアップデートしたら、またエラーが発生。
今回はaptのupdate実行中に、「未知のエラーが発生しました」と言ってくるので、通常想定されうるものではなさそうで、googleで調べても解決策が見つからなかった。

仕方なく、/etc/apt/sources.listの中身を全てコメントアウトした上で、

sudo apt update

したら、パッケージリストの読み込みは完了。

アップグレードできるパッケージが 1 個あります。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
libfm4
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
2 個のパッケージが完全にインストールまたは削除されていません。
101 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 0 B のディスク容量が消費されます。
apt-listchanges: changelog を読んでいます...
dpkg: 警告: パッケージ 'fcitx-bin' のファイル一覧ファイルがありません。このパッケージには、現在インストールされているファイルがないものとします
(データベースを読み込んでいます ... 現在 130665 個のファイルとディレクトリがインストールされています。)
.../libfm4_1.2.5-1+rpi6_armhf.deb を展開する準備をしています ...
dpkg: アーカイブ /var/cache/apt/archives/libfm4_1.2.5-1+rpi6_armhf.deb の処理中にエラーが発生しました (--unpack):
ci ファイルのトリガは未知のディレクティブ 'activate-noagai4' を含んでいます
処理中にエラーが発生しました:

いまのところ対処方法は見つからないまま。

(追記)
その後、raspi-updateをしたら、ネットワークからヘッドレスアクセスできなくなった。
とりあえずTVに繋いで本体が使えそうなので、なんとかできそうだが、疲れたのでこの辺でやめる。


AIYのUpgrade(2018-04-13)

ラズパイをアップデートしたら起動しなくなった。
画面を見る限り、カーネルの読み込み段階で止まっているので、ファイルの一部が壊れているのだろう。
これまでも何度か経験しているので、リカバリの方法も最初からやり直すだけとわかっているため、淡々と手順を追うことにした。

1. Raspberry Piの入っているAIY Projectのディスクイメージをダウンロード

今回は、2018-04-13版が出ていることを知ったので最新版を落とす。1Gも容量があるので、夜に開始して朝起きたら落ちているようにする。
Voice KitもV1というバージョン番号がついている。つまりこれまではベータ版だったということなのか。
https://aiyprojects.withgoogle.com/voice-v1/

2. SDカードへの焼付

Etcher.IOなどのツールは使わず、Ubuntuのファイルマネジャを開いてダウンロードフォルダにあるディスクイメージファイルを右クリックすると、焼付のコンテキストメニュが出てくる。これは便利。

3. 設定ファイルのコピー

SDカードに、起動時にSSH接続できるよう空ファイルsshと、WiFi設定の入っているwpa_supplicant.confをコピー。
ここで気がついたのは、SSHは既に入っていた。進化している。よってwpa_supplicant.confのみコピー。
このファイルはいつも設定時に使うので、PCの方に保存してある。

4. SDカードをRPIに入れて電源を繋いで起動

テレビにつなげてあるので、電源を入れたら起動画面が出る・・・はずだが出ない。
おかしいなと思ったら、HDMIが抜けていた。初歩的ミス。

無事にAIYの画面が立ち上がったら、マウスを使ってみる。ワイヤレスマウスを最初からUSBにつなげていたので、マウスの電源を入れたらそのまま使えた。これは便利。

早速、キーボードをBluTooth連携する。

5. ロケールなどを設定

ロケールやタイムゾーンを日本に設定
キーボードの型をPC98xx
カメラをオフ
ホスト名をraspberrypiから、プロジェクトの名前に変更

リブートすると、日本語表示になった。

6. SDカードの領域を確保

ディスクイメージを焼いただけでは、16Gあるディスクのうち数十メガしか使われることがなく、しかもダウンロードなどすると容量が足りなくなるというエラーに何度かぶつかっている。これは、rpi-configでディスク容量を拡大するという処理をしなければならないが、なぜかメニュがない。
ファイルマネジャで容量を見たら、既に拡大されていた。おそらく初心者が最初に失敗する部分だけに、これは助かる。

7. OSを更新

sudo apt update
sudo apt upgrade

今回、これまでの蓄積が相当活用できたという点でかなり手際よく更新が出来るようになった。またAIY Projectsのほうも設定が省略されている部分がいくつかあり、使いやすくなったと言える。

8. 日本語入力環境のインストール

大事なことを忘れていました。
fcitx-mozcのインストールをしないとブラウザなどで日本語が入力できません。

sudo apt install fcitx-mozc


AIY: SDKを更新してもVoiceHATのエラーが直らない

どうもマイクが壊れているらしい。音声テストではスピーカは普通に発生しているが、マイクには反応がない。

とりあえずSDKを更新してみようということで、google-assistant-skd 0.4.4: Python Package Indexから、pipを使って更新。

pip install --upgrade google-assistant-sdk[samples]

その後で認証の再設定などしてみたが、相変わらずマイクは作動しない。

script/configure-driver.shがないというメッセージが来るのだが、実際には存在する。パスが通ってないのかな?直接コマンドを叩いても、症状は改善しない。

pi@RPi02-aiy:~/AIY-projects-python/src/examples/voice $ ./assistant_library_with_button_demo.py 
/opt/aiy/projects-python/src/aiy/_drivers/_led.py:51: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(channel, GPIO.OUT)
Say "OK, Google" or press the button, then speak. Press Ctrl+C to quit...

普通ならこの画面でOK Googleに反応してくれるのだが・・全く反応がなくしばらくするとこのメッセージが。

[1207:1245:ERROR:mic_failure_detector.cc(140)] [assistant] Channel 1 has failed. Powers -inf and -inf

どうやらこのような問題は他にもあるらしいが、原因究明と解決には至らず、しばらく寝かせることにした。