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

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

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


RPi:また壊れた

Raspberry Piで作っているGoogle AIY Voicekitですが、最近よくアップデートされています。
前回8月に行われたのが、この11月の中旬にまた更新されたようで、そのたびにアップデートをかけていますが、よく壊れます。大抵はダウンロードしたファイルが完全でないことが多く、そのエラーへの対処は単に再度ダウンロードするだけですが、時折、依存関係が壊れたりキャッシュファイルが消えずにアップデートも出来ないなどの問題が発生します。
SDカードがボロいのかもしれません。

今回は、以下のような初見のエラーが・・・・(´・ω・`)

パッケージリストを読み込んでいます... エラー!
W: ファイル /var/lib/apt/lists/raspbian.raspberrypi.org_raspbian_dists_stretch_main_binary-armhf_Packages の削除中に問題が発生しました - TransactionStates-Cleanup (117: 構造体を内容消去する必要があります)
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/raspbian.raspberrypi.org_raspbian_dists_stretch_main_binary-armhf_Packages
E: パッケージリストまたはステータスファイルを解釈またはオープンすることができません。

ラズパイはサンドボックス用に使っているところもあり、色々なエラーへの対処が勉強になるし壊れてもSDカード焼きつけるだけ(自分のデータを乗せていない)なので、勉強のために試行錯誤するのですが、今回は上記のエラーをGoogle様に尋ねても、それらしい回答が返ってきません。

振り出しに戻ることにしました。苦笑
今回は、11月16日のアップデートです。

以下、やったこと。かなり慣れてきました。

  1. AIY Voice Kitのサイトからリンクを辿ってダウンロード。新しいキットも出てきているので、古いキット(V1)からリンクをたどる。
  2. ダウンロードしたファイルをSDに焼き付け。LinuxではNautilusから右クリックするだけ。
  3. 焼き付けしたSDにWiFiのパラメタファイルをコピー(いつものやつ)
  4. ラズパイにワイヤレスマウスがあることを確認(これ重要)
  5. SDをラズパイに入れて電源をつなぐとブートする
  6. 最初のブートでパスワードを変更するように促されるので、その段階で、Bluetoothでキーボードをペアリングする。この時にマウスが活躍するのだ。
  7. Keyboardをペアリングしたら、パスワードを変更。
  8. 設定を開いてロケールやキーボードの種類を合わせる。VNCもOnにする。
  9. リブート
  10. 日本語入力システムFcitx-mozcをインストール。なおIBUSはメンテされなくなったので使わない。
  11. 再度sudo apt update, sudo apt upgrade
  12. リブート
  13. SD card copierでバックアップを取る


MeCabの辞書の文字コードにハマった件

日本語のテキスト解析をRで行うにあたっては、tidytext()をかける前に、MeCabを使って「分かち書き」をする必要があります。

(分かち書きの例)今日 は よい お 天気 です ね 。

※MeCabで何をするかわからない人は、こちらのスライドを参照。
https://ymattu.github.io/TokyoR64/apply/apply.html#/

http://chasen.naist.jp/chaki/t/2009-09-30/doc/mecab-cabocha-nlp-seminar-2009.pdf

1. 前提条件

業務用PCはセキュリティが厳しく、Program Filesへのパラメタ等の書き込みができない。

2.インストール

最初、Program FilesにINSTしたら、辞書の書き換えなどができず断念。

次に、C:\にINSTしたら、「Program Filesにファイルがありません」という意地悪を言われた (´・ω・`)

3.開発者に質問

まずはRのパッケージRMeCabの開発者にTwitter経由で質問を投げると、パラメータファイルを設定すればいいという情報を得た。3回のやり取りで回答がもらえなくなったので、断念。

そもそもRがまともに動いていないので、RMeCabを触る前にMeCabが使えるようになるべしと悟り、githubのソースを見たら、別の人(写真付き)が64ビット版を載せていてくれたのでこちらを使うことに。
https://github.com/ikegami-yukino/mecab/releases

メアドが載っていたので質問したら、マニュアルに載っていない下記サイトのリンクを教えてくれた。

http://namazu.asablo.jp/blog/2006/04/04/315244

4.解決

C:\MeCabにINST。忘れず、環境設定でbinにPATHを通しておきませう。

辞書フォルダdicの下にあるIPADICを、ipadicSJIS、ipadicUTF8にコピーして、それぞれの文字コードで辞書を作成。 作り方はこちら

各辞書フォルダの中に、dicrcというファイルがあるので、その中の辞書の文字コードを該当するものに合わせる。盲点※これに気づいたのは、偶然にもエラーメッセージがdicrcがないよと言ってくれたから。

./Mecab/etc/mecabrcを開いて、dicdir=”hogehoge”のところを、それぞれ文字コードごとに作った辞書のフォルダを指定して、mecabrcUTF8、mecabrcSJISとして保存。※設定の効果は疑問?

5.使い方

コマンドラインでMeCabを起動する際に、-r オプションで読み込むテキストの文字コードに該当するrcファイルを指定する

C:\MeCab\bin>mecab -r c:\mecab\etc\mecabrcSJIS

プロンプトも何も出ないが、テキストを適当に入力する。

(例1)
今日は良いお天気ですね。
今日 名詞,副詞可能,,,,,今日,キョウ,キョー
は 助詞,係助詞,,,,,は,ハ,ワ
良い 形容詞,自立,,,形容詞・アウオ段,基本形,良い,ヨイ,ヨイ
お 接頭詞,名詞接続,,,,,お,オ,オ
天気 名詞,一般,,,,,天気,テンキ,テンキ
です 助動詞,,,,特殊・デス,基本形,です,デス,デス
ね 助詞,終助詞,
,,,,ね,ネ,ネ
。 記号,句点,
,,,*,。,。,。
EOS

(例2)
すもももももももものうち
すもも 名詞,一般,,,,,すもも,スモモ,スモモ
も 助詞,係助詞,,,,,も,モ,モ
もも 名詞,一般,,,,,もも,モモ,モモ
も 助詞,係助詞,,,,,も,モ,モ
もも 名詞,一般,,,,,もも,モモ,モモ
の 助詞,連体化,,,,,の,ノ,ノ
うち 名詞,非自立,副詞可能,,,*,うち,ウチ,ウチ
EOS

6.課題

もしかしたら文字コードを直接指定するオプションがあるのかもしれない。


Linux MintをX31にインストールする

Windows対応のUSBメモリ(セキュリティソフトつき)が読めずに困っていたら、友人が「古いPCならあるよ。捨てるつもりだったからあげる。」とX31をくれた。X31はIBM時代のThinkPadで往年の名機でもある。
インタフェースは、パラレル、シリアル、USB、PCMCIA、IrDA、LANが揃っているという凝り様で、内蔵HDDは容量は小さいもののSSDに換装されている。

最初はWindowsマシンにしようとしていたのだが、そもそもOSが外されているのか初期設定されているのかわからないが、いずれにしても現在サポートされているWindows7や10が動くマシンではないので、早々に諦め、Linuxマシンにすることにした。

Ubuntuの系列であるLinux MINTの最新版18/Taraを使うことにした。

最初、図書館に行ってLinuxマガジンの付録DVDからインストールすることを目論んだが、肝心な付録がついた版が貸出中。帰りに自転車がパンクする憂き目に合うも、自宅のPCで2GBのファイルのダウンロードを半日かけて行った。

SHA256のチェックをしても特に問題なさそう。

ISOイメージをDVDに焼き付けるために、Braseroをダウンロードして作成。

ここまでは時間は要したものの手戻りなく進んだ。しかし・・・

DVDを使ってX31を起動しようとすると、最初のMATEの立ち上がり画面が出るものの、その先は「paeに対応したカーネルを選んでください」という内容のエラーメッセージが出て止まってしまう。(´・ω・`)

paeってなんだ

ぐぐってみると、古いCPUを使っている場合には出るメッセージのようで、対応方法も紹介されていた。助かったのは、起動時にF6を押せばオプションが選択できるということがわかったことで、起動画面にはそのようなメッセージがまったく表示されなかったので、右往左往するところだった。

F6で起動オプションがあっさりと出てきて、その中にpaeを強制するというオプションも用意されていたので、設定してリブート。

起動に成功した。

早速、インストールする。

パーティションがWindows用に切られていたので、それはとりあえず残しておき、半分の30GBをMINTに割り当てた(これが最大容量)。

古いマシンなのでWiFiなど当然についていない。机の中にしまいこんでいたPCMCIAの無線LANカード(懐かしい響き)を差し込んでみたら、簡単に認識。