Настройки pulseaudio
Общий доступ к pulseaudio
Если вы хотите просто передать звук второму пользователю, например, запустить программу через kdesudo, то отлично подойдет данный способ, и не нужно будет включать system wide mode у pulseaudio.
Создайте файл
nano /etc/pulse/default.pa.d/pulse-socket.pa
load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse-socket
На другом пользователе в файле
nano /home/otheruser/.config/pulse/client.conf
default-server = unix:/tmp/pulse-socket
Поменять лево и право
Рекомендую создать этот файл, потому что иногда в некоторых приложениях неверно работает стеро, перепутаны лево и право.
nano /etc/pulse/default.pa.d/swap-left-right.pa
load-module module-remap-sink sink_name=reverse-stereo master=0 channels=2 master_channel_map=front-right,front-left channel_map=front-left,front-right
Убрать шум микрофона
1) Настройка конфига
Во первых вам нужно узнать название микрофона через команду
pacmd list-sources | grep name:
Создайте файл
nano /etc/pulse/default.pa.d/remove-microphone-noise.pa
# Remove microphone noise
load-module module-echo-cancel source_master='НАЗВАНИЕ_УСТРОЙСТВА' aec_method=webrtc format=s16le rate=48000 channels=2 aec_args="analog_gain_control=0"
Если у вас несколько устройств, то нужно добавить несколько записей. После подключения микрофона, нужно выполнить команду:
pulseaudio -k
2) Настройка udev.
Настройки udev не работают. А жаль :(
Т.к. микрофон может включаться или отключаться через USB порт, то нужно настроить автоматическое подключение module echo cancel для конкретного микрофона
С помощью команды мониторинга события udev нужно узнать ID_MODEL
udevadm monitor --environment --udev
Вставьте значения в файл, вместо ИД_МОДЕЛИ и НАЗВАНИЕ_УСТРОЙСТВА. Название устройства должно быть без скобок
nano /etc/udev/rules.d/99-microphone.rules
ACTION=="change", SUBSYSTEM=="sound", ENV{ID_TYPE}=="audio", ENV{ID_MODEL}=="ИД_МОДЕЛИ", ENV{PULSE_SERVER}="unix:/tmp/pulse-socket", RUN+="/usr/bin/pactl load-module module-echo-cancel source_master='НАЗВАНИЕ_УСТРОЙСТВА' aec_method=webrtc format=s16le rate=48000 channels=2 aec_args='analog_gain_control=0'"
Также, вам нужно убедиться что доступен /tmp/pulse-socket
Затем нужно перезагрузить команды udev
udevadm control --reload-rules
Для каждого подключаемого микрофона вам нужно задать свои параметры
Также рекомендуется запустить команду
pactl load-module module-echo-cancel source_master='НАЗВАНИЕ_УСТРОЙСТВА' aec_method=webrtc format=s16le rate=48000 channels=2 aec_args='analog_gain_control=0'
И убедится, что она работает без ошибок. Возможно нужно убрать какие-то параметры. Например, если микрофон моно, то параметр channels=2 не нужен.
После настроек, отключите из USB микрофон и включите его заново. У вас должен появится новое устройство echo cancel для этого микрофона
pacmd list-sources | grep name: