Falconの思うままに

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

Alexaをラズパイからしゃべらせる。

さて、これまで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つの電波が飛んでいる我が家です。

 

今日は疲れた~~~~

 

ではでは。