Общий доступ к pulseaudio
Если вы хотите просто передать звук второму пользователю, например, запустить программу через kdesudo, то отлично подойдет данный способ, и не нужно будет включать system wide mode у pulseaudio.
Создайте файл
nano /etc/pulse/default.pa.d/pulse-socket.pa
_x000D_load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse-socketНа другом пользователе в файле
nano /home/otheruser/.config/pulse/client.conf
_x000D_default-server = unix:/tmp/pulse-socketПоменять лево и право
Рекомендую создать этот файл, потому что иногда в некоторых приложениях неверно работает стеро, перепутаны лево и право.
nano /etc/pulse/default.pa.d/swap-left-right.pa
_x000D_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) Настройка конфига
Во первых вам нужно узнать название микрофона через команду
_x000D_pacmd list-sources | grep name:Создайте файл
nano /etc/pulse/default.pa.d/remove-microphone-noise.pa
_x000D_# Remove microphone noise_x000D_load-module module-echo-cancel source_master='НАЗВАНИЕ_УСТРОЙСТВА' aec_method=webrtc format=s16le rate=48000 channels=2 aec_args="analog_gain_control=0"_x000D_Если у вас несколько устройств, то нужно добавить несколько записей. После подключения микрофона, нужно выполнить команду:
_x000D_pulseaudio -k2) Настройка udev.
Настройки udev не работают. А жаль 🙁
Т.к. микрофон может включаться или отключаться через USB порт, то нужно настроить автоматическое подключение module echo cancel для конкретного микрофона
С помощью команды мониторинга события udev нужно узнать ID_MODEL
_x000D_udevadm monitor --environment --udevВставьте значения в файл, вместо ИД_МОДЕЛИ и НАЗВАНИЕ_УСТРОЙСТВА. Название устройства должно быть без скобок
nano /etc/udev/rules.d/99-microphone.rules
_x000D_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
_x000D_udevadm control --reload-rulesДля каждого подключаемого микрофона вам нужно задать свои параметры
Также рекомендуется запустить команду
_x000D_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 для этого микрофона
_x000D_pacmd list-sources | grep name: