Amazon Echoは、話をするようにAmazon Echoに話しかける or Amazon アプリから話すように指示をする等でないと喋ってくれないので、もう少し色々と喋らせる方法はないかと探していました。
本記事ではalexa_remote_controlを使用しますが、その他の方法としてはNode-redを使った方法もあるようです。
他の記事でも色々とまとめられているので、実用性を意識してまとめます。
開発環境について
【ハードウェア】 RasberryPi(普通のPCでもOK) Amazon Echo(Echo, Echo Dot, Echo show)
目次
- 開発環境について
- Alexa-remote-controlのダウンロード
- Alexa-remote-controlを実行するために必要なライブラリをインストール
- Alexa-remote-controlの設定
- Alexa-remote-controlを使用する
- その他コマンドについて
- まとめ
Alexa-remote-controlのダウンロード
Alexa-remote-controlの「alexa-remote_control.sh」を適当なパスに保存する。
pi@rasberrypi: ~ $wget https://raw.githubuser.com/thorsten-gehrig/alexa-remote-control/master/alexa_remote_control.sh
Alexa-remote-controlを実行するために必要なライブラリをインストール
JSONツールが必要になるので、インストールする。
pi@rasberrypi: ~ $sudo apt-get install jq
Alexa-remote-controlの設定
alexa-remote-control.sh内に、以下項目の記載があるので、自身のAmazonアカウントに関する情報と必要な設定項目を入力する。
SET_EMAIL='' #Amazonアカウントにログインするためのemailアドレス SET_PASSWORD='' #Amazonアカウントにログインするためのパスワード SET_LANGUAGE='ja-JP' SET_TTS_LOCALE='ja-JP' SET_AMAZON=''amazon.co.jp SET_ALEXA='alexa.amazon.co.jp'
Alexa-remote-controlを使用する
パターン② pythonコード内で実行
import subprocess cmd = ["./alexa_remote_control.sh", "-e", "speak:おはよう"] res = subprocess.call(cmd)
Amazon Echoデバイスが喋りだしたら成功ですね。"speak:"の後のワードを好きに変えていただければ、そのワードを喋ってくれます。
どちらの方法でも、実行の結果は同じになると思います。
その他コマンドについて
基本公式やalexa-remote-control.sh内にコマンドの詳細記載があるので不要と思いますが、参考まで。
特定の事柄を喋らせる
import subprocess cmd = ["./alexa_remote_control.sh", "-e", "speak:おはよう"] #自由に設定したワードを喋らせる cmd = ["./alexa_remote_control.sh", "-e", "weather"] #天気予報について cmd = ["./alexa_remote_control.sh", "-e", "traffic"] #交通状況について cmd = ["./alexa_remote_control.sh", "-e", "flashbriefing"] #最新ニュースについて cmd = ["./alexa_remote_control.sh", "-e", "tellstory"] #適当な話について res = subprocess.call(cmd)
指定の呼びかけに対する反応
import subprocess cmd = ["./alexa_remote_control.sh", "-e", "textcommand:おはよう"] res = subprocess.call(cmd)
ラジオ再生
import subprocess cmd = ["./alexa_remote_control.sh", "-r", "s8638"] #第3引数にラジオIDを入力する res = subprocess.call(cmd)
まとめ
今回はAmazon Echoを喋らせる方法についてまとめました。
色々と組み合わせて、スマートホーム化を図りたいですね。