目次
はじめに
AmazonでEcho Popを買ったので、対話形式ではなく任意のタイミングで自発的に喋らせてみました。
環境
・Amazon Echo Pop (Alexa搭載スマートスピーカー)
・Raspberry Pi 3 Model B Plus Rev 1.3
▶Raspbian GNU/Linux 11 (bullseye)
・Windows11 (22H2)
▶リフレッシュトークン取得に使用
やったこと
開封と初期セットアップ
意外とコンパクトです。初期セットアップ方法はAmazon公式サイトを参照ください。
https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=Tdhja0feDINQLl19Ll
自発的に喋らせる手順
1.専用のシェルスクリプトをDLする
alexa_remote_control.sh を使います。
wget https://raw.githubusercontent.com/thorsten-gehrig/alexa-remote-control/master/alexa_remote_control.sh
alexa-remote-control/README.md at master · thorsten-gehrig/alexa-remote-control · GitHub
※ alexa_remote_control_plain.sh ならJSON処理のためのjqライブラリが不要らしいのですが、リフレッシュトークンの認証も使えず非推奨なので使いません。
2.jqライブラリをインストール
sudo apt install jq
3.リフレッシュトークンを取得
2023年12月現在、Amazonアカウント認証にはリフレッシュトークンを利用すると良いようです。リフレッシュトークンは一度だけ取得すればOKです。
Lötzimmer: Alexa Remote Control Shell Script
※従来のメールアドレス / パスワード / 2段階認証(MFA)のやり方は2023年12月現在は非推奨のようです。私はこのやり方だとうまくいきませんでした。
で、リフレッシュトークン取得のための専用の実行ファイルが用意されています。
今回はWindows環境で実行しますが、LinuxでもGUIでWebブラウザが開ける環境ならいけそうです。
Releases · adn77/alexa-cookie-cli · GitHub
上記リンクから alexa-cookie-cli-win-x64.exe をDLしてコマンドプロンプト上で実行します。
C:\Users\xxxxx\Downloads>alexa-cookie-cli-win-x64.exe Error: Please open http://127.0.0.1:8080/ with your browser and login to Amazon. The cookie will be output here after successfull login. / null
と表示されたらWebブラウザで http://127.0.0.1:8080/ にアクセスします。
ファイアウォールの許可画面が出てもキャンセルで良いです。
Amazonのログイン画面が出てくるので、アカウント情報を入力して「ANMELDEN(ログインする)」をクリックします。
すると先程のコマンドプロンプト画面に
======================================================================= refreshToken: Atnr|xxxxxxxxxxxxxxxxxxxxxx =======================================================================
みたいな文字列が表示されるので「Atnr|xxxxxxxxxxx」の部分をコピっておきます。
4.alexa_remote_control.sh の中身を書き換える
Linuxに戻ります。
手順1でDLした alexa_remote_control.sh の中身を書き換えます。
sudo vi alexa_remote_control.sh
SET_EMAIL='' ←リフレッシュトークンを使うので不要
SET_PASSWORD='' ←リフレッシュトークンを使うので不要
SET_MFA_SECRET='' ←リフレッシュトークンを使うので不要 SET_REFRESH_TOKEN='Atnr|xxxxxxxxxxxxxxxxxxxxxx' ←手順3のリフレッシュトークンを入れる SET_LANGUAGE='ja-JP'
SET_TTS_LOCALE='ja-JP'
SET_AMAZON='amazon.co.jp'
SET_ALEXA='alexa.amazon.co.jp'
5.alexa_remote_control.sh に実行権限を付与
chmod 755 alexa_remote_control.sh
6.alexa_remote_control.sh を実行して喋らせる
sudo ./alexa_remote_control.sh -d "ALL" -e "speak:テストだよ" sending cmd:speak:テストだよ to dev:れすたぴさんのEcho Pop type:XXXXXXXX serial:XXXXXXX customerid:XXXXXXX
キェェェェェェアァァァァァァシャァベッタァァァァァァァ!! (成功)
目の前のAmazon Echoデバイスくんが喋りだせば成功です。
その後
あとは煮るなり焼くなり色々できそうです。
オプション等のリファレンスは以下を参照ください。