Шумоподавление для микрофона линукс

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


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

Способ #1

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

И весь ваш звук магическим образом будет избавлен от шумов и эха!
Пример:

До:

После:

Способ #2

Создаем постоянный source и sink с шупоподавлением:

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

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

На хабрахабре есть один из разработчиков PulseAudio — AEP. Благодарю его за консультацию.

Источник

Шумоподавление и PulseAudio

#1 — 3 июня 2016 в 02:36

Доброго времени суток!

Хочу поделиться инфой по вопросу подавления шумов микрофона для Скайпа и пр. Может кому пригодится (нашел на буржуйских форумах). Сразу предупреждаю, решение не идеальное, но вполне работоспособное. Советчики и умники «покупать хорошее и дорогое чтобы потом не мучиться» будут сразу посланы в пешее эротическое путешествие. Я сам знаю, что лучше быть богатым но здоровым, чем бедным и больным. Короче с преамбулой все ясно, дальше описание проблемы

ОПИСАНИЕ ПРОБЛЕМЫ
Раньше покупал ноуты нормальных брендов, и этой проблемы не было (вернее она есть везде, но на хороших звуковых картах она не так заметна). Из-за сиганувшего американского рубля бренды стали кусачие, приходится обращаться к небрендам. Давеча приобрел изделие DEXP. Сама машинка вполне себе ничего. Нормальная рабочая коняга. А вот звуковая карта реальное говно (повторяю для умников с синдромом краткосрочной амнезии — не от хорошей жизни). Включил скайп и попробовал общаться — шум стоит такой, что мама не горюй. Поменял несколько микрофонов, купил хороший с шумоподавлением. Все равно шум спасу нет.

ПОИСК РЕШЕНИЯ
Издалека решение казалось простым и понятным. Есть в виндозных дровах реатека (как пример) функция шумоподавления. Шумит канал, нажал пимпу и дело с концом. По наивности душевной, я надеялся, что где-то кто-то в линухе уже что-то такое давно придумал и нужно только это что-то найти и скачать. Полтора дня ушло на осознание простого факта — такой зверь в природе не водится. Проблема постоянно поднимается, как на наших линукс-форумах, так и за бугром. Однако, до сих пор, никто ничего не сделал (в смысле чтобы полноценное шумоподавление по принципу «скачал, поставил и забыл»).

ТАНЦЫ С БУБНОМ
Итак, имеем вот такой аппарат. (см фото внизу)

На нем стоит ALSA и Pulse Audio. Карта говно и шумит мама не горюй. Советы «сделать потише чтобы не так шумело» сразу идут фтопку. Мне надо более-менее полноценное активное шумоподавление, чтобы меня было слышно хорошо, а все остальное было тихо.

Первое, что выскакивает на всяких форумах — это рассказы про module-echo-cancel, который и эхо подавляет и шумы убирает. Авторы клянутся здоровьем соседского поросенка, что работает. Может у кого-то оно и работает, у меня нет. В смысле немного он конечно убирает, но так как мне надо — нет.

Читайте также:  Ativ smart pc pro 700t windows 10

После всех мытарств нашел решение тут
http://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio/608211#608211?newreg=6d7b1825ed4f4ce295e5e370cc3f20d4
(кто в буржуйской мове шарит может сразу читать оригинал, для остальных я сделал перевод ниже)

ПРИНЦИП РЕШЕНИЯ
Основная идея — обычное активное шумоподавление (берем синусоиду оригинального шума, переписываем ее в противофазу, складываем первое и второе, оно взаимосамоуничтожается, а мы наслаждаемся тишиной). Подробно расписано на Вики тут
https://ru.wikipedia.org/wiki/%D0%90%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D1%88%D1%83%D0%BC%D0%BE%D0%BF%D0%BE%D0%B4%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5

АЛГОРИТМ РЕШЕНИЯ (согласно инструкциям автора)
1) Создаем запись эталонного шума
Я записал в AUDACITY 10 секунд шума, сделал специальную папку NOISE поближе к корню и без русского языка в названиях каталогов, и сохранил туда файл как noise.wav

2) В темноте ручками
cd (путь к файлу)

sox noise.wav -n noiseprof noise.prof.

3) В темноте ручками
sudo modprobe snd_aloop

4) В темноте ручками
paman

откроется диво-дивное, и написано там будет всякое. У меня этого paman не было, пришлось установить через судо апт-гет … ну это вы знаете. Когда откроется, просто оставьте на время. Зачем оно надо поймете в п.№5

5) Самое главное — болванка
(взял у автора на буржуйском сайте — там сцылка вверху. Ежели мое не сработает возьмите в оригинале)
pacat -r -d alsa_input.pci-0000_00_14.2.analog-stereo —latency=1msec|sox -b 16 -e signed -c 2 -r 44100 -t raw — -b 16 -e signed -c 2 -r 44100 -t raw — noisered noise.prof 0.2|pacat -p -d alsa_output.2.analog-stereo —latency=1msec

самое главное в болванке следующее
1) сигнал раз
alsa_input.pci-0000_00_14.2.analog-stereo
2) сигнал два
alsa_output.2.analog-stereo

и 1) и 2) — это понятное дело для образца приведено. Оно у вас будет свое-индивидуальное. И взять это нужно будет в предыдущем шаге №4 (там где диво-дивное). Мне повезло, я сразу нашел что надо и поставил куда нужно (очень может быть, что это потому, что я знаю английский, но не факт…). Ежели вам сразу не повезет, не отчаивайтесь, пробуйте. Количество вариантов не бесконечное.

6) После этого шага буржуйский автор советует включать какую-то pavucontrol
Мне ничего такого не понадобилось. Я сразу включил Audacity пощелкал в источниках звука (появились два новых канала). Один был пустой, а со второго шел сигнал. Я записал сам себя с микрофона — и ЭТО БЫЛО НЕРЕАЛЬНО КРУТО! АБСОЛЮТНО ЧИСТЫЙ СИГНАЛ.

Потом я включил скайп и проверил себя в эхе. Эха тоже показала, что все очень даже хорошо. Кроме меня — ничего. Абсолютная тишина (шум канала от компа гнобит эта программная приблуда, а внешние случайные шумы убивает система активного шумоподавления моей гарнитуры. Короче — красота)

ПОСЛЕСЛОВИЕ
Когда я радостный решил, что все проблемы преодолены и закрыл приложения, до меня медленно дошло, что второй раз может и не получиться. Так и оказалось. Записывать шумовой файл снова не пришлось, конечно. Однако, чтобы воспроизвести результат пришлось делать вот так

sox noise.wav -n noiseprof noise.prof.

sudo modprobe snd_aloop

pacat -r -d alsa_input.pci-0000_00_1b.0.analog-stereo —latency=1msec|sox -b 16 -e signed -c 2 -r 44100 -t raw — -b 16 -e signed -c 2 -r 44100 -t raw — noisered noise.prof 0.2|pacat -p -d alsa_output.platform-snd_aloop.0.analog-stereo —latency=1msec

после чего и Скайп и Аудасити радостно подтвердили, что я все сделал правильно (а вентилятор охлаждения проца неодобрительно зашумел, подтверждая мои смутные догадки). На проц я забил. На то он и проц, чтобы работать и вентилятор ему для охлаждения. Мне главное результат.

Тут, конечное дело, мне захотелось и эти 4 действия автоматизировать-запрограммировать, но на такое моих слабых сил уже не хватило ибо я в Линуксе чел неопытный и все мои достижения они исключительно методом обезьяньего тыка + хорошее знание английского. Ничего, кроме этого я больше добавить не могу, так что спрашивать меня бесполезно.

Источник

NoiseTorch

NoiseTorch — утилита для подавления шумов при записи с микрофона. Позволяет подавлять внешние шумы в автоматическом режиме, например, шум нажатия клавиш на клавиатуре.

Возможности и особенности

  • Программа создает в системе новое устройство — виртуальный микрофон, для которого автоматически подавляются шумы при записи. Во внешней программе, которая использует запись с микрофона, необходимо выбрать данный виртуальный микрофон.
  • Простой графический интерфейс для настройки.
  • Работает на Linux с PulseAudio.
  • Для подавления шумов используется RNNoise — нейронная сеть для шумоподавления.

Установка

Установка в ArchLinux из AUR

Установка в openSuse

Разработка

Сайт (скачать бесплатно):

Обзоры программы от пользователей

Свершилось, кому то хватило доблести написать отличное приложение для шумоподавления под линукс систему, плюсом ко всему с GUI интерфейсом.

Читайте также:  Mac os img to usb

Давно искал лёгкий способ подавить шумы моей механической клавиатуры так как часто приходится сидеть на конференц связи по рабочим моментам, помимо общения необходимо что то написать пока собеседники рассказывают что то, ну вы и сами должны понимать как это может отвлекать, монотонные клацания механической клавиатуры и каждый раз когда нужно воспользоваться клавиатурой выключать микрофон это отдельное мучительное действие.

NoiseTorch это простое в использовании приложение для Linux с PulseAudio. Оно создаёт виртуальный микрофон который подавляет шумы, в любых приложениях. Для начала работы с данным виртуальным микрофоном запустите приложение и выберите какой микрофон будет слушать программа после вы можете выбрать в нужной вам программе виртуальный микрофон NoiseTorch Virtual Microphone. Отлично подавляет звуки механической клавиатуры, улицу и даже работающий рядом пылесос.

Не знаю как давно велась разработка но первый коммит в репозитории проекта был 5 июля 2020 года.

Источник

Удаление шума в реальном времени с PulseAudio?

Можно ли в режиме реального времени удалять шум с помощью PulseAudio, чтобы выходной звуковой сигнал был более плавным?

Pulseaudio модуль module-echo-cancel

Я начал много читать о PulseAudio и «скрытых» опциях, которые у него были, поэтому я смог найти тот, который был похож на этот вопрос. Я обнаружил модуль шумоподавления, который значительно снижает любой статический шум на микрофоне и даже ОЧЕНЬ много фонового шума, в основном давая вам преимущество только в том, чтобы записывать свой голос с превосходным качеством (для записи звука например). Для этого выполните следующие действия:

sudo nano /etc/pulse/default.pa

Добавьте следующую строку в любом месте файла, но я рекомендую почти в конце, где вы найдете комментарий о материале Echo Cancellation (

Перезагрузите PulseAudio ( pulseaudio -k ) или просто перезагрузите компьютер. Вы должны быть в состоянии выбрать новую опцию шумоподавления в разделе устройства ввода:

Вы можете найти больше информации об этом на странице модуля Echo Cancel.

Установить вход по умолчанию

Если вы хотите установить по умолчанию устройство эхоподавления, просто превратите приведенную выше строку в:

а затем внизу файла добавить

В этом случае я назвал источник logitechsource , но вы можете назвать его как хотите и просто перезапустить pulseaudio.

Переименовать устройство

Наконец, если вы не хотите, чтобы в настройках звука было слишком длинное имя (когда вы хотите выбрать устройство ввода / вывода). Мое предложение переименовывает устройство ввода следующим образом:

И снова перезапуск пульсаудио. Конечный результат выглядит так:

Это старый вопрос, но у меня была та же проблема, и после некоторого поиска в Google (где я в основном находил людей, которые согласились, что это невозможно), и, читая некоторые справочные страницы, я теперь разработал решение, основанное на идее user2330377.

Сначала вам нужно создать шумовой профиль для SoX. Просто используйте любую программу для записи звука, чтобы записать несколько секунд шума, а затем cd в каталог, в котором вы его сохранили, и сделайте sox noise.wav -n noiseprof noise.prof .

Затем вам нужно создать петлевое устройство ALSA:

Это необходимо, потому что pulseaudio, в отличие от Джека, не может напрямую соединять аудио программное обеспечение; следовательно, мы будем использовать петлевое устройство в качестве прокси.

Теперь вам нужно запустить paman и найти имена как вашего микрофона (или другого записывающего устройства), так и петлевого устройства, которое мы только что создали. После того, как они найдены, вы можете выполнить следующую команду, чтобы начать запись звука с вашего микрофона, передать его через SoX и затем воспроизвести на петлевом устройстве:

(Там, где вам необходимо подставить правильные имена устройств для параметров -d — устройство ввода для первого вызова pacat и выход устройства loopback для второго.)

Вот и все, почти готово! В качестве последнего шага начните запись звука с приложением по вашему выбору, затем запустите pavucontrol , перейдите на вкладку «Запись» и установите аудиоустройство, используемое для записи (отображается серой кнопкой справа), на «Монитор Loopback Audio». Прибор». Теперь у вас должна быть чистая и бесшумная запись!

Источник

Шумы при записи с микрофона.

Здравствуйте. Уже пару дней пытаюсь разобраться в чём причина шумов с микрофона. Менял в alsamixer значения, как только не передвигал ползунки в pavucontrol, частоту дискредитации исправил на 48000, включал шумоподавление в pulseaudio и так далее из того что нашёл в гугле, но проблема осталась. На этом же ноутбуке, этот же микрофон на window 7 работает идеально, а тут (linux mint 18 xfce) такие проблемы . Помогите разобраться.

Читайте также:  How to clean house windows

Это все пыщьпыщьаудио виноват! Атвичаю!

Пыш-пыш-аудио отключи и сравни.

Ребят, он не врубается, чую. ОП, выруби PulseAudio. Как это сделать? Гугл в помощь. Если не поможет, то напиши.

Okay, отключил и сравнил; С отключенным пульсом, шум и соответственно и голос стали тише. Избавиться от шума никак? Или заменить на что-то pulse?

У меня не трещит. Шум постоянный, гудит в зависимости от громкости микрофона.

Может я не так что-то сделал: В /etc/pulse/client.conf добавил autospawn = no и потом pulseaudio —kill

Выпилить=удалить. sudo apt-get remove pulseaudio.

Удалил и перезагрузился. Изменений нет.

Спойлер: придется переставит пшшаудио.

По ссылке был, в пп написал что не помогло. Переставлять подскажите как.

sudo apt-get install pulseaudio

По ссылкам что вы дали, ничего не помогает. P.S. Значок громкости пропал.

Как настроены разъемы звуковухи? Она точно считает гнездо с микрофоном именно гнездом с микрофоном?

да, считает гнездо с микрофоном именно гнездом с микрофоном

Может скрины что-то подскажут? Как видно, уровень шума высокий, хотя я ничего не говорю в микрофон. Если уменьшить громкость микрофона, то и шум становится тише. http://i.imgur.com/5iQSD5J.png

Попробуй выключить усиление микрофона, Mic Boost в alsamixer, и отрегулировать соответственно уровень записи на самом микрофоне.

Попробовал, если Mic Boost отключить то уровень громкости микрофона становится 30%. Соответственно, громкость шума вместе с громкостью голоса уменьшается. Если громкость увеличить, включается Mic Boost. http://i.imgur.com/6MKIP25.png

шшшшш

Дрова проверь для аудиоплаты и портов микрофона.

И ещё есть дополнительный шум, если включить ноут в розетку. https://clyp.it/1x35pr4s Но этот вопрос уже связан с заземлением?

Почему в windows ничего подобного нет а в линуксе так? Может драйвер надо установить какой?

попробуйте так: arecord -r 192000 -f cd -t wav|aplay

и так: arecord|aplay

в последнем случае характерны шумы — это качество записи как правило т.е. софтовые проблемы

В аудасити пробовал. Попробовал как и вы написали в первом случае качество голоса чётче, но шшшш присутствует. Во втором случае качество плохое, но тоже с шумом.

Если переставлять джек в разьём для наушников то запись не идёт, всё тихо (если вы это имели ввиду).

Все подходит? Просто если мать амдшная, а дрова интеловские, то ничего и не будет работать. Какая модель ноутбука?

PS: Если все подходит, то можешь пересобрать ядро и/или обновить OS.

Acer aspire e1-531 Ос обновил и переустановил. Карта HDA Intel PCH Realtek alc269vb

Ничего не помогает.

Хотя нет, там просто написано, что система запустится.

Хз, может поможет.

Я пробовал до создания темы установить этот драйвер но у меня ошибки выскакивали, не мог понять их причину и так и не смог установить его до конца!

./configure && make && make install

именно так, так в ридми написано но ошибка появляется

Или откатись. В общем, отпишись давай.

Уже установлен пакет gcc самой новой версии (4:5.3.1-1ubuntu1). Ошибка та же.

Ага, самая новая — 6.3.

error: macro «__DATE__» might prevent reproducible builds [-Werror=date-time] «Compiled on » __DATE__ » for kernel %s» ^

cc1: some warnings being treated as errors

gcc version 6.2.0 20160901 (Ubuntu 6.2.0-3ubuntu11

Странно. Есть, конечно, вероятность, что компилять надо с помощью какой-то экзотической версии gcc, но это уже не к нам. Зы: попробуй пересобрать ведро.

Извините, не знаю как.

А ядро уже советовали пересобрать? Лан, шучу.

Возможно, что в виндовом драйвере включено шумоподавление. У меня старый ноут так шумел. Включаешь шумоподавление — не шипит, но звук становится мерзкий. Во втором файле пик чётко на 50 герцах, навряд ли это софт 🙂

Возможно ещё какой-нибудь прибор шумит, кроме самого ноутбука. Я имею в виду электромагнитные наводки и помехи.

Если есть винда, то запиши какой-нибудь стишок на ней и в линуксе и сравни качество. Сохранять лучше во flac или wav. Шумоподавление часто срезает высокие частоты, да и в общем качество звука должно ухудшиться. Попробуй ещё отключить в alsamixer остальные входы звуковой карты, если ещё не советовали.

Если хочешь, то можешь записи сюда выложить, я тебе скажу своё икспертное мнение 🙂

Запись с линукса: https://clyp.it/pude2wg1 громкость сразу у себя пониже сделайте) Запись с виндовса: https://clyp.it/evax5ww2

P.S. С виндовс’a когда прослушивал, шум был тише, а когда щас с линукса прослушал — шум громче оказывается Оо.

Среди приборов есть только модем с вай-фаем.

Источник

Оцените статью