语音识别预训练模型Hidden-Unit BERT (HuBERT)
1.简介
本文根据2021年《HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units》翻译总结的。
自监督语音学习面临3个挑战,1)在每句话中有多个声音单元;2)在预训练阶段没有输入声音单元对应的词典;3)声音单元长度可变,没有明确的分割。为了出来这些问题,我们提出了Hidden-Unit BERT (HuBERT) 。
HuBERT的一个主要成分是只在mask的区域应用预测loss(如下图的3个mask),这会迫使模型基于连续的输入去学习声学和语言的组合模型。即采用了一个更加直接的预测loss将声学单元(如MFCC)与mask预测部分区分开。
HuBERT效果超过了wav2vec 2.0。
2.方法
2.1.Hidden units
2.2.Mask预测
2.3.k-means模型聚合
2.4.迭代精炼
我期望一个预训练模型提供更好的表示,而不是原始的声学特征,如MFCC。所以基于隐变量训练一个离散隐模型来重新表示。
如BASE模型,第一个迭代是训练了250k步,第二个迭代是基于第一个迭代模型的第6个transformer层的输出而生成的label继续训练400k步。
2.5.实施
类似采用wav2vec 2.0架构,一个卷积wafeform encoder,一个BERTencoder,一个projection layer 和a code embedding layer。如下所示:
基于模型,具体p的公式如下:
在HuBERT预训练完后,我们使用e connectionist temporal classifification (CTC) loss 来进行ASR 微调(fine-tuning),其中卷积encoder 冻住,不参与微调。projection layer被移除,用一个随机初始化的softmax 层代替。CTC 目标词汇包括26个英语字母、a space token, an apostrophe, and a special CTC blank symbol。
2.6 Supervised Fine-Tuning and Decoding
我们使用 wav2letter++ beam search decoder wrapped
in Fairseq for language model-fused decoding。
3.结果
如下表所示,HUBERT好于wav2vec 2.0。
于是我们相爱: RuntimeError: Unknown model (pretrain_mae_base_patch16_224)
Kearney form An idea: 10~11的冠军呢?
m0_57244172: 请问SAKT模型在github上的地址可以发下吗
xujingloveyes: 请问解决了在nano上离线语音合成吗
莓莓不加糖: AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS