さて、これまでAlexaをラズパイからしゃべらせていました。
シェルスクリプトでAlexa_Remote_control_plain.sh
を使っていました。
ですが、最近エラーが出ていてAmazonにログインできない状態が続いて
いました。
認証アプリを登録しなおしたりしたのですが、
どうもamazon側の仕様が変わったという情報もあるので、
これ以上は使えないなと判断しました。
コマンドでテキストをしゃべってくれていたので大変便利だったのですが....
対策を考えないといけなくなり、AlexaはAmazon ECHOを使っているのですが
Bluetoothスピーカーになることを思い出しました。
家のサーバはラズパイ4ですので、ちょうどいいですね。
amazonへログインする必要もないので、こちらのほうが遅延もなくいきそうです。
ということで始めたのですが、Bluetoothをラズパイのサーバー環境で
使うのは一苦労でした。
UbuntuサーバーのCLI環境なので、便利なGUIで設定とはいきません。
サーバー環境ではBluetoothの環境をどうそろえればいいのかからでした。
apt install bluetooth bluez を入れます。
このbluezのインストールが曲者です。
snapでもbluezがあるのですが、そちらですと、bluetoothctlでエラーがでます
dbus関係みたいですので apt install bluezのほうを使ってください。
そんなわけで進めていくのですが、wavファイルをAmazon Echoで再生できれば
OKとします。
そうするとどうしてもbluez-alsaが必要なことにたどり着きます。
これが私の調べた範囲ではubuntuではapt install できないんですよね。
(本当か?)
gitからとってきてインストールする必要があります。
久しぶりの configure make の出番となるのですが、configure
が通りません。(涙)
なのでいれなければいけないパッケージを書いておきます。
libsbc-lib
libglib2.0-dev
libdbus-1-dev
libbluetooth-dev
を入れてください。
build-essencial
は大前提です。
これでbulez-alsaが入ります。
その後はまったのが、
bluealsaをデーモンで起動させておくのですが -p オプションで
a2dp-source を指定してください。
いろいろな記事で a2dp-sink
だと思っていたので、はまります。
この状態ですといつまでもechoがペアリングしてくれません。
ペアリングしてしまえばこちらのものコマンドラインでいくらでも
制御できます。
うちは2台echoがあるのでコマンドごとにデバイスを切り替えて再生させて
複数端末での対応ができています。
ラズパイ自体のスピーカーからも再生しているので、3つのスピーカーに
出力できています。
あとはNodeRedからコマンドをキックしてあげればOKです。
bluetoothネットワークとしてロック端末もあるので
そちらの制御もおあずけしていますので楽しみに残しておきます。
自宅内のネットワークでbluetoothでもいろいろできますね。
Wifi Bluetooth Monitcickと3つの電波が飛んでいる我が家です。
今日は疲れた~~~~
ではでは。