Структура улучшения речи с низкой сложности для полнопользового звука (48 кГц) с использованием глубокой фильтрации.
Для интеграции трубопроводов в качестве виртуального шумоподавляющего микрофона выглядят здесь.
Чтобы запустить демо (только Linux) использование:
cargo +nightly run -p df-demo --features ui --bin df-demo --releaseНовая демонстрация DeepFilternet: DeepFilternet: перцептивно мотивированное улучшение речи в реальном времени
Новая многократная фильтровая бумага: глубокая многокачественная фильтрация для слуховых аппаратов
Версия в реальном времени и плагин Ladspa
deep-filter audio-file.wavDeepFilternet2 Paper: DeepFilternet2: к улучшению речи в реальном времени на встроенных устройствах для полной банда
Оригинальная бумага DeepFilternet: DeepFilternet: структура улучшения речи с низкой сложности для полнопользового звука на основе глубокой фильтрации
Загрузите предварительно скомпилированный двоичный файл с глубоким фильтром со страницы релиза. Вы можете использовать deep-filter для подавления шума в шумных звуковых файлах .wav. В настоящее время поддерживаются только файлы WAV с частотой выборки 48 кГц.
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 informationЕсли вы хотите использовать бэкэнд Pytorch, например для обработки графических процессоров, см. Далее для использования Python.
Эта структура поддерживает Linux, MacOS и Windows. Обучение тестируется только под Linux. Структура структурирована следующим образом:
libDF содержит код ржавчины, используемый для загрузки данных и увеличения.DeepFilterNet содержит обучение, оценку и визуализацию DeepFilternet, а также веса модели предварительно предварительно.pyDF содержит обертку Python of Libdf STFT/ISTFT обработки.pyDF-data содержит обертку Python функциональности набора данных LIBDF и обеспечивает загрузчик данных Pytorch.ladspa содержит плагин Ladspa для подавления шума в реальном времени.models содержит предварительно проведенное для использования в DeepFilterNet (Python) или Libdf/Deep Filter (Rust)Установите колесо DeepFilterNet Python через 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]Чтобы улучшить шумные аудиофайлы с помощью DeepFilterNet Run
# Specify an output directory with --output-dir [OUTPUT_DIR]
deepFilter path/to/noisy_audio.wav Установите груз через Rustup. Использование 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.tomlЧтобы улучшить шумные аудиофайлы с помощью 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 )Смотрите здесь для полного примера.
Точка входа - 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Все наборы данных должны быть доступны в одной папке набора данных для сценария поезда.
Файл конфигурации набора данных должен содержать 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/Pretriand_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 / Чтобы воспроизводить любые метрики, мы рекомендуем использовать реализацию Python через pip install deepfilternet .
Если вы используете эту структуру, пожалуйста, цитируйте: 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: к улучшению речи в реальном времени на встроенных устройствах для полнопользования звука
@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, должен быть двойной лицензией, как указано выше, без каких-либо дополнительных условий или условий.