语言: "英文"
标签:
- 鲁棒性语音识别
- 音频到音频转换
- 语音增强
- PyTorch框架
- SpeechBrain工具包
许可证: "Apache-2.0"
数据集:
- Voicebank语音库
- DEMAND噪声库
评估指标:
- 词错误率(WER)
- 语音质量感知评估(PESQ)
- 覆盖度指标(COVL)
类ResNet模型
本代码库提供使用SpeechBrain进行语音增强和鲁棒性ASR训练(英文)的全套工具。建议访问SpeechBrain官网获取更佳体验。模型性能如下:
版本 |
测试PESQ |
测试COVL |
验证集WER |
测试集WER |
22-06-21 |
3.05 |
3.74 |
2.89 |
2.80 |
兼容SpeechBrain v0.5.12版本
流程说明
模仿损失训练系统包含三个阶段:
- 基于纯净语音特征预训练感知模型(与增强掩码系统使用相同特征类型)
- 利用预训练的感知模型,通过模仿损失训练增强模型
- 基于LibriSpeech预训练的大型ASR模型,使用增强前端进行微调
增强模型与ASR模型可独立或联合使用。
安装SpeechBrain
执行以下命令安装:
pip install speechbrain
建议阅读官方教程深入了解SpeechBrain。
预训练模型使用
语音增强示例代码:
import torchaudio
from speechbrain.inference.enhancement import WaveformEnhancement
enhance_model = WaveformEnhancement.from_hparams(
source="speechbrain/mtl-mimic-voicebank",
savedir="pretrained_models/mtl-mimic-voicebank",
)
enhanced = enhance_model.enhance_file("speechbrain/mtl-mimic-voicebank/example.wav")
torchaudio.save('enhanced.wav', enhanced.unsqueeze(0).cpu(), 16000)
该系统处理16kHz单通道音频,调用enhance_file时会自动进行标准化处理(如重采样和单声道转换)。使用enhance_batch时请确保输入张量符合采样率要求。
GPU推理
在调用from_hparams
时添加run_opts={"device":"cuda"}
参数启用GPU加速。
训练流程
- 克隆代码库:
git clone https://github.com/speechbrain/speechbrain/
- 安装依赖:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 启动训练:
cd recipes/Voicebank/MTL/ASR_enhance
python train.py hparams/enhance_mimic.yaml --data_folder=your_data_folder
训练结果(模型/日志等)详见Google Drive。
使用限制
SpeechBrain团队不保证该模型在其他数据集上的表现。
引用模仿损失
若模仿损失对您的研究有帮助,请引用:
@inproceedings{bagchi2018spectral,
title={Spectral Feature Mapping with Mimic Loss for Robust Speech Recognition},
author={Bagchi, Deblin and Plantinga, Peter and Stiff, Adam and Fosler-Lussier, Eric},
booktitle={IEEE ICASSP},
year={2018}
}
关于SpeechBrain
- 官网: https://speechbrain.github.io/
- 代码库: https://github.com/speechbrain/speechbrain/
- HuggingFace: https://huggingface.co/speechbrain/
引用SpeechBrain
@misc{speechbrain2021,
title={{SpeechBrain}: A General-Purpose Speech Toolkit},
author={Ravanelli, Mirco et al.},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS}
}