Apakah mungkin untuk melakukan penghapusan noise secara realtime dengan PulseAudio, sehingga output suara yang keluar lebih lancar?
sound
pulseaudio
noise
Vadim Peretokin
sumber
sumber
Jawaban:
Modul pulseaudio
module-echo-cancel
Saya mulai membaca banyak tentang PulseAudio dan opsi "tersembunyi" yang dimilikinya sehingga saya dapat menemukan yang mirip dengan pertanyaan ini. Yang saya temukan adalah modul peredam bising, yang merupakan salah satu yang secara dramatis menurunkan kebisingan statis pada mikrofon dan bahkan BANYAK kebisingan latar belakang, pada dasarnya memberi Anda manfaat hanya merekam suara Anda sendiri dengan kualitas yang sangat baik (Untuk rekaman audio sebagai contoh). Untuk melakukan ini ikuti langkah-langkah ini:
sudo nano /etc/pulse/default.pa
Tambahkan baris berikut di mana saja pada file, tetapi saya sarankan hampir di akhir di mana Anda akan menemukan komentar tentang hal-hal Pembatalan Echo (~ baris 140):
Muat ulang PulseAudio (
pulseaudio -k
) atau cukup nyalakan kembali komputer. Anda harus dapat memilih opsi Pembatalan Kebisingan baru dari Bagian Perangkat Input:Anda dapat menemukan informasi lebih lanjut tentang itu di Halaman Modul Membatalkan Echo
Tetapkan input sebagai default
Jika Anda ingin menetapkan sebagai default perangkat pembatalan gema cukup mengubah baris di atas menjadi:
dan kemudian di bagian bawah file tambahkan
Dalam hal ini saya menamai sumbernya
logitechsource
, tetapi Anda dapat menamainya apa pun yang Anda inginkan dan cukup me-restart pulseaudio.Ganti nama perangkat
Terakhir, jika Anda tidak ingin nama yang sangat panjang pada Pengaturan Suara (Saat Anda ingin memilih perangkat input / output). Saran saya mengubah nama perangkat input seperti ini:
Dan lagi, restart pulseaudio. Hasil akhirnya terlihat seperti ini:
sumber
load-module module-echo-cancel aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1"
sesuai gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/224Ini adalah pertanyaan lama, tetapi saya memiliki masalah yang sama dan setelah beberapa Googling (di mana saya kebanyakan menemukan orang yang setuju itu tidak mungkin) dan membaca beberapa halaman manual, saya sekarang telah mengembangkan solusi berdasarkan ide user2330377.
Pertama, Anda perlu membuat profil kebisingan untuk SoX. Gunakan saja program rekaman audio untuk merekam beberapa detik kebisingan, kemudian
cd
masuk ke direktori tempat Anda menyimpan dan melakukannyasox noise.wav -n noiseprof noise.prof
.Maka Anda perlu membuat perangkat loopback ALSA:
Ini diperlukan karena pulseaudio, tidak seperti Jack, tidak dapat langsung menghubungkan perangkat lunak audio bersama; karenanya kami akan menggunakan perangkat loopback sebagai proxy.
Sekarang Anda perlu memulai
paman
dan menemukan nama-nama mikrofon Anda (atau perangkat rekaman lainnya) dan perangkat loopback yang baru saja kami buat. Setelah itu ditemukan, Anda dapat menjalankan perintah berikut untuk mulai merekam suara dari mikrofon Anda, menyalurkannya melalui SoX dan kemudian memutarnya di perangkat loopback:(Di mana Anda perlu mengganti nama perangkat yang benar untuk parameter -d - perangkat input untuk doa pacat pertama dan output perangkat loopback untuk yang kedua.)
Ini dia, hampir selesai! Sebagai langkah terakhir, mulailah merekam suara dengan aplikasi pilihan Anda, kemudian mulai
pavucontrol
, ubah ke tab "Rekaman" dan atur perangkat audio yang digunakan untuk merekam (ditampilkan sebagai tombol abu-abu ke kanan) ke "Monitor Audio Loopback Alat". Anda sekarang harus memiliki rekaman yang jelas dan bebas noise!sumber
Investigasi menunjukkan bahwa tidak ada cara yang dikenal untuk melakukan penyaringan pengurangan kebisingan waktu nyata dengan setiap sub sistem Linux. Beberapa situs web menunjuk ke perangkat keras yang dapat Anda beli yang seharusnya melakukan trik jauh lebih baik daripada melakukan filter perangkat lunak.
Atau jika ini untuk rekaman, Anda bisa melewati suara melalui Audacity dan menggunakan filter noise di sana.
sumber
module-echo-cancel
, yang memiliki beberapa implementasi, seperti webrtc | speex.Berikut ini pada nada nada leas, menerapkan webrtc-aec di
http://wiki.gentoo.org/wiki/PulseAudio
webrtc-aec Ya Menggunakan pustaka Audio pengolahan webrtc.org untuk meningkatkan panggilan VoIP secara luar biasa dalam aplikasi yang mendukungnya dengan melakukan pembatalan gema akustik, kontrol penguatan analog, peredam bising, dan pemrosesan lainnya.
Berikut ini makalah yang bertanggal 2013 tentang masalah ini (penghapusan noise dengan pulseaudio bukan webrtc-aec secara khusus) http://lac.linuxaudio.org/2013/papers/37.pdf
"Kami telah mempresentasikan hasil pertama dari solusi pengurangan kebisingan / gema multi-channel yang dibangun di atas PulseAudio dan memotivasi keputusan desain. Pekerjaan ini telah menghasilkan sejumlah perbaikan dalam kerangka pembatalan gema PulseAudio dan pemrosesan sinyal, yang telah berkontribusi selama siklus pengembangan versi 3.0 / 4.0 dan harus memfasilitasi solusi audio Linux tertanam di masa depan. Pekerjaan lebih lanjut termasuk kode pengoptimalan untuk pencampuran aliran audio, metode resampling yang lebih efisien, dan penerapan MEA yang efisien dalam pipa pemrosesan multi-channel. "
sumber
Tidak ada informasi pada halaman dokumentasi modul tentang pembatalan kebisingan. Hanya ada algoritma AEC (Acoustic Echo Cancelled) di dalam module-echo-cancel, yang memiliki beberapa implementasi, seperti webrtc | speex.
Karena itu Anda harus membeli mikrofon headset | dengan fitur peredam bising terintegrasi sebanyak mungkin.
Ketika saya menguji rekaman suara di ubuntu saya menemukan beberapa kualitas tertentu:
Skype, Telegram menggunakan input mentah dari perangkat default (dalam kasus saya jack depan-in-mic | backward-mic). Jika Anda perlu membatalkan suara dalam aplikasi ini, Anda harus membeli headset | mikrofon hanya dengan fitur pembatalan kebisingan terintegrasi
Jika Anda perlu menggunakan panggilan suara di browser, maka Anda harus ingat bahwa browser memiliki implementasi algoritma pemrosesan suara sendiri, misalnya WebRTC.
Juga aplikasi web (situs seperti talky, hangout, tampil.in, dll) dapat memiliki implementasi algoritma pemrosesan suara sendiri, meskipun faktanya mereka dapat didasarkan pada analisis hangout webrtc
sumber