Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

Alexaをラズパイからしゃべらせる(その2)

さて、AlexaというかAmazon Echo Dot をスピーカーとして喋らせて

いてだいたい満足なのですが、ペアリングが切れていることがあって

音声を再生する頭が、Alexaが 「XXに接続します」というような

余分なことを言ってしまいます(笑)

これはかっこ悪いですよね。

 

それで調べると同じことをしている方がいらして、無音のWavファイルという

のを公開してくれています。

 

これをありがたく使わせてもらって、なんちゃってKeep Aliveを

やろうと思っています。

 

bluetoothctl コマンドの解説はいろいろ書かれていて情報があるのですが

インタラクティブな使い方(言い方あってますかね?)なので

bluetoothctl内のコマンドプロンプトに入っての操作の解説ばかりです。

 

再接続したいのでどうしたらいいかなと思っていたのですが、見つけました。

 

bluetooth内のコマンドは

# bleutoothctl -- connect XX:XX:XX:XX:X

のようにコマンドを書けるということです。

なのでShell Script内で

上記のように記述すれば接続後、音声再生ということができます。

定期的に無音再生をやってあげればいいので、

aplay コマンドで無音wavファイルを再生しましょう。

bluetoothスピーカーへは

aplay -D bluealsa:DEV=XX:XX:XX:XX:XX,PROFILE=a2dp /home/ubuntu/muon.wav

と指定すればBT MACアドレスを指定してwavファイルを再生できます。

1行でアドレス指定で再生先を指定できるのでこの記法は便利ですね。

 

cronでkeep aliveしている例がありますが、私はNodeRedからShellをキックする

方法でやります。 NodeRedの定期実行ノード発で記述すると

NodeRed内でやっていることが見えるので私的にはしっくりきました。

 

外部サービスを使いたくない派の方は役にたてれば幸いです。

 

ではでは。