HUBERT HOW MUCH CAN A BAD TEACHER BENEFIT ASR PRE-TRAINING
文章来源:icassp2021

研究背景:
相比于CV和NLP领域,ASR领域中自监督预训练方法面临3个挑战。
- 一条语音句子中存在多个发音单元。
- 只进行audio-pretraining,没有发音单元的词典。
- 发音单元变长,没有清晰的段边界。
在这篇文章中,作者提出了HIdden-Unit BERT(HUBERT)模型,采用k-means聚类,为BERT预训练模型提供target label。**作者方法成功的关键因素是只在被masked的区域计算预测损失函数。**这使得模型在预训练阶段能够受益于无监督teacher的一致性,而不是teacher的质量。在初始阶段,只进行100类别的聚类,进行两次迭代的聚类,HUBERT模型的性能能够在低资源场景下,和最优的wav2vec2.0模型相当。
具体做法:
wav2vec2.0是怎么生成target
在讲解本文的做法之前,需要先了解预训练模型wav2vec2.0的做法。wav2vec2.0是一个很优秀的自监督预训练模型,在预训练阶段不需要语音-文本pair数据,但是预训练模型训练需要构建自监督任务所需要的target。
wav2vec2.0模型采用原始语音输入,然后进行features encoder学习类似于fbank的局部特征,然后features encoder的输出被多段mask后,进入transformer,通过transformer上下文预测被mask的表征,然后features encoder输出的被多段mask的真实特征进入VQ模块进行量化,这个VQ模块本质上是一个聚类器,是一个提供预训练target的模块,这里的VQ本身是随着训练进行参数更新,是一个在线聚类的过程。wav2vec2.0先了解到这里。
HUBERT是怎么生成target
HUERT是一个离线聚类获取target的过程,具体做法:
- 首先在39维的MFCC特征上进行k-means和GMM聚类,聚类中心数为{50,100,500}。聚类之后可以获取每一帧语音的聚类中心,此时的聚类中心为每一帧的target。
- 每一帧语音获取target后,进行类似于wav2vec2.0类似的pretraining,然后在mask位置和未被mask的位置计算损失函数,