ディープフィルタリングを使用したフルバンドオーディオ(48kHz)の低い複雑さの音声拡張フレームワーク。
仮想ノイズ抑制マイクとしてのPipewire統合については、こちらをご覧ください。
デモ(Linuxのみ)を実行するには:
cargo +nightly run -p df-demo --features ui --bin df-demo --release新しいDeepFilternetデモ: DeepFilternet:知覚的に動機付けられたリアルタイムの音声強化
新しいマルチフレームフィルタリングペーパー:補聴器用の深いマルチフレームフィルタリング
リアルタイムバージョンとLADSPAプラグイン
deep-filter audio-file.wavdeepfilternet2ペーパー: deepfilternet2:フルバンドオーディオ用の埋め込みデバイスのリアルタイム音声強化に向けて
オリジナルのdeepfilternetペーパー: deepfilternet:ディープフィルタリングに基づくフルバンドオーディオのための低い複雑さの音声拡張フレームワーク
リリースページから事前にコンパイルされたディープフィルターバイナリをダウンロードします。 deep-filterを使用して、騒々しい.WAVオーディオファイルのノイズを抑制できます。現在、サンプリングレートの48kHzのWAVファイルのみがサポートされています。
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 informationGPU処理にPytorch Backend EGを使用する場合は、Pythonの使用については以下を参照してください。
このフレームワークは、Linux、MacOS、Windowsをサポートしています。トレーニングはLinuxでのみテストされます。フレームワークは次のように構成されています。
libDFには、データの負荷と増強に使用される錆コードが含まれています。DeepFilterNetには、DeepFilternetコードのトレーニング、評価、視覚化、および事前に処理されたモデルの重みが含まれています。pyDFには、LIBDF STFT/ISTFT処理ループのPythonラッパーが含まれています。pyDF-dataには、LIBDFデータセット機能のPythonラッパーが含まれており、Pytorchデータローダーを提供します。ladspaには、リアルタイムのノイズ抑制のためのLADSPAプラグインが含まれています。modelsには、deepfilternet(python)またはlibdf/deep-filter(錆)で使用するために前処理されたものが含まれていますPIP経由でDeepFilternet Pythonホイールをインストールします。
# 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]DeepFilternet実行を使用してノイズの多いオーディオファイルを強化します
# Specify an output directory with --output-dir [OUTPUT_DIR]
deepFilter path/to/noisy_audio.wavRustupで貨物を設置します。 condaまたはvirtualenvの使用法が推奨されます。コメントを読んで、必要なコマンドのみを実行してください。
Python依存関係と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.tomlDeepFilternet実行を使用してノイズの多いオーディオファイルを強化します
$ 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 )完全な例については、こちらをご覧ください。
エントリポイントはDeepFilterNet/df/train.pyです。 HDF5データセットとデータセット構成JSONファイルを含むデータディレクトリが期待されます。
そのため、最初にHDF5形式でデータセットを作成する必要があります。通常、各データセットは、ノイズ、音声、または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 . hdf5すべてのデータセットは、トレインスクリプトの1つのデータセットフォルダーで利用できるようにする必要があります。
データセット構成ファイルには、「トレーニング」、「有効」、「テスト」の3つのエントリを含める必要があります。それらのそれぞれには、データセットのリスト(スピーチ、ノイズ、RIRデータセットなど)が含まれています。複数の音声またはノイズデータセットを使用できます。オプションでは、データセットの過剰/サンプルを使用するために使用できるサンプリング係数を指定することができます。たとえば、あなたは一時的なノイズを備えた特定のデータセットを持っており、オーバーサンプリングによって非定常ノイズの量を増やしたいとします。ほとんどの場合、この係数を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
]
]
}最後に、トレーニングスクリプトを開始します。トレーニングbase_dirは、ログに使用されている既存の存在、一部のオーディオサンプル、モデルチェックポイント、および構成を作成する場合があります。構成ファイルが見つからない場合、デフォルトの構成が作成されます。構成ファイルについては、deepfilternet/pretrained_models/deepfilternetを参照してください。
# 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 / メトリックを再現するために、 pip install deepfilternetを介してPython実装を使用することをお勧めします。
このフレームワークを使用する場合は、引用してください: deepfilternet:深いフィルタリングに基づくフルバンドオーディオ用の低い複雑さの音声拡張フレームワーク
@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 }
}deepfilternet2モデルを使用する場合は、フルバンドオーディオ用の埋め込みデバイスのリアルタイム音声拡張に向けて、deepfilternet2:deepfilternet2を引用してください
@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 } ,
}deepfilternet3モデルを使用する場合は、引用してください: deepfilternet:知覚的に動機付けられたリアルタイムの音声拡張
@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 } ,
}マルチフレームビームフォーミングアルゴリズムを使用する場合。補聴器のために深いマルチフレームフィルタリングを引用してください
@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は無料でオープンソースです!このリポジトリのすべてのコードは、次のいずれかの下で二重ライセンスされています。
あなたのオプションで。これは、お好みのライセンスを選択できることを意味します!
明示的に特に述べない限り、Apache-2.0ライセンスで定義されているように、お客様による作業への包含のために意図的に提出された貢献は、追加の条件なしで、上記のように二重ライセンスを取得するものとします。