语言: "en"
缩略图:
标签:
- 源分离
- 语音分离
- 音频源分离
- WSJ0-3混合
- SepFormer
- Transformer
- 音频到音频
- 音频源分离
- speechbrain
许可证: "apache-2.0"
数据集:
- WSJ0-3混合
指标:
- SI-SNRi
- SDRi
基于WSJ0-3Mix训练的SepFormer模型
本仓库提供使用SepFormer模型进行音频源分离所需的所有工具,该模型通过SpeechBrain实现,并在WSJ0-3Mix数据集上进行了预训练。为了获得更好的体验,我们建议您了解更多关于SpeechBrain的信息。该模型在WSJ0-3Mix数据集测试集上的性能为19.8 dB SI-SNRi。
发布日期 |
测试集SI-SNRi |
测试集SDRi |
2021-09-03 |
19.8分贝 |
20.0分贝 |
安装SpeechBrain
首先,请使用以下命令安装SpeechBrain:
pip install speechbrain
请注意,我们建议您阅读我们的教程并了解更多关于SpeechBrain的信息。
对您自己的音频文件进行源分离
from speechbrain.inference.separation import SepformerSeparation as separator
import torchaudio
model = separator.from_hparams(source="speechbrain/sepformer-wsj03mix", savedir='pretrained_models/sepformer-wsj03mix')
est_sources = model.separate_file(path='speechbrain/sepformer-wsj03mix/test_mixture_3spks.wav')
torchaudio.save("分离源1.wav", est_sources[:, :, 0].detach().cpu(), 8000)
torchaudio.save("分离源2.wav", est_sources[:, :, 1].detach().cpu(), 8000)
torchaudio.save("分离源3.wav", est_sources[:, :, 2].detach().cpu(), 8000)
该系统期望输入录音的采样率为8kHz(单声道)。如果您的信号采样率不同,请在使用接口之前重新采样(例如使用torchaudio或sox)。
在GPU上进行推理
要在GPU上执行推理,在调用from_hparams
方法时添加run_opts={"device":"cuda"}
参数。
训练
该模型使用SpeechBrain(fc2eabb7版本)训练。从头开始训练步骤如下:
- 克隆SpeechBrain:
git clone https://github.com/speechbrain/speechbrain/
- 安装:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 运行训练:
cd recipes/WSJ0Mix/separation
python train.py hparams/sepformer.yaml --data_folder=您的数据文件夹
注意:在yaml文件中将num_spks更改为3。
您可以在这里找到我们的训练结果(模型、日志等)。
局限性
SpeechBrain团队不保证该模型在其他数据集上的性能。
引用SpeechBrain
@misc{speechbrain,
title={{SpeechBrain}: 通用语音工具包},
author={Mirco Ravanelli等},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}
引用SepFormer
@inproceedings{subakan2021attention,
title={注意力机制在语音分离中的全面应用},
author={Cem Subakan等},
year={2021},
booktitle={ICASSP 2021}
}
关于SpeechBrain
- 官网: https://speechbrain.github.io/
- 代码库: https://github.com/speechbrain/speechbrain/
- HuggingFace: https://huggingface.co/speechbrain/