🚀 SepFormer在WHAMR!数据集(16k采样频率)上的预训练模型
本仓库提供了使用 SepFormer 模型进行音频源分离的所有必要工具。该模型基于SpeechBrain实现,并在 WHAMR! 数据集(16k采样频率)上进行了预训练。WHAMR! 本质上是WSJ0 - Mix数据集的一个版本,在16k下添加了环境噪声和混响。为了获得更好的使用体验,建议你进一步了解 SpeechBrain。该模型在WHAMR! 数据集测试集上的SI - SNRi指标达到了13.5 dB。
版本发布日期 |
测试集SI - SNRi |
测试集SDRi |
2021年3月30日 |
13.5 dB |
13.0 dB |
🚀 快速开始
本项目提供了使用预训练的SepFormer模型进行音频源分离的工具,以下将详细介绍安装、使用、训练等方面的内容。
✨ 主要特性
- 基于SepFormer模型实现音频源分离。
- 在WHAMR! 数据集(16k采样频率)上进行预训练。
- 提供了详细的安装、使用和训练步骤。
📦 安装指南
安装SpeechBrain
首先,请使用以下命令安装SpeechBrain:
pip install speechbrain
建议阅读相关教程,进一步了解 SpeechBrain。
💻 使用示例
基础用法
在你自己的音频文件上进行源分离:
from speechbrain.inference.separation import SepformerSeparation as separator
import torchaudio
model = separator.from_hparams(source="speechbrain/sepformer-whamr16k", savedir='pretrained_models/sepformer-whamr16k')
est_sources = model.separate_file(path='speechbrain/sepformer-whamr16k/test_mixture16k.wav')
torchaudio.save("source1hat.wav", est_sources[:, :, 0].detach().cpu(), 16000)
torchaudio.save("source2hat.wav", est_sources[:, :, 1].detach().cpu(), 16000)
系统期望输入的录音采样率为16kHz(单声道)。如果信号的采样率不同,请在使用该接口之前对其进行重采样(例如,使用torchaudio或sox)。
高级用法
在GPU上进行推理
若要在GPU上进行推理,在调用 from_hparams
方法时添加 run_opts={"device":"cuda"}
:
from speechbrain.inference.separation import SepformerSeparation as separator
import torchaudio
model = separator.from_hparams(source="speechbrain/sepformer-whamr16k", savedir='pretrained_models/sepformer-whamr16k', run_opts={"device":"cuda"})
est_sources = model.separate_file(path='speechbrain/sepformer-whamr16k/test_mixture16k.wav')
torchaudio.save("source1hat.wav", est_sources[:, :, 0].detach().cpu(), 16000)
torchaudio.save("source2hat.wav", est_sources[:, :, 1].detach().cpu(), 16000)
🔧 技术细节
训练步骤
该模型使用SpeechBrain(fc2eabb7)进行训练。若要从头开始训练,请按照以下步骤操作:
- 克隆SpeechBrain仓库:
git clone https://github.com/speechbrain/speechbrain/
- 安装依赖:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 运行训练脚本:
cd recipes/WHAMandWHAMR/separation/
python train.py hparams/sepformer-whamr.yaml --data_folder=your_data_folder --sample_rate=16000
可以在 这里 找到训练结果(模型、日志等)。
局限性
SpeechBrain团队不保证该模型在其他数据集上的性能。
📄 许可证
本项目采用Apache 2.0许可证。
引用信息
引用SpeechBrain
@misc{speechbrain,
title={{SpeechBrain}: A General-Purpose Speech Toolkit},
author={Mirco Ravanelli and Titouan Parcollet and Peter Plantinga and Aku Rouhe and Samuele Cornell and Loren Lugosch and Cem Subakan and Nauman Dawalatabad and Abdelwahab Heba and Jianyuan Zhong and Ju-Chieh Chou and Sung-Lin Yeh and Szu-Wei Fu and Chien-Feng Liao and Elena Rastorgueva and François Grondin and William Aris and Hwidong Na and Yan Gao and Renato De Mori and Yoshua Bengio},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}
引用SepFormer
@inproceedings{subakan2021attention,
title={Attention is All You Need in Speech Separation},
author={Cem Subakan and Mirco Ravanelli and Samuele Cornell and Mirko Bronzi and Jianyuan Zhong},
year={2021},
booktitle={ICASSP 2021}
}
关于SpeechBrain
- 官网:https://speechbrain.github.io/
- 代码仓库:https://github.com/speechbrain/speechbrain/
- HuggingFace页面:https://huggingface.co/speechbrain/