Микрофон - подавление статического фонового шума
Моя звуковая карта - Realtek ALC 892. В Windows 7 я использую официальные драйверы Realtek, в Linux я использую PulseAudio (в Ubuntu 13.10). Как в Windows, так и в Linux, когда я включаю усиление микрофона +30 дБ (требуется, потому что у меня тихий микрофон), я получаю очень раздражающий и громкий фоновый шум (я также подтвердил фоновый шум с Audacity в обеих системах).
Однако в драйверах Windows Realtek есть опция подавления шума (после ее включения Audacity не показывает фоновый шум, и мои уши также подтверждают, что фоновый шум отсутствует).
У меня вопрос, как я могу включить подавление фонового шума в ALSA/PulseAudio? Есть ли какой-нибудь модуль, который я могу установить, или, может быть, для него есть настройка, которую можно включить в файле конфигурации?
Я не могу найти решение для этого, и это единственное, что мешает мне полностью перейти на Linux - так как я много говорю с микрофоном, а в Windows ПО Realtek полностью удаляет фоновый шум, а PulseAudio не удаляет его, что означает, что записанный голос в Linux очень плохой.
Я знаю, что мог бы купить лучшую звуковую карту и микрофон, но, как я уже сказал, драйверы Windows Realtek устраняют шум на программном уровне в режиме реального времени (т.е. не шумят при разговоре по TeamSpeak3/Steam/ любой другой программе voip), поэтому я надеюсь, что есть такая возможность и в Linux.
2 ответа
Я использую lubuntu и уже установил pulseaudio и pavucontrol. Мне удалось устранить проблему с шумом микрофона, запустив Skype из терминала: PULSE_PROP="filter.want=echo-cancel" skype
Немного поздно, но недавно у меня возникла похожая проблема статического фонового шума с внутренним микрофоном моего ноутбука (тот же чипсет Realtek, который я считаю, но решение должно работать для всех звуковых карт). После осмотра, действительно есть способ уменьшить шум в реальном времени в pulseaudio с помощью плагина webrtc echo-cancel (по умолчанию speex echo-cancel в Ubuntu/Mint у меня не работает). Я видел упоминание об этом в PulseAudio Gentoo wiki, но потребовалось время, чтобы выяснить, как включить его в Ubuntu. Для меня это имело какое-то значение, и фоновый шум в Skype теперь почти полностью исчез.
К счастью, Ubuntu уже упаковывает библиотеку webrtc, необходимую для этого. Мы можем скомпилировать из официального источника, применяя минимальные изменения, чтобы включить плагин, а затем установить обновленный пакет:
Включите репозитории исходного кода в программных источниках, затем:
sudo apt install build-essential
# do this if like me you have libjack-jackd2-0 installed and not libjack0
sudo apt install libjack-jackd2-dev
# for jack dependency problem accept the second solution of not installing libjack-dev, libjack0 since we already have installed required dev package above
sudo apt build-dep pulseaudio
# also install webrtc
sudo apt install libwebrtc-audio-processing-dev
# get the pulse source package
apt source pulseaudio
cd pulseaudio-4.0
После этого отредактируйте файл debian / rules, перейдите к ~ строке 57 и добавьте "--enable-webrtc-aec
"чтобы DEB_CONFIGURE_EXTRA_FLAGS
(скажем после --disable-hal-compat
опция)
Затем отредактируйте файл debian/pulseaudio.install и добавьте: usr/lib/pulse-*/modules/libwebrtc-util.so
Если вам также нужен импульсный эквалайзер PulseaAudio, то отредактируйте debian/pulseaudio-utils.install
и добавить: /usr/bin/qpaeq
,
Затем соберите пакет, чтобы получить новые дэбы: dpkg-buildpackage -d -us -uc -nc
Вы должны установить пакеты pulseaudio, pulseaudio-utils и libpulse среди сгенерированных дебов (например, для 64-битной версии Trusty или Mint 17 64-битной: sudo dpkg -i pulseaudio_4.0-0ubuntu11_amd64.deb pulseaudio-utils_4.0-0ubuntu11_amd64.deb libpulse0_4.0-0ubuntu11_amd64.deb libpulsedsp_4.0-0ubuntu11_amd64.deb libpulse-mainloop-glib0_4.0-0ubuntu11_amd64.deb
)
Наконец, включите плагин webrtc в /etc/pulse/default.pa: sudo gedit /etc/pulse/default.pa
Добавьте следующее в конец файла:
### Load echo cancellation module
load-module module-echo-cancel source_name=echosource aec_method=webrtc
set-default-source echosource
Вы также можете включить эквалайзер, если хотите, как упомянуто в ссылке webupd8 выше.
После этого перезапускается pulaudio (pulseaudio -k && pulseaudio --start
), или logoff+relogin, или перезагрузка должна включить плагин шум / эхоподавление в pulseaudio. Каким-то образом я обнаружил, что он работает хорошо после полной перезагрузки, но не так сильно после повторной регистрации.