ASR中数据增广

ASR中数据增广

在ASR中,真实的使用场景中可能语音和训练的数据有差异,导致准确率很低,包括语速,音调,噪音,混响,因此我们在训练的数据加入对这些因素的考量,这个叫做数据增广(Data Augmentation)。

使用sox这个免费工具我们可以改变语速和语调

除了sox,也可以使用ffmpeg。

加噪音和混响可以使用ffmpeg或者Kaldi。

加混响的效果可以参看A study on data augmentation of reverberant speech for robust speech recognition
原论文链接,需要登录。

Kaldi提供了2个脚本处理数据增广,

reverberate_data_dir.py
augment_data_dir.py

在Librispeech的local/nnet3/run_ivector_common.sh中展示了随机改变训练数据的语速

utils/data/perturb_data_dir_speed_3way.sh

音量

utils/data/perturb_data_dir_volume.sh

来扩充多样性。

在aspire中的local/multi_condition/aspire_data_prep.sh中通过加入环境噪声和模拟混响的方式模型远场的数据,是通过调用sox实现的。

可以在训练数据中加入音乐,噪音等数据。Kaldi有专门脚本做这个事情,

wsj/s5/steps/data/make_musan.sh

这个需要音乐和噪音的数据,可以自己下载然后放在特定的目录。数据连接
MUSAN
MUSAN is a corpus of music, speech, and noise recordings.
大小是11G。
然后调用上面的make_musan.sh时候把对应下载解压后的目录传进去。

在SRE16样例中可以看到使用这2个脚本的影子

102 # In this section, we augment the SWBD and SRE data with reverberation,
103 # noise, music, and babble, and combined it with the clean data.
104 # The combined list will be used to train the xvector DNN.  The SRE
105 # subset will be used to train the PLDA model.
106 if [ $stage -le 2 ]; then
107   frame_shift=0.01
.....
120 
121   # Make a reverberated version of the SWBD+SRE list.  Note that we don't add any
122   # additive noise here.
123   steps/data/reverberate_data_dir.py \
124     "${rvb_opts[@]}" \
125     --speech-rvb-probability 1 \
126     --pointsource-noise-addition-probability 0 \
127     --isotropic-noise-addition-probability 0 \
128     --num-replications 1 \
129     --source-sampling-rate 8000 \
130     data/swbd_sre data/swbd_sre_reverb
.....
147   # Augment with musan_noise
148   steps/data/augment_data_dir.py --utt-suffix "noise" --fg-interval 1 --fg-snrs "15:10:5:0" --fg-noise-dir "data/musan_noise" data/swbd_sre data/swbd_sre_noise
149   # Augment with musan_music
150   steps/data/augment_data_dir.py --utt-suffix "music" --bg-snrs "15:10:8:5" --num-bg-noises "1" --bg-noise-dir "data/musan_music" data/swbd_sre data/swbd_sre_music
151   # Augment with musan_speech
152   steps/data/augment_data_dir.py --utt-suffix "babble" --bg-snrs "20:17:15:13" --num-bg-noises "3:4:5:6:7" --bg-noise-dir "data/musan_speech" data/swbd_sre data/swbd_sre_babble
153 
154   # Combine reverb, noise, music, and babble into one directory.
155   utils/combine_data.sh data/swbd_sre_aug data/swbd_sre_reverb data/swbd_sre_noise data/swbd_sre_music data/swbd_sre_babble
156 
.......
167 
168   # Combine the clean and augmented SWBD+SRE list.  This is now roughly
169   # double the size of the original clean list.
170   utils/combine_data.sh data/swbd_sre_combined data/swbd_sre_aug_128k data/swbd_sre

有关kaldi的data augmentation的讨论,参看
https://groups.google.com/g/kaldi-help/c/bfVWYmZKM0o

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示