Debian sid 環境で Bluetooth A2DP になかなか接続できない

最近 Debian sid amd64 環境で Bluetooth オーディオデバイスを接続するとHSP/HFP は選択できますが、音質のいい A2DP が選択肢に出てこないことが多いです。何度か接続し直すと A2DP が選択肢に出ることがあるという感じ。
数回に1回接続し直しで A2DP が利用できていた頃はまだ良かったのですが、最近は10回程接続し直しても駄目です。

続きを読む

LinuxのPulseAudioのエコーキャンセルモジュールがいい感じ

皆さんオンラインミーティングとかやってますか?私は急にオンラインミーティングに参加する頻度が増えました.
これまでマイクはほとんど使っていなかったのでマイクは気にしていなかったのですが気になるようになりました.

Linuxで使えるリアルタイムノイズキャンセルソフトウェアはあるのだろうかと少し調べるとPulseAudioのモジュールで module-echo-cancel というものがあるのを知りました.

とりあえず規定値の設定は簡単で,/etc/pulse/default.pa`というファイルに`load-module module-echo-cancel`を書いてあげてPulseAudioの再起動でokです.
PulseAudioの再起動は手元の環境では `pulseaudio -k
で停止してすぐ自動起動してきました.

$ echo "load-module module-echo-cancel" | sudo tee -a /etc/pulse/default.pa
$ pulseaudio -k
$ ps ux | grep pulseaudio | grep -v grep || pulseaudio --daemonize=no
Note
追記)

/etc/pulse/default.pa はシステムワイドな設定でroot権限も必要なので自分しか使わないなら ~/.config/pulse/default.pa を使ったほうがいいですね.
そしてデーモンの再起動は上の方法だと乱暴なのでこんな感じかな

$ systemctl --user restart pulseaudio.service

これでマイクを利用したいアプリでオーディオデバイスをecho cancelのものに切り替えればOKです.

discord audio
zoom audio

という感じで簡単に設定できました.
この設定有効なのだろうか?とpavucontrolで見てみました.

以下は特に何も話していないときの様子です.上がマイク直のデバイス,下がecho cancel module のされたデバイスの状態です.

pulseaudio echo cancel

バーの動き的にはなにか効いてる感じです.

Discordで音声チャット中に切り替えて聴き比べてもらうと明らかに良くなってるとのこと.
てことでノイズ源が回りにある人は設定がお手軽なのでおすすめです.

ちなみにKrispというノイズキャンセルアプリケーションがあって評判がいいようです.しかし残念ながらLinuxは対応していません(◞‸◟)
でもChrome拡張機能があるのでChromeのウェブアプリでは利用できそうです.