mozikeru.com

和歌山在住。1児の父。IoTエンジニア。各種ご相談承ります。

AmazonECHO(Alexa)をRaspberryPI3で試す

最近何かとスマートスピーカーが話題ですので、AmazonECHO(Alexaのサンプル版)をRaspberryPI3にインストールして試してみたのですが、地味に苦労してしまったので、ハマりどころについてメモを残しておきます。

f:id:mozikeru:20170918163618j:plain

 

ハードウェア、OSのバージョン等は以下の条件です。

[筐体]
・RaspberryPI3

[OS]
・Raspbian stretch(2017-08-16版)

[スピーカー]
・3.5mmジャック接続スピーカー

[マイク]
・USBマイク


マイクは以下のものです。


手順及び、Alexaソースコードは以下を使用しました。

github.com

 

以下、各問題と試みた対処法です。


【mvn exec:execコマンドに失敗する】

[原因インストールPATHを変えてはいけない]

手順ではDesktopディレクトリにソースコードを配置して実行することになっていますが、「デスクトップにインストールして使うのは如何なものか」と思い、/usr/配下に任意のディレクトリを作成して進めた結果、見事に行き詰まりました。
piユーザーでログイン後、~/DesktopにGit Cloneしてやりなおしました。

[原因2 VLCがうまくリンクしない]

以下を見ると、どうも使用したバージョンのRaspbian(stretch)にはまだAlexaSampleが対応しておらず、そのままではうまく動かない様子。
https://github.com/alexa/alexa-avs-sample-app/issues/907

上記に書かれていた対処に従い、下記のシンボリックリンクを作成して回避しました。

cd /usr/lib/arm-linux-gnueabihf
sudo ln -s libvlc.so.5 libvlc.so
sudo ldconfig


【URLがポップアップせず、AmazonへのAccessTokenが取得できない】

[原因:JAVAのバージョンが古い]

alexa-avs-sample-app/samples/javaclient/pom.xmlを見ると、
AlexaはJDK 1.8.0_121を必要としますが、環境に入っているバージョンは少し古いものであり、うまく動作出来ていませんでした。下記のURLを参考に、JAVA8のアンインストール→再インストールを行うことで対処しました。
https://raspberrypi.stackexchange.com/questions/45976/how-do-i-update-java-8-in-raspbian


【wakeWordAgentの起動に失敗する】

wakeWordAgentを起動することで、「Alexa」と呼びかけることで起動してくれるようになりますが、うまくいきませんでした。
どうやら、これも使用したRaspbianのバージョン(stretch)に起因するもののようです。
以下の内容を元に対処をすすめました。

http://qiita.com/mongamae-nioh/items/28599bba9fa9cf96acb9
https://github.com/alexa/alexa-avs-sample-app/issues/902
http://cami-and-co.blog.jp/archives/13970826.html

がんばってみましたが、最終的にwakeWordAgentは起動せず。
どうもマイクとスピーカーがうまく取得できていないようです。


■結論として

古いバージョンのRaspbianを以下から取得して一からやり直しました。
http://downloads.raspberrypi.org/raspbian/images/

2017-07-05版のjessieを使うと今までの苦労が嘘のようにすんなりと起動出来るようになりました。(所要時間40分程度)


しばらくはAlexaSampleを試すのであれば、jessieを使用した方が無難かもしれません。


■使用している様子

「Alexa Tell me news !」と言ってみました。無事にニュース番組(だと思われる)を再生してくれています。

…しかし途中で止めるにはどうしたらいいかわからず、そっとボリュームを落としました…。多分、英語で「止めて」的な事を言えばいいんでしょうが、わかりません…。