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

"+y использует специальный регистр и является частью функции clipboard vim. Поскольку ваша версия vim не поддерживает буфер обмена (-clipboard означает, что функция буфера обмена недоступна), вам нужно использовать что-то еще.

Вы можете попробовать этот плагин, который не зависит от функция clipboard и должна работать в чистой версии vim. Кажется, что это зависит от одной из программ screen, xclip, tmux.

1
задан 30 April 2016 в 02:02

4 ответа

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

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

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

sudo modprobe snd_aloop

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

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

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

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

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

11
ответ дан 25 May 2018 в 23:48

Исследование показывает, что нет известного способа фильтрации фильтрации шумов в реальном времени с любой подсистемой Linux. Некоторые веб-сайты указывают на аппаратное обеспечение, которое вы можете купить, которое должно сделать трюк намного лучше, чем делать программный фильтр.

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

3
ответ дан 25 May 2018 в 23:48
  • 1
    Жаль, мне интересно, почему нет. Спасибо за исследование. – Vadi 8 January 2011 в 16:16
  • 2
    Конечно! На странице документации модуля нет информации о шумоподавлении. Внутри module-echo-cancel есть только алгоритм AEC (Acoustic Echo Cancellation), который имеет несколько реализаций, таких как webrtc | Speex. – vskubriev 14 February 2018 в 12:16

В этом случае вы можете использовать webrtc-aec в

http://wiki.gentoo.org/wiki/PulseAudio

webrtc-aec Да Использует webrtc. org AudioProcessing library для улучшения VoIP-вызовов в приложениях, которые поддерживают его, выполняя акустическое эхоподавление, аналоговое управление усилением, подавление шума и другую обработку.

Вот документ, датированный 2013 годом по этому вопросу (удаление шума с помощью pulseaudio not webrtc-aec специально) http://wiki.gentoo.org/wiki/PulseAudio

«Мы представили первые результаты многоканального решения по уменьшению шума / эха, построенного на основе PulseAudio, и мотивировали проектные решения. Результатом этой работы стало несколько улучшений в структуре эхоподавления и обработки сигналов PulseAudio, которые были внесены во время цикла разработки версии 3.0 / 4.0 и должны способствовать будущим встроенным аудио-решениям Linux. Дальнейшая работа включает в себя оптимизацию кода для микширования аудиопотоков, более древние методы повторной дискретизации и реализацию эффективного AEC в многоканальном конвейере . "

1
ответ дан 25 May 2018 в 23:48
  • 1
    То, что я имел в виду, было быстрым, заключалось в том, чтобы записывать профиль шума и удалять шум в реальном времени с помощью sox, а затем воспроизводить аудиовыход, который затем я могу использовать в качестве входного потока в импульсе. Я считаю, что импульс способен создавать и перенаправлять входные и выходные потоки таким образом. То есть поток воспроизведения может перенаправляться в качестве входного потока в другое приложение, а поток воспроизведения - для каждого приложения не для каждого устройства, поэтому его не нужно направлять на оборудование устройства. – user2330377 22 June 2013 в 20:53
  • 2
    Я даю это, используя pacmd, чтобы перечислить устройства pulseaudio, pacat для записи и воспроизведения с них и sox, чтобы делать эффекты реального времени в потоке. – user2330377 22 June 2013 в 21:18
  • 3
    Вам было бы интересно разместить сценарии для этого? – Vadi 24 June 2013 в 01:51

На странице документации модуля нет информации о шумоподавлении. В модуле-эхо-отмене есть только алгоритм AEC (Acoustic Echo Cancellation), который имеет несколько реализаций, таких как webrtc |

Поэтому вы должны купить микрофоны со встроенной функцией шумоподавления как можно больше.

Поскольку я тестировал запись голоса в ubuntu, я нашел некоторые особенности:

Skype, Telegram использует исходный ввод с устройства по умолчанию (в моем случае фронтальные микрофонные разъемы back-mic). Если вам нужно отменить шум в этих приложениях, вы должны покупать наушники только со встроенной функцией шумоподавления. Если вам нужно использовать голосовые вызовы в браузере, тогда вам следует иметь в виду, что в браузерах есть собственные алгоритмы обработки голосовой обработки, например. WebRTC. Кроме того, веб-приложения (такие как talky, hangouts, seem.in и т. Д.) Могут иметь собственные алгоритмы обработки голосовой обработки, несмотря на то, что они могут быть основаны на webrtc-видеовстрече
0
ответ дан 25 May 2018 в 23:48

Другие вопросы по тегам:

Похожие вопросы: