Mikrofon - penindasan kebisingan latar belakang statis di Linux

13

Soundcard saya adalah Realtek ALC 892. Di Windows 7 saya menggunakan driver Realtek resmi, di Linux saya menggunakan PulseAudio (di Ubuntu 13.10). Pada Windows dan Linux, ketika saya mengaktifkan mikrofon boost + 30db (diperlukan karena mikrofon saya tidak berisik), saya mendapatkan suara latar yang sangat mengganggu dan keras (Saya juga mengkonfirmasi suara latar dengan Audacity di kedua sistem).

Namun, driver Windows Realtek memiliki opsi peredam bising yang berfungsi (setelah mengaktifkannya, Audacity tidak menunjukkan kebisingan latar belakang dan telinga saya juga mengkonfirmasi bahwa tidak ada kebisingan latar belakang).

Gambar yang menunjukkan opsi peredam bising

Pertanyaan saya adalah bagaimana saya bisa mengaktifkan peredam bising latar belakang di ALSA / PulseAudio? Apakah ada modul yang dapat saya instal atau mungkin ada pengaturan untuk itu yang dapat diaktifkan dalam file konfigurasi?

Saya tidak dapat menemukan solusi untuk itu dan ini adalah satu-satunya hal yang mencegah saya beralih ke Linux sepenuhnya - karena saya banyak berbicara menggunakan mikrofon dan pada Windows perangkat lunak Realtek menghilangkan kebisingan latar belakang sepenuhnya dan PulseAudio tidak menghapusnya, yang berarti rekaman suara di Linux sangat buruk.

Saya tahu saya bisa membeli kartu suara dan mikrofon yang lebih baik, tetapi seperti yang saya katakan, driver Windows Realtek menghapus kebisingan pada tingkat perangkat lunak secara real time (yaitu tidak ada suara ketika berbicara di TeamSpeak3 / Steam / program voip apa pun) jadi saya berharap ada opsi seperti itu di Linux juga.

Ini juga crossposted pada Tanya Ubuntu yang pada gilirannya sudah dijawab di sini .

pengguna1873947
sumber
1
Crossposted : askubuntu.com/questions/421671/… Tidak ada yang salah dengan IMO itu jika Anda menunjukkannya secara eksplisit. Kalau tidak, Anda membuat potensi orang membuang-buang waktu untuk mengirim jawaban rangkap, dll.
goldilocks
2
@goldilocks menambahkan info di kedua situs yang crossposted untuk memastikan tidak akan ada jawaban duplikat
user1873947

Jawaban:

5

Menurut spesifikasi Realtek ,

  • Pembatalan Mikrofon Acoustic Echo (AEC), Noise Suppression (NS), dan Beam Forming (BF) untuk aplikasi suara

tercantum dalam daftar Fitur Perangkat Lunak . Saya juga melihat datasheet chipset ALC892 dan sebenarnya bukan fitur chipset. Jadi dipastikan bahwa fungsi ini hanya merupakan fitur perangkat lunak, yang ditangani oleh driver Windows ALC892 Anda.

Karena itu saya akan berusaha untuk solusi yang lebih umum dari penindasan kebisingan di linux, tidak terikat pada driver khusus ini:

/programming//q/4875818/684229

Tomas
sumber
Terima kasih atas jawabannya. Namun pertanyaan Anda yang terhubung mengatakan tentang pembatalan gema, yang berbeda dari pengurangan kebisingan latar belakang statis (gema dari speaker, kebisingan statis umumnya disebabkan oleh perangkat keras).
user1873947
Rupanya Realtek (dan lainnya) digugat karena pelanggaran paten atas penerapan fitur ini lexology.com/library/... Mungkin patut untuk memeriksa paten yang disebutkan di sana.
Fizz
Karena saya tidak yakin dengan keawetan tautan itu: "Paten AS No. 5.825.898 (paten '898); 6.483.923 (paten' 923); 6.049.607 (paten '607); 6.363.345 (paten' 345); dan 6.377.637 (paten '637) ".
Fizz
3

Jika ini adalah fitur perangkat dan bukan hanya perangkat lunak yang menyertainya (itu mungkin yang pertama), maka harus diimplementasikan dalam driver kernel. 1 Tampak bagi saya bahwa biasanya, kartu suara PCI Realtek sebenarnya menggunakan driver Intel HDA dengan tambalan untuk mendukung codec ALC (untuk siapa saja yang tertarik [src]/sound/pci/hda/patch_realtek.c:).

Mencari melalui dokumentasi sumber kernel, "penindasan kebisingan" atau "pembatalan gema" tidak disebutkan dalam kaitannya dengan perangkat ini. Mencari sumber driver itu sendiri, itu tidak disebutkan secara eksplisit juga. Saya pikir jika itu dilaksanakan, ini akan hampir pasti akan didokumentasikan dengan antarmuka di /procatau /sysperangkat lunak mana userspace bisa menggunakan, atau dengan pilihan untuk modul driver.

Masalahnya, tentu saja, adalah bahwa Realtek, seperti kebanyakan produsen perangkat keras, menganggap kode sumber driver mereka sebagai rahasia, sehingga sulit atau tidak mungkin bagi pihak ketiga untuk membuat driver untuk, misalnya, sistem Realtek tidak sepenuhnya mendukung, seperti linux . Realtek memang memiliki halaman yang mencantumkan driver linux , namun tautannya tampaknya sudah mati. Jika Anda lebih beruntung, seseorang memiliki instruksi untuk menginstalnya di sini (itu adalah situs yang berorientasi pada Mint, tetapi prosesnya akan sama untuk setiap distro). 2

Namun , bahkan jika Anda dapat menemukan salinan di suatu tempat, saya sangat meragukan driver mengimplementasikan fitur yang Anda inginkan, karena tidak ada penyebutan yang dapat saya temukan. Kemungkinan besar, itu kurang lebih sama dengan apa yang sudah Anda miliki; mungkin sedikit lebih baik (halaman Mint menyebutkan driver kernel menukar speaker samping dan belakang), tetapi mungkin juga menjadi lebih buruk, atau benar-benar tidak berfungsi, karena driver out-of-tree tidak diperiksa oleh kernel dev. dan mungkin berisi masalah yang berkaitan dengan kernel yang tidak disadari oleh penulis (perhatikan bahwa penulis tambalan hda in-tree memiliki @realtek.com.twalamat email).

Jadi, kecuali Anda mendengar perbedaan, Anda mungkin kurang beruntung. Anda dapat melihat-lihat solusi perangkat lunak untuk ini, fitur-fitur seperti itu tampaknya diimplementasikan oleh Skype di linux, sehingga mereka jelas dapat bekerja secara real time menggunakan perangkat lunak saja. Seseorang juga menulis makalah tentang itu, lol. Sayangnya, saya tidak memiliki keberuntungan untuk mencari-cari.

Ada beberapa diskusi di sini tentang penggunaan fitur alsamixeruntuk mencapai pengurangan kebisingan. Saya pikir Anda harus menonaktifkan pulseaudio untuk melakukan itu.


1. Pulseaudio sebenarnya adalah alat userspace yang dibangun di atas ALSA, subsistem suara kernel (artinya: pulseaudio tidak mengimplementasikan akses perangkat keras, ia hanya bekerja dengan aliran yang datang / pergi ke driver kernel).

2. Jika Anda menemukannya, Anda ingin versi 3.0, bukan versi 2.6. Angka-angka itu merujuk pada versi kernel linux yang kompatibel dengan mereka dan Anda menggunakan kernel 3.x. Namun, sekali lagi, jika suara Anda tidak apa-apa, saya sangat menyarankan Anda untuk tidak repot-repot dengan ini karena tidak mungkin melakukan apa pun untuk Anda.

goldilocks
sumber
Terima kasih atas jawaban mendalam. Namun saya menemukan sesuatu yang disebut "modul webrtc-aec" yang dijelaskan di sini: wiki.gentoo.org/wiki/PulseAudio . Namun sepertinya itu hanya berfungsi di aplikasi yang mendukung modul itu, apakah itu benar? Juga ada kemungkinan bahwa ini dinonaktifkan di Ubuntu, apakah Anda tahu cara mengaktifkan modul ini di PulseAudio? Ini mungkin solusi untuk masalah saya
user1873947
Saya tidak minta maaf. Modul pulseaudio akan menjadi contoh solusi perangkat lunak. Sepertinya jenis hal yang sebaiknya diperlakukan dengan pertanyaan yang terpisah dan spesifik;)
goldilocks