Plugin peredam bising real-time untuk suara berdasarkan RNNoise Xiph. Info lebih lanjut tentang perpustakaan dasar.
Plugin ini dimaksudkan untuk menekan berbagai sumber kebisingan (dari kertas asli): kipas komputer, kantor, keramaian, pesawat terbang, mobil, kereta api, konstruksi.
Dari pengujian saya, kebisingan latar belakang yang ringan selalu ditekan, suara keras, seperti bunyi klik pada keyboard mekanis, ditekan saat tidak ada suara, namun volumenya hanya dikurangi saat ada suara.
Perlu diketahui bahwa plugin ini tidak dapat meningkatkan kualitas suara dengan mikrofon yang buruk, bahkan dapat memperburuk keadaan dengan salah mengklasifikasikan suara sebagai suara bising yang akan mengurangi kualitas suara yang sudah tidak terlalu bagus.
Plugin ini berfungsi dengan satu atau lebih saluran, input audio 16 bit, 48000 Hz.
❗ ❗ ❗ JANGAN gunakan sample rate lainnya, gunakan HANYA 48000 Hz, pastikan sumber audio Anda 48000 Hz dan paksakan menjadi 48000 Hz jika tidak.
Ada GUI minimalis dengan semua parameter dan statistik diagnostik:
Rilis terbaru
VAD Threshold (%)
- jika kemungkinan suara menjadi suara lebih rendah dari ambang batas ini - maka akan dibungkam. Dalam kebanyakan kasus, ambang batas antara 85% - 95% sudah cukup. Tanpa VAD beberapa suara keras mungkin masih sedikit terdengar saat tidak ada suara.VAD Grace Period (ms)
- berapa lama setelah deteksi suara terakhir, output tidak akan dibungkam. Ini membantu ketika akhir kata/kalimat terpotong.Retroactive VAD Grace Period (ms)
- mirip dengan VAD Grace Period (ms)
tetapi untuk permulaan kata/kalimat.Untuk memeriksa atau mengubah pengaturan mikrofon, buka "Perangkat perekam" -> "Rekaman" -> "Properti" mikrofon target -> "Lanjutan".
Untuk mengaktifkan plugin di Equalizer APO pilih "Plugins" -> "VST Plugin" dan tentukan plugin dll.
Lihat panduan terperinci yang disediakan oleh @bssankaran.
Sejak versi 0.3.45
PipeWire menggunakan Konfigurasi File Terpisah, sehingga sangat mudah untuk menyiapkan plugin dan mengubah konfigurasi.
Untuk versi PipeWire yang lebih lama Anda harus menyalin /usr/share/pipewire/pipewire.conf
ke ~/.config/pipewire/pipewire.conf
dan kemudian menambahkan konfigurasi di bawah ini ke context.modules
yang sudah ada.
Untuk PipeWire >= 0.3.45
Anda harus:
~/.config/pipewire/pipewire.conf.d/
~/.config/pipewire/pipewire.conf.d/99-input-denoising.conf
context.modules = [
{ name = libpipewire-module-filter-chain
args = {
node.description = "Noise Canceling source"
media.name = "Noise Canceling source"
filter.graph = {
nodes = [
{
type = ladspa
name = rnnoise
plugin = /path/to/librnnoise_ladspa.so
label = noise_suppressor_mono
control = {
"VAD Threshold (%)" = 50.0
"VAD Grace Period (ms)" = 200
"Retroactive VAD Grace (ms)" = 0
}
}
]
}
capture.props = {
node.name = "capture.rnnoise_source"
node.passive = true
audio.rate = 48000
}
playback.props = {
node.name = "rnnoise_source"
media.class = Audio/Source
audio.rate = 48000
}
}
}
]
/path/to/librnnoise_ladspa.so
ke jalur perpustakaan sebenarnyanoise_suppressor_mono
-> noise_suppressor_stereo
. Meskipun mikrofon Anda menyatakan itu stereo - Anda mungkin tidak memerlukan keluaran stereo. Itu juga akan menghabiskan sumber daya 2x.VAD Threshold (%)
, ...systemctl restart --user pipewire.service
Noise Canceling source
sebagai perangkat inputUntuk informasi lebih lanjut, lihat dokumentasi PipeWire di Filter-Chains
Pemecahan masalah:
Solusi alternatif untuk konfigurasi PipeWire/PulseAudio yang juga menggunakan RNNoise:
TLDR: Gunakan PipeWire... atau ikuti petunjuk di bawah.
Idenya adalah:
sink_master
) dan memiliki input sink (parameter sink_name
, sink akan dibuat).source
) ke input sink plugin ( sink
) dengan 1 saluran.Misalnya, untuk membuat perangkat mono baru dengan audio peredam bising dari mikrofon Anda, pertama-tama, temukan nama mikrofon Anda menggunakan misalnya:
pactl list sources short
Kemudian, buat perangkat baru menggunakan:
pacmd load-module module-null-sink sink_name=mic_denoised_out rate=48000
pacmd load-module module-ladspa-sink sink_name=mic_raw_in sink_master=mic_denoised_out label=noise_suppressor_mono plugin=/path/to/librnnoise_ladspa.so control=50,20,0,0,0
pacmd load-module module-loopback source= < your_mic_name > sink=mic_raw_in channels=1 source_dont_move=true sink_dont_move=true
Ini perlu dijalankan setiap kali PulseAudio diluncurkan. Anda dapat mengotomatiskannya dengan membuat file di ~/.config/pulse/default.pa
dengan konten:
.include /etc/pulse/default.pa
load-module module-null-sink sink_name=mic_denoised_out rate=48000
load-module module-ladspa-sink sink_name=mic_raw_in sink_master=mic_denoised_out label=noise_suppressor_mono plugin=/path/to/librnnoise_ladspa.so control=50,200,0,0,0
load-module module-loopback source=your_mic_name sink=mic_raw_in channels=1 source_dont_move=true sink_dont_move=true
set-default-source mic_denoised_out.monitor
Urutan pengaturan di control=50,200,0,0,0
adalah: VAD Threshold (%)
, VAD Grace Period (ms)
, Retroactive VAD Grace Period (ms)
, Placeholder1
, Placeholder2
.
Jika Anda benar-benar yakin menginginkan input stereo, gunakan opsi berikut:
label=noise_suppressor_stereo
channels=2
Jika Anda memiliki masalah dengan audio berderak atau latensi yang tinggi/meningkat secara berkala, menambahkan latency_msec=1
ke loopback mungkin dapat membantu:
load-module module-loopback source=your_mic_name sink=mic_raw_in channels=1 source_dont_move=true sink_dont_move=true latency_msec=1
pacmd load-module module-remap-source source_name=denoised master=mic_denoised_out.monitor channels=1
Anda mungkin masih perlu mengatur input yang benar untuk aplikasi, ini dapat dilakukan di panel mixer audio (jika ada) di tab 'Rekaman' di mana Anda harus mengatur 'Monitor Output Null' sebagai sumber.
Bacaan lebih lanjut:
TODO, kontribusi disambut baik!
Plugin diuji dengan:
Saya tidak terkait dengan karya RNNoise asli dan TIDAK memiliki pemahaman apa pun tentang jaringan saraf berulang yang menjadi dasarnya.
Ketergantungan eksternal dijual melalui git-subrepo. Sehingga tidak perlu menggunakan submodul, dan melakukan patching subrepo dengan mudah (saat ini kami memiliki beberapa patch untuk JUCE).
Perbaikan disambut baik! Meskipun demikian, jika Anda ingin memberikan kontribusi yang cukup besar - buka terbitan terlebih dahulu.
Kompilasi untuk x64:
cmake -Bbuild-x64 -H. -GNinja -DCMAKE_BUILD_TYPE=Release
ninja -C build-x64
Kompilasi untuk x32:
cmake -D CMAKE_CXX_FLAGS=-m32 -D CMAKE_C_FLAGS=-m32 -Bbuild-x32 -H. -GNinja -DCMAKE_BUILD_TYPE=Release
ninja -C build-x32
Kompilasi silang untuk Windows x64 (build MinGW gagal saat ini karena ketidakcocokan tertentu di JUCE):
cmake -Bbuild-mingw64 -H. -GNinja -DCMAKE_TOOLCHAIN_FILE=toolchains/toolchain-mingw64.cmake -DCMAKE_BUILD_TYPE=Release
ninja -C build-mingw64
Secara default, semua plugin yang didukung untuk suatu platform sedang dibangun. Anda dapat dengan sengaja mematikan plugin dengan flag CMake berikut:
BUILD_LADSPA_PLUGIN
BUILD_VST_PLUGIN
BUILD_VST3_PLUGIN
BUILD_LV2_PLUGIN
BUILD_AU_PLUGIN
(khusus MacOS)BUILD_AUV3_PLUGIN
(khusus macOS)Misalnya:
cmake -DBUILD_VST_PLUGIN=OFF -DBUILD_LV2_PLUGIN=OFF
Proyek ini dilisensikan di bawah GNU General Public License v3.0 - lihat file LICENSE untuk rinciannya.
Perpustakaan yang digunakan: