Volumio2 & Alexa Voice Service を Raspberry Pi 3 に組み上げる話
我ながら、非常に奇妙な組合せだなぁ…と思いました。
でも、実際にやっているところはないので、やってみたかったのです。
ちなみに、不意な事故で今は動いていません。(´・ω・`)
↑製作途中の状態
※本題は、わりと先の方なので、目次を頼りに飛んでください。
本題の前に…
この記事は、Kogakuin Univ Advent Calendar 2017 の17日目の記事になるそうです。
私は言わずもがな卒業生枠です。
今は朝8時半に出社して、夜8時半ぐらいに退社するという社畜生活を送っています。
でもご安心ください。弊社の業務時間は 9時半~18時半 で、とってもホワイトです!
詳しい話が聞きたい人は呑みに誘ってください。行ける確率は限りなく低いですが。
さて、私の話はこのぐらいにしておいて…
ちょっと思ったこと。
本稿執筆時点で半分ちょっとぐらい投稿された
Kogakuin アドカレの記事を見た感想を少し。
私が昔足を踏み入れていた競技プログラミング団体 "Kogcoder" が、
すごく成長してびっくりしました。
強者が集まり、ICTSCの予選に出場するようになるとは…
かくいう私も、Kogcoder & ICTSC(運営) という二足のわらじ状態だった訳で。
似たような境遇の人が集まっているなぁとしみじみしてました。
もしインフラに興味があるなら、一声ください。
弊社人事がモーレツにアピールしに伺いますので(←ココ重要)
私が作ったサーバ、潰されてるかなーーー???
ネットワーク処女だった私が作った環境なので、今では立派でリッチな環境になっていると信じてます。
それと、kogcoder.slack.com
作ったの私です。今はどうなってるのか分かりません。
さっきログインしようとしたら、ログインID忘れたのでできませんでした。
ついでと思って、一緒に作ったgmailのメアドにログインしようともしました。
こっちはパスワードあるから大勝利と思ったのですが…
負けました。さすがSECCONに出るだけはあります。
それぞれがそれぞれの方向に成長するの、私は見ていて楽しいです。
適度に干渉するから、Advent Calendar企画が3年続くんですかね?
何年続くか分かりませんが、今後も広がりつつ続いてくれると嬉しいなと思いました。
主題に興味のあるその他大勢の方々、おまたせしました。
ここからが本題です。
※本題※ :: ことの始まり
始まりは、日本で Amazon Echo が発売されはじめた頃に遡ります。
招待制での発売当初、割引が効いて、
わりとおもちゃとして1台買ってもいいレベルの金額と思い。
私もビッグウェーブに乗って、招待券を要求しました…
が、しかし。
2017/12/17現在、招待券が私の手元に届いておりません。
どうなってるんやAmazon!!!
ブチ切れた私は、Alexa が Raspberry Pi でも使えるということ、
またその環境で日本語版Alexaが使えることが分かり、閃きました。
今いるラズパイ(volumio)にAlexaぶち込んで、音声認識でmpd操作すれば良いのでは????
かくして、壮大なストーリーが始まるのでした…なお、途中で心が折れたのは言うまでもなく…
Amazon Echoを6,000円で自作する 〜Raspberry Pi 3 + Alexa Voice Services (AVS)〜 | ALGO GEEKS
完成形
Raspberry Pi 3
- Volmio 2 最新
- mpd(volumio2 付属)
- Alexa Voice Service
- alexa-avs-raspberry-pi-master 同梱ファイル各種)
- マイク
- スピーカー
ざっくりとコレぐらいを用意すればいいかと。
準備・物資購入
このために実際に用意したブツたちは次の通り。
Raspberry Pi 3B & 電源
電圧問題が心配だったのと、既存で動いている modelB+ が常に電圧不足と怒られていたので、
この際にリッチな電源を容易。音楽聞くからね、良いやつを用意しないと。
microSDカード 32GB
まあ、オーソドックスなSamsung製を。こだわりは無いです(ここには無いのかい)
https://www.amazon.co.jp/gp/product/B06XSV23T1/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1
キーボード
何でも良いです。一時的に使うだけなので、正直100円ぐらいのジャンクでも可。 私は余ってたThink Pad Keyboardを使いました。
LANケーブル
私はバカなので、自作キットが家にあります。なければ作りましょう。
最悪、無線LANでも良いと思いますが、どうも目にみえないものは信用しない人なので…
マイク
家に転がっていて使っていない ECM-PCV80U を使いまわします。
関係ないですが、スマホ用ピンマイク & 変換ケーブル買いました。
どこで使うのかは聞かないでください。
スピーカー
音楽再生用に、HIFI DAC (HiFiBerry DAC Plus 互換?) を買ってありました。DACはここ。
出力は、RCAでリッチなアンプ(音楽再生用)に繋いでました。
Alexaはラズパイ内臓の3.5mmジャック…と思ったのですが、ノイズが酷いので、
DACのイヤホンジャックに変更しました。喧嘩します。
スピーカーとして、100均のUSB(給電)ミニスピーカーを買いました。
半分衝動買いですが、アンプ機能としては優秀です。
環境構築
詳しい話は、他のサイトに沢山書かれているので、あまり細かく書く気は湧きませんが…
もし希望があれば言ってください。別記事に細かく書きます。
大まかな流れは次の通り。
使うのはSSHとSSHしている端末のブラウザだけです。 GUIは使わずとも動きました。
- Volumio 公式から最新のvolumioイメージをダウンロード & SDに焼き込む *1
- 初回起動 & SSH有効化
- amazon.com developer に登録 & alexa voice service にラズパイを登録 *2
- alexa用ユーザ作成 & 必要パッケージ事前インストール
- alexa用パッケージインストール & 初期設定 *3
- wakeword 挙動確認
この1連の流れで約2時間見込めば大丈夫かと。
特にalexaのセットアップは待ちぼうけなので、お茶でも用意したほうが良いです。
主に引っかかった部分をピックアップして書きます。
一連の流れは、希望があれば別記事にします(2回目)
VolumioのSSH有効化
最新のVolumio2 では、デフォルトでSSHが無効化されています。
これを有効化するには、http://volumio.local/DEV にアクセスし、 SSHのEnableボタンをポチるとおkです。
後は、勝手にSSHが使えるようになります。すごい。
volumio2 の node.js と競合する問題
volumio で node.js を使うようになったらしいが、
組み込みのnode.jsのバージョンが若干古く、
AVS(alexa voice service)では使えない様子。
その為、nodebrew等を使って、node.jsのバージョンを変更する。
上記のとおりに動かせばおk。
バージョンはv8以上にすればおkのはず。
更に、node.js の受付窓口を変更する必要がある。
companionService
側の設定を変更する。
alexa-avs-sample-app/samples/companionService$ nano bin/www
ポート番号がかかれていそうな所を変更する。3003など。
javaclient
側も合わせて変更。
alexa@volumio:~/alexa-avs-sample-app/samples/javaclient$ nano config.json
同上。
wakeword が途中で死ぬ問題
pulseaudio
周りのパッケージを入れる & 起動させる & グループの追加 をすると解決。
sudo apt install pulseaudio pavucontrol chkconfig pulseaudio on
sudo adduser <username or pi> pulse-access
Volumioの "リセット" には要注意
最後に、なにがあったのかを少し。
NAS マウントが調子悪かったので、ユーザ情報のリセットをしようと思ったのですが…
以上だ。
終わりに
使ってみましたが、楽しむ分には良いが、
実用に耐えられるものではありませんでした…
冷静に、Echo Dot を待ちます。