Debian BullseyeのサウンドサーバのPipeWireですが,experimentalだとかBullseyeのPipeWireは現在の状態を表すものではないとか書かれています.でもちょっと試したいことがあってDebian Wikiを見ながらPulseAudioからPipeWireに切り替えてみました.少し試したあと元のPuleAudioに戻したのですが,以前使えていたBluetooth A2DPに切り替えできなくなりました.
タグ: PulseAudio
ミュートアンミュートスクリプトを修正
以前Awesome wmでボリュームコントロールをするのにscriptを書いてこれまで使っていました.
しかし,最近アンミュートにしても音が出なくなりました.
$ amixer -c 0 get Master
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 87
Mono: Playback 36 [41%] [-38.25dB] [on]
pavucontrolで見るとミュートになっています.
これをアンミュートすると音が出ます.
scriptで制御できるようコマンドで試します. pactl set-sink-mute
コマンドで制御できました.
$ pactl set-sink-mute
You have to specify a sink name/index and a mute action (0, 1, or 'toggle')
$ pactl set-sink-mute 0 1 (1)
$ pactl set-sink-mute 0 0 (2)
- ミュート
- アンミュート
ということでscriptに追記しました.動作も問題なさそうです.これでビデオチャット時にアンミュートしたのに音が聞こえない??とならないといいな.
$ git -C ~/.config/awesome/ diff ~/.config/awesome/bin/awesome-audio.sh
diff --git a/bin/awesome-audio.sh b/bin/awesome-audio.sh
index 440f399..9c30d3d 100755
--- a/bin/awesome-audio.sh
+++ b/bin/awesome-audio.sh
@@ -22,6 +22,7 @@ case "$1" in
amixer -q -c 0 set Master unmute
amixer -q -c 0 set Speaker unmute
amixer -q -c 0 set Headphone unmute
+ pactl set-sink-mute 0 0
xset b
echo -e "🔊\nunmute!"
amixer -c 0 get Master | tail -1 | cut -d '[' -f 2 | sed s/\]// | xargs notify-send -u low -t 500 -i '/usr/share/icons/ContrastHigh/scalable/status/audio-volume-high.svg' numute
$ dpkg-query -W pulseaudio pulseaudio-utils pavucontrol alsa-utils
alsa-utils 1.2.4-1
pavucontrol 4.0-2
pulseaudio 14.2-1
pulseaudio-utils 14.2-1
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -m
x86_64
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
|
追記)
$ systemctl --user restart pulseaudio.service |
これでマイクを利用したいアプリでオーディオデバイスをecho cancelのものに切り替えればOKです.
という感じで簡単に設定できました.
この設定有効なのだろうか?とpavucontrolで見てみました.
以下は特に何も話していないときの様子です.上がマイク直のデバイス,下がecho cancel module のされたデバイスの状態です.
バーの動き的にはなにか効いてる感じです.
Discordで音声チャット中に切り替えて聴き比べてもらうと明らかに良くなってるとのこと.
てことでノイズ源が回りにある人は設定がお手軽なのでおすすめです.
ちなみにKrispというノイズキャンセルアプリケーションがあって評判がいいようです.しかし残念ながらLinuxは対応していません(◞‸◟)
でもChrome拡張機能があるのでChromeのウェブアプリでは利用できそうです.