DeepFilterNet

DeepFilterNet

用于全频段音频(48kHz)的低复杂度语音增强框架

DeepFilterNet是一个低复杂度的全频段音频(48kHz)实时语音增强框架,支持Linux、MacOS和Windows。该项目包含用于数据加载和增强的Rust代码模块,以及Python接口和预训练模型。它还支持LADSPA插件,用于实时噪声抑制,并提供详细的安装和使用指南,适用于终端命令行、Python脚本和深度学习模型训练等多种应用场景。

DeepFilterNet语音增强实时处理降噪全带宽音频Github开源项目

DeepFilterNet

一个低复杂度的全频带音频(48kHz)语音增强框架,基于深度过滤技术。

deepfilternet3

作为虚拟噪声抑制麦克风的PipeWire集成请参见这里

演示

https://github.com/Rikorose/DeepFilterNet/assets/16517898/79679fd7-de73-4c22-948c-891927c7d2ca

要运行演示(仅限Linux),使用:

cargo +nightly run -p df-demo --features ui --bin df-demo --release

新闻

使用方法

deep-filter

发布页面下载预编译的deep-filter二进制文件。 你可以使用deep-filter在嘈杂的.wav音频文件中抑制噪音。目前,仅支持采样率为48kHz的wav文件。

使用方法: deep-filter [OPTIONS] [FILES]... 参数: <FILES>... 选项: -D, --compensate-delay 补偿STFT和模型前瞻的延迟 -h, --help 打印帮助信息 -m, --model <MODEL> 模型tar.gz路径。默认为DeepFilterNet2。 -o, --out-dir <OUT_DIR> [默认: out] --pf 启用后滤波器 -v, --verbose 日志详细程度 -V, --version 打印版本信息

如果你想使用PyTorch后端,例如进行GPU处理,请参见下面的Python用法。

DeepFilterNet框架

这个框架支持Linux、MacOS和Windows。训练仅在Linux下测试过。框架结构如下:

  • libDF包含用于数据加载和增强的Rust代码。
  • DeepFilterNet包含DeepFilterNet代码训练、评估和可视化以及预训练模型权重。
  • pyDF包含libDF STFT/ISTFT处理循环的Python封装。
  • pyDF-data包含libDF数据集功能的Python封装,并提供PyTorch数据加载器。
  • ladspa包含一个用于实时噪声抑制的LADSPA插件。
  • models包含在DeepFilterNet(Python)或libDF/deep-filter(Rust)中使用的预训练模型。

DeepFilterNet Python: PyPI

通过pip安装DeepFilterNet Python轮:

# 安装来自pytorch.org的cpu/cuda pytorch(>=1.9)依赖,例如: pip install torch torchaudio -f https://download.pytorch.org/whl/cpu/torch_stable.html # 安装DeepFilterNet pip install deepfilternet # 或安装包括数据加载功能的DeepFilterNet进行训练(仅限Linux) pip install deepfilternet[train]

使用DeepFilterNet增强嘈杂的音频文件

# 使用--output-dir [OUTPUT_DIR]指定输出目录 deepFilter path/to/noisy_audio.wav

手动安装

通过rustup安装cargo。建议使用condavirtualenv。 请阅读注释并仅执行你需要的命令。

安装Python依赖和libDF:

cd path/to/DeepFilterNet/ # 进入仓库目录 # 推荐:安装或激活一个Python环境 # 必须:从pytorch.org安装cpu/cuda pytorch(>=1.8)依赖,例如: pip install torch torchaudio -f https://download.pytorch.org/whl/cpu/torch_stable.html # 安装用于编译libdf和DeepFilterNet Python轮的构建依赖 pip install maturin poetry # 安装其余DeepFilterNet Python依赖 # *选项A:* 在你的环境中全局安装DeepFilterNet Python轮。如果你希望按现有方式使用此仓库且不在此仓库内开发,请执行此操作。 poetry -C DeepFilterNet install -E train -E eval # *选项B:* 如果你希望在本仓库内开发,仅安装依赖并使用仓库版本 poetry -C DeepFilterNet install -E train -E eval --no-root export PYTHONPATH=$PWD/DeepFilterNet # 并正确设置Python路径 # 构建并安装enhance.py所需的libdf Python包 maturin develop --release -m pyDF/Cargo.toml # *可选*: 安装带有数据集和数据加载功能的libdfdata Python包以进行训练 # 需要的构建依赖:HDF5头文件(例如Ubuntu: libhdf5-dev) maturin develop --release -m pyDF-data/Cargo.toml # 如果你遇到HDF5问题,可以尝试静态构建和链接HDF5: maturin develop --release --features hdf5-static -m pyDF-data/Cargo.toml

从命令行使用DeepFilterNet

使用DeepFilterNet增强嘈杂的音频文件

$ python DeepFilterNet/df/enhance.py --help 使用方法: 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 ...] 位置参数: noisy_audio_files 噪音文件列表,与干净的语音文件混合。 可选参数: -h, --help 显示此帮助信息并退出 --model-base-dir MODEL_BASE_DIR, -m MODEL_BASE_DIR 包含检查点和配置的模型目录。 要加载预训练模型,你可以只提供模型名称,例如`DeepFilterNet` 默认情况下,加载预训练的DeepFilterNet2模型。 --pf 在非常嘈杂的部分稍微过度衰减的后滤波器。 --output-dir OUTPUT_DIR, -o OUTPUT_DIR 增强音频文件将被存储的目录。 --log-level LOG_LEVEL 日志详细程度。可以是(debug,info,error,none)之一。 --compensate-delay, -D 添加一些填充以补偿实时STFT/ISTFT实现引入的延迟。 # 使用原始DeepFilterNet增强音频 python DeepFilterNet/df/enhance.py -m DeepFilterNet path/to/noisy_audio.wav # 使用DeepFilterNet2增强音频 python DeepFilterNet/df/enhance.py -m DeepFilterNet2 path/to/noisy_audio.wav

在你的Python脚本中使用DeepFilterNet

from df import enhance, init_df
模型, df_state, _ = init_df() # 加载默认模型 增强音频 = enhance(模型, df_state, 嘈杂音频)

参见 此处 获取完整示例。

训练

入口点是 DeepFilterNet/df/train.py。它需要一个包含 HDF5 数据集和数据集配置 JSON 文件的数据目录。

因此,您首先需要以 HDF5 格式创建数据集。每个数据集通常仅包含噪声、语音或房间脉冲响应的训练集、验证集或测试集。

# 安装创建数据集的额外依赖 pip install h5py librosa soundfile # 进入 DeepFilterNet Python 包 cd path/to/DeepFilterNet/DeepFilterNet # 准备包含 .wav 文件路径的文本文件(例如名为 training_set.txt) # # 用法: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 # # 其中: # type: 可以是 `speech`、`noise`、`rir` 之一 # audio_files: 包含要包含在数据集中的音频文件路径的文本文件 # hdf5_db: 输出 HDF5 数据集。 python df/scripts/prepare_data.py --sr 48000 speech training_set.txt TRAIN_SET_SPEECH.hdf5

所有数据集应在一个数据集文件夹中以供训练脚本使用。

数据集配置文件应包含 3 个条目:"train"(训练)、"valid"(验证)、"test"(测试)。每个条目包含一个数据集列表(例如语音、噪声和房间脉冲响应数据集)。您可以使用多个语音或噪声数据集。可以选择性地指定采样因子,用于过采样或欠采样数据集。例如,您有一个带有短暂噪声的特定数据集,并希望通过过采样来增加非稳态噪声的数量。在大多数情况下,您希望将此因子设置为 1。

<details> <summary>数据集配置示例:</summary> <p>

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 ] ] }
</p> </details>

最后,启动训练脚本。训练脚本可能会创建一个模型 base_dir,用于记录日志、存储一些音频样本、模型检查点和配置。如果没有找到配置文件,它将创建一个默认配置文件。参见 DeepFilterNet/pretrained_models/DeepFilterNet 获取配置文件。

# 用法: 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: A Low Complexity Speech Enhancement Framework for Full-Band Audio based on Deep Filtering

@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: Towards Real-Time Speech Enhancement on Embedded Devices for 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}, }

如果您使用 DeepFilterNet3 模型,请引用:DeepFilterNet: Perceptually Motivated Real-Time Speech Enhancement

@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}, }

如果您使用多帧波束成形算法,请引用 Deep Multi-Frame Filtering for Hearing Aids

@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 许可证定义的,应如上双重许可,无需任何附加条款或条件。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多