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