Pull to refresh

Давим шумы средствами PulseAudio

Reading time2 min
Views80K
image
Часто вижу, как владельцы ноутбуков жалуются на шумы микрофона в Linux, в то время как под Windows их меньше, либо же они вообще отсутствуют. Как правило, виноват в этом производитель, установивший самый дешевый микрофон и/или кодек из возможных, надеясь на сглаживание отвратительного качества железа программными средствами.
К счастью, в Linux есть замечательный аудиосервер PulseAudio, с помощью которого можно сделать аудио с вашего микрофона заметно качественней.

Способ #1

Для того, чтобы использовать встроенный модуль подавления шума и эха PulseAudio, работающий по алгоритму webrtc или speex, для какой-то конкретной программы, достаточно запустить ее с переменной окружения:
PULSE_PROP="filter.want=echo-cancel"

И весь ваш звук магическим образом будет избавлен от шумов и эха!
Пример:
PULSE_PROP="filter.want=echo-cancel" skype

До:
image
После:
image

Способ #2

Создаем постоянный source и sink с шупоподавлением:
load-module module-echo-cancel source_name=noechosource sink_name=noechosink
set-default-source noechosource

Можно добавить эти строки в /etc/pulse/default.pa куда-нибудь в конец, чтобы они выполнялись каждый раз при запуске pulseaudio.

К сожалению, в текущей версии PulseAudio существует баг, из-за которого этот модуль работает только тогда, когда производится не только запись, но и воспроизведение. Скажем, в Skype, Mumble и прочих голосовых телефонах будет все сразу замечательно, а если вы заходите только записать звук, например, через audacity, то следует включить в нем какую-то музыку фоном, даже с минимальной громкостью.
Если вы используете второй способ, убедитесь, что нужная вам программа воспроизводит аудио в sink с шумоподавлением, а не напрямую в аудиокарту. Перенести sink можно, например, через pavucontrol.
Не воспроизводите музыку в аудиоплеере через sink с шумоподавлением, а то получите звук в моно и 32кГц.

На хабрахабре есть один из разработчиков PulseAudio — AEP. Благодарю его за консультацию.
Tags:
Hubs:
Total votes 39: ↑38 and ↓1+37
Comments38

Articles