Kerangka kerja peningkatan ucapan kompleksitas rendah untuk audio full-band (48kHz) menggunakan pada penyaringan yang dalam.
Untuk integrasi Pipewire sebagai mikrofon penindasan kebisingan virtual terlihat di sini.
Untuk menjalankan demo (hanya Linux) Gunakan:
cargo +nightly run -p df-demo --features ui --bin df-demo --releaseDemo Deepfilternet Baru: Deepfilternet: Peningkatan bicara real-time yang dimotivasi secara perseptual
Kertas penyaringan multi-bingkai baru: penyaringan multi-frame dalam untuk alat bantu dengar
Versi real-time dan plugin LADSPA
deep-filter audio-file.wavDeepFilternet2 Kertas: DeepFilternet2: Menuju Peningkatan Pidato Real-Time pada Perangkat Tertanam untuk Audio Full-Band
Kertas DeepFilternet Asli: DeepFilternet: Kerangka Peningkatan Pidato Kompleksitas Rendah untuk Audio Full-Band Berdasarkan Penyaringan Deep
Unduh biner filter dalam yang telah dikompilasi sebelumnya dari halaman rilis. Anda dapat menggunakan deep-filter untuk menekan noise dalam file audio .wav berisik. Saat ini, hanya file WAV dengan tingkat pengambilan sampel 48kHz yang didukung.
USAGE:
deep-filter [OPTIONS] [FILES]...
ARGS:
< FILES > ...
OPTIONS:
-D, --compensate-delay
Compensate delay of STFT and model lookahead
-h, --help
Print help information
-m, --model < MODEL >
Path to model tar.gz. Defaults to DeepFilterNet2.
-o, --out-dir < OUT_DIR >
[default: out]
--pf
Enable postfilter
-v, --verbose
Logging verbosity
-V, --version
Print version informationJika Anda ingin menggunakan backend pytorch misalnya untuk pemrosesan GPU, lihat lebih lanjut di bawah ini untuk penggunaan Python.
Kerangka kerja ini mendukung Linux, MacOS, dan Windows. Pelatihan hanya diuji di bawah Linux. Kerangka kerja disusun sebagai berikut:
libDF berisi kode karat yang digunakan untuk pemuatan dan augmentasi data.DeepFilterNet berisi pelatihan kode deepfilternet, evaluasi dan visualisasi serta bobot model pretrained.pyDF berisi pembungkus python libdf stft/iStft Processing loop.pyDF-data berisi pembungkus python dari fungsionalitas dataset LIBDF dan menyediakan loader data Pytorch.ladspa berisi plugin LADSPA untuk penindasan kebisingan real-time.models berisi pretrained untuk penggunaan di DeepFilternet (Python) atau Libdf/Deep-Filter (Rust)Pasang roda python deepfilternet melalui pip:
# Install cpu/cuda pytorch (>=1.9) dependency from pytorch.org, e.g.:
pip install torch torchaudio -f https://download.pytorch.org/whl/cpu/torch_stable.html
# Install DeepFilterNet
pip install deepfilternet
# Or install DeepFilterNet including data loading functionality for training (Linux only)
pip install deepfilternet[train]Untuk meningkatkan file audio yang berisik menggunakan deepfilternet run
# Specify an output directory with --output-dir [OUTPUT_DIR]
deepFilter path/to/noisy_audio.wav Pasang kargo melalui Rustup. Penggunaan conda atau virtualenv direkomendasikan. Harap baca komentar dan hanya menjalankan perintah yang Anda butuhkan.
Pemasangan dependensi Python dan libdf:
cd path/to/DeepFilterNet/ # cd into repository
# Recommended: Install or activate a python env
# Mandatory: Install cpu/cuda pytorch (>=1.8) dependency from pytorch.org, e.g.:
pip install torch torchaudio -f https://download.pytorch.org/whl/cpu/torch_stable.html
# Install build dependencies used to compile libdf and DeepFilterNet python wheels
pip install maturin poetry
# Install remaining DeepFilterNet python dependencies
# *Option A:* Install DeepFilterNet python wheel globally within your environment. Do this if you want use
# this repos as is, and don't want to develop within this repository.
poetry -C DeepFilterNet install -E train -E eval
# *Option B:* If you want to develop within this repo, install only dependencies and work with the repository version
poetry -C DeepFilterNet install -E train -E eval --no-root
export PYTHONPATH= $PWD /DeepFilterNet # And set the python path correctly
# Build and install libdf python package required for enhance.py
maturin develop --release -m pyDF/Cargo.toml
# *Optional*: Install libdfdata python package with dataset and dataloading functionality for training
# Required build dependency: HDF5 headers (e.g. ubuntu: libhdf5-dev)
maturin develop --release -m pyDF-data/Cargo.toml
# If you have troubles with hdf5 you may try to build and link hdf5 statically:
maturin develop --release --features hdf5-static -m pyDF-data/Cargo.tomlUntuk meningkatkan file audio yang berisik menggunakan deepfilternet run
$ python DeepFilterNet/df/enhance.py --help
usage: enhance.py [-h] [--model-base-dir MODEL_BASE_DIR] [--pf] [--output-dir OUTPUT_DIR] [--log-level LOG_LEVEL] [--compensate-delay]
noisy_audio_files [noisy_audio_files ...]
positional arguments:
noisy_audio_files List of noise files to mix with the clean speech file.
optional arguments:
-h, --help show this help message and exit
--model-base-dir MODEL_BASE_DIR, -m MODEL_BASE_DIR
Model directory containing checkpoints and config.
To load a pretrained model, you may just provide the model name, e.g. ` DeepFilterNet ` .
By default, the pretrained DeepFilterNet2 model is loaded.
--pf Post-filter that slightly over-attenuates very noisy sections.
--output-dir OUTPUT_DIR, -o OUTPUT_DIR
Directory in which the enhanced audio files will be stored.
--log-level LOG_LEVEL
Logger verbosity. Can be one of (debug, info, error, none)
--compensate-delay, -D
Add some paddig to compensate the delay introduced by the real-time STFT/ISTFT implementation.
# Enhance audio with original DeepFilterNet
python DeepFilterNet/df/enhance.py -m DeepFilterNet path/to/noisy_audio.wav
# Enhance audio with DeepFilterNet2
python DeepFilterNet/df/enhance.py -m DeepFilterNet2 path/to/noisy_audio.wav from df import enhance , init_df
model , df_state , _ = init_df () # Load default model
enhanced_audio = enhance ( model , df_state , noisy_audio )Lihat di sini untuk contoh lengkap.
Titik masuknya adalah DeepFilterNet/df/train.py . Ini mengharapkan direktori data yang berisi dataset HDF5 serta file JSON konfigurasi dataset.
Jadi, pertama -tama Anda harus membuat kumpulan data dalam format HDF5. Setiap dataset biasanya hanya mengadakan pelatihan, validasi, atau set tes noise, ucapan atau rir.
# Install additional dependencies for dataset creation
pip install h5py librosa soundfile
# Go to DeepFilterNet python package
cd path / to / DeepFilterNet / DeepFilterNet
# Prepare text file (e.g. called training_set.txt) containing paths to .wav files
#
# usage: prepare_data.py [-h] [--num_workers NUM_WORKERS] [--max_freq MAX_FREQ] [--sr SR] [--dtype DTYPE]
# [--codec CODEC] [--mono] [--compression COMPRESSION]
# type audio_files hdf5_db
#
# where:
# type: One of `speech`, `noise`, `rir`
# audio_files: Text file containing paths to audio files to include in the dataset
# hdf5_db: Output HDF5 dataset.
python df / scripts / prepare_data . py - - sr 48000 speech training_set . txt TRAIN_SET_SPEECH . hdf5Semua set data harus tersedia dalam satu folder dataset untuk skrip kereta.
File konfigurasi dataset harus berisi 3 entri: "kereta api", "valid", "tes". Masing -masing berisi daftar set data (misalnya pidato, kebisingan, dan dataset RIR). Anda dapat menggunakan beberapa dataset ucapan atau kebisingan. Secara opsional, faktor pengambilan sampel dapat ditentukan yang dapat digunakan untuk lebih/di bawah sampel dataset. Katakanlah, Anda memiliki dataset spesifik dengan suara sementara dan ingin meningkatkan jumlah suara non-stasioner dengan oversampling. Dalam kebanyakan kasus Anda ingin mengatur faktor ini menjadi 1.
dataset.cfg
{
"train" : [
[
" TRAIN_SET_SPEECH.hdf5 " ,
1.0
],
[
" TRAIN_SET_NOISE.hdf5 " ,
1.0
],
[
" TRAIN_SET_RIR.hdf5 " ,
1.0
]
],
"valid" : [
[
" VALID_SET_SPEECH.hdf5 " ,
1.0
],
[
" VALID_SET_NOISE.hdf5 " ,
1.0
],
[
" VALID_SET_RIR.hdf5 " ,
1.0
]
],
"test" : [
[
" TEST_SET_SPEECH.hdf5 " ,
1.0
],
[
" TEST_SET_NOISE.hdf5 " ,
1.0
],
[
" TEST_SET_RIR.hdf5 " ,
1.0
]
]
} Akhirnya, mulailah skrip pelatihan. Script pelatihan dapat membuat model base_dir jika tidak ada digunakan untuk logging, beberapa sampel audio, pos pemeriksaan model, dan konfigurasi. Jika tidak ada file konfigurasi yang ditemukan, itu akan membuat konfigurasi default. Lihat DeepFilternet/pretrained_models/DeepFilternet untuk file konfigurasi.
# usage: train.py [-h] [--debug] data_config_file data_dir base_dir
python df / train . py path / to / dataset . cfg path / to / data_dir / path / to / base_dir / Untuk mereproduksi metrik apa pun, kami merekomendasikan untuk menggunakan implementasi Python melalui pip install deepfilternet .
Jika Anda menggunakan kerangka kerja ini, silakan kutip: DeepFilternet: Kerangka Peningkatan Pidato Kompleksitas Rendah untuk audio full-band berdasarkan penyaringan mendalam
@inproceedings { schroeter2022deepfilternet ,
title = { {DeepFilterNet}: A Low Complexity Speech Enhancement Framework for Full-Band Audio based on Deep Filtering } ,
author = { Schröter, Hendrik and Escalante-B., Alberto N. and Rosenkranz, Tobias and Maier, Andreas } ,
booktitle = { ICASSP 2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) } ,
year = { 2022 } ,
organization = { IEEE }
}Jika Anda menggunakan model DeepFilternet2, silakan kutip: DeepFilternet2: Menuju Peningkatan Pidato Real-Time pada Perangkat Tertanam untuk Audio Full-Band Audio
@inproceedings { schroeter2022deepfilternet2 ,
title = { {DeepFilterNet2}: Towards Real-Time Speech Enhancement on Embedded Devices for Full-Band Audio } ,
author = { Schröter, Hendrik and Escalante-B., Alberto N. and Rosenkranz, Tobias and Maier, Andreas } ,
booktitle = { 17th International Workshop on Acoustic Signal Enhancement (IWAENC 2022) } ,
year = { 2022 } ,
}Jika Anda menggunakan model DeepFilternet3, silakan kutip: DeepFilternet: Peningkatan bicara real-time yang dimotivasi secara perseptual
@inproceedings { schroeter2023deepfilternet3 ,
title = { {DeepFilterNet}: Perceptually Motivated Real-Time Speech Enhancement } ,
author = { Schröter, Hendrik and Rosenkranz, Tobias and Escalante-B., Alberto N. and Maier, Andreas } ,
booktitle = { INTERSPEECH } ,
year = { 2023 } ,
}Jika Anda menggunakan algoritma beamforming multi-frame. Harap kutip penyaringan multi-frame yang dalam untuk alat bantu dengar
@inproceedings { schroeter2023deep_mf ,
title = { Deep Multi-Frame Filtering for Hearing Aids } ,
author = { Schröter, Hendrik and Rosenkranz, Tobias and Escalante-B., Alberto N. and Maier, Andreas } ,
booktitle = { INTERSPEECH } ,
year = { 2023 } ,
}DeepFilternet gratis dan open source! Semua kode dalam repositori ini dilisensikan ganda di bawah:
di pilihan Anda. Ini berarti Anda dapat memilih lisensi yang Anda sukai!
Kecuali jika Anda secara eksplisit menyatakan sebaliknya, kontribusi apa pun secara sengaja diserahkan untuk dimasukkan dalam pekerjaan oleh Anda, sebagaimana didefinisikan dalam lisensi APACHE-2.0, harus dilisensikan ganda seperti di atas, tanpa syarat atau ketentuan tambahan.