へもろぐ

へもへも備忘録

Alexa Voice Service (AVS) のAVS Device SDKをRaspberry Piにインストールしてみた

更新:2018/3/15 ---

3/14にRaspberryPi 3 B+が新製品として発売されました。それに伴い、Raspbianもバージョンアップ(2018-03-13-raspbian-stretch.img)されました。

このバージョンアップされたRaspbianでは、AVS Device SDKを利用した場合に、不具合が発生するようです。

私が試した範囲で、あからさまにおかしなところは「再生音声が遅い」という現象のみでした。

---

 

alexa-avs-sample-appはメンテナンスモードに入ったので、AVS Device SDKをインストールしてみた話です。

 

Amazon Echoの中身であるAlexa Voice ServiceをRaspberryPiにインストールするネタは以前よりたくさんの記事がありますが、日本語の記事では「alexa-avs-sample-app」のほうを使ったものが多いようです。

事情として、

  • 日本語で公開されているAlexa Voice Serviceの一次情報からリンクされているのがalexa-avs-sample-appだから
  • alexa-avs-sample-app以外の公開情報は、SDKにバグがあってインストール完了できる人がすくなかったから

の2点だと思います。

 

ですが、2018/1/25の段階で、alexa-avs-sample-appはメンテナンスモードに入ってしまって、AVS Device SDKを使ってね♡と、展開が変わりました。ちゃんとコンパイル通るようになったようです。

(↓これはメンテナンスモード)

github.com

で、さっそくAVS Device SDKのほうを試してみました

 

これからインストールする人は、これを使ってね↓

GitHub - alexa/avs-device-sdk: An SDK for commercial device makers to integrate Alexa directly into connected products.

 

書いてある手順通りで問題なく動きます。(一部、個人的な事情でハマりましたがw

日本語化も可能でした。

 

ちなみに。利用した機材へのマイクとスピーカーは、↓これです。

ヤザワ アンプリファイドプラグインスピーカー VRS203W

ヤザワ アンプリファイドプラグインスピーカー VRS203W

 

 

私のハマったところは、

  1. VNCクライアントを利用していたせいで、3.5mmピンのスピーカーから音が出なかった
  2. 最初は、スピーカーにアンプ機能がないものを使ってしまって、音が小さかった
  3. 日本語にする方法に気付くのに時間がかかった

でした。

 

まず、1つめの「VNCクライアントを利用していたせいでスピーカーから音がでなかった」問題は、私のところでは以下のような構成だったことが原因でした。

  • WindowsのPCにVNCクライアントを入れて、RaspberryPiをつなぐ(HDMIモニターやキーボード&マウスをラズパイのために用意するのが面倒)
  • その都合上、RaspberryPiのconfig.txtの中の「#hdmi_force_hotplug=1」をコメント外してONな状態にしていた(ここのコメントを外すと、その下にある「#hdmi_group=1と#hdmi_mode=16も変更できるので、VNCクライアントの画面サイズを任意に変更できる)

でした。

この件については、issue479が解決のヒントになりました。

No audio feedback (sound) from Alexa Sample App · Issue #479 · alexa/avs-device-sdk · GitHub

すべての設定が終わって、もう画面サイズはどうでもいいや!というときに、「hdmi_force_hotplug=1」を再びコメントにしてOFFにすることで、スピーカーから音が出るようになりました。

 

2つめは、単純なことで、最初に使ったスピーカーがパッシブ型だったということです。ラズパイから出る音が小さいので…。アクティブ型のものを選んでください。(上にリンク貼ったものは、音がザラザラしてますが、いちおう聞こえる大きさで鳴ります。)

 

3つめの日本語化ですが、これは、今のAVS Device SDKはDEBUG9でログがガンガンでているので、日本語化するためのオプション設定説明画面が流れちゃうのが問題(っていうか、自分が見落としてるのが悪いw)でした。

やり方としては、startsample.sh実行後に、c(enter)してから1(enter)して6(enter)すれば、日本語になります。

この件についてはissue359が解決策の参考になります。

Will the sdk support the en-CA locale at some point? · Issue #359 · alexa/avs-device-sdk · GitHub

 

たぶん、普通はもっとすんなり完了するんだと思いますが…

簡単なので、みなさんも試すといいと思います(トラブルが無ければ、作業時間は1時間未満)。

 

追加

もう1つハマったところありました。refreshTokenの発行です。

4番めの手順に「startauth.sh」の実行があると思うんですが、ここでURLが表示されるんですよ。確かhttp://172.0.0.1:3000/だったと思います。このURLをラズパイのブラウザで開いて、Amazon DeveloperのID/passwordを入力しないと、refreshTokenが発行されないので、あとで困ります。ここを忘れないで欲しいです。(これがあるから、PCからラズパイにつなぐときにSSHではなくてVNCを使ったのでした。)