Мікрофон - статичне придушення фонового шуму в Linux


13

Моя звукова карта - 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.

Це також crossposted на Ask Ubuntu , який в свою чергу вже відповіли тут .


1
Перекреслено : askubuntu.com/questions/421671/… З цим ІМО немає нічого поганого, якщо ви чітко вказали його. Інакше ви створюєте потенціал для того, щоб люди витрачали свій час, публікуючи дублюючі відповіді тощо.
goldilocks

2
@goldilocks додав інформацію на обох сайтах про те, що вона перехрещена, щоб переконатися, що не буде повторюваних відповідей
user1873947

Відповіді:


5

Відповідно до специфікації Realtek ,

  • Мікрофонна акустика звукового відміни (AEC), шумопоглинання (NS) та Beam Forming (BF) технологія для голосових додатків

вказано у списку функцій програмного забезпечення . Я також дивився в аркуші даних чіпсета ALC892, і це насправді не є особливістю чіпсета. Тож підтверджено, що ця функціональність є виключно програмною функцією, якою керує ваш драйвер Windows ALC892.

Тому я б доклав зусиль для більш загального рішення шумоподавлення на Linux, не пов'язаного з цим конкретним драйвером:

/programming//q/4875818/684229


дякую за відповідь. Однак питання, яке ви пов’язали, говорить про скасування ехо-сигналу, яке відрізняється від статичного зменшення фонового шуму (луна від динаміків, статичний шум, як правило, викликається обладнанням).
користувач1873947

Очевидно, що Realtek (та інші) були порушені в суді за порушення патенту за їх реалізацію цієї функції lexology.com/library/… Можливо, варто перевірити згадані там патенти.
Фіз

Оскільки я не переконаний у довговічності цього посилання: "Патенти США №52525898 (патент 898); 6,483,923 (патент 923); 6,049,607 (патент 607); 6,363,345 (патент 345); та 6,377,637 (патент 637).
Фіз

3

Якщо це особливість пристрою, а не тільки програмного забезпечення, з яким він поставляється (це, мабуть, колишній), то він повинен бути реалізований у драйвері ядра. 1 Мені здається, що зазвичай звукові картки Realtek PCI фактично використовують драйвер Intel HDA з патчем для підтримки кодеків ALC (для тих, хто зацікавлений [src]/sound/pci/hda/patch_realtek.c:).

Пошук через вихідну документацію ядра, "придушення шуму" або "відміна ехо" не згадуються стосовно цих пристроїв. Шукаючи сам джерело драйвера, воно також прямо не згадується. Я думаю , що якби він був реалізований, це буде майже напевно документовані з інтерфейсом в /procабо /sysякий призначене для користувача програмне забезпечення може використовувати, або з опціями для модуля драйвера.

Звичайно, проблема полягає в тому, що Realtek, як і більшість виробників апаратних засобів, вважає свій вихідний код драйвера секретним, що робить його важким або неможливим для третіх сторін створення драйверів для, наприклад, систем Realtek не підтримує повністю, таких як Linux . У Realtek є сторінка з переліком драйвера Linux , проте посилання здаються мертвими. Якщо вам пощастить, хтось має вказівки щодо його встановлення тут (це сайт, орієнтований на монетний двір, але процес буде однаковим для будь-якого дистрибутива). 2

Однак , навіть якщо ви можете десь знайти копію, я дуже сумніваюся, що драйвер реалізує потрібні вам функції, оскільки про це я не згадую. Швидше за все, це більш-менш те саме, що ви вже маєте; це може бути трохи краще (що на сторінці Mint згадується, що драйвер ядра міняє бічні та задні динаміки), але це може бути і гірше, або зовсім нефункціональним, оскільки драйвери ядра не перевірені розробниками ядра і може містити проблеми стосовно ядра, про які автори не знають (зауважте, що автори патч-версії hda у дереві мають @realtek.com.twадреси електронної пошти).

Тож якщо ви не почуєте будь-якого іншого, вам, ймовірно, не пощастило. Ви можете оглянути програмні рішення для цього, такі можливості, очевидно, реалізовані Skype на linux, тому вони, очевидно, можуть працювати в режимі реального часу, використовуючи лише програмне забезпечення. Хтось також написав папір на цьому, lol. На жаль, у мене не було жодної везіння, на жаль.

Тут є деяка дискусія щодо використання функцій alsamixerдля досягнення певного зниження шуму. Я думаю, вам доведеться відключити pulseaudio для цього.


1. Pulseaudio - це фактично інструмент простору користувача, який побудований поверх ALSA, звукової підсистеми ядра (мається на увазі: pulseaudio не реалізує апаратний доступ, він просто працює з потоками, що надходять з / переходять до драйвера ядра).

2. Якщо ви знайдете її, ви хочете версію 3.0, а не версію 2.6. Ці числа відносяться до версії ядра Linux, з якою вони сумісні, і ви використовуєте ядро ​​3.x. Однак, знову ж таки, якщо ваш звук інакше гаразд, я настійно рекомендую не турбуватися з цим, оскільки навряд чи вам це щось зробить.


Дякую за глибоку відповідь. Однак я знайшов щось, що називається "webrtc-aec module", описане тут: wiki.gentoo.org/wiki/PulseAudio . Однак здається, що це працює лише у додатках, які підтримують цей модуль, чи правильно? Також є ймовірність, що це відключено в Ubuntu, ви випадково знаєте, як увімкнути цей модуль у PulseAudio? Це може бути вирішення моєї проблеми
user1873947

Я не вибач. Модуль імпульсного звучання буде прикладом програмного рішення. Схоже на те, що найкраще було б розглянути окремим, конкретним питанням;)
goldilocks

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.