15 个回答
想借着这个回答,写写对于语音预训练的理解,感谢其他回答提到了我们的WavLM
1, 重剑无锋 。直接Masked Speech Model上,把数据加大,就能体会到真香的感觉。语音预训练肯定是低资源语音任务的通解。HuBERT将语音离散化,真是对语音领域一个划时代的贡献。
2, 相信相信的力量 。在做 WavLM 之前,有很多人不信,很多任务transformer都不好使,pre-train能好使?我相信现在做出来之后,还有很多没有人不太信,认为这就是蹭热度,想做风口上的猪。但真的好使,如果不好使可以看看我写的finetune的tip。WavLM应该是第一个可以同时解决语音前端和后端所有任务的模型,如果fix pre-train model,只添加task layer,我们可以用一个模型去解“鸡尾酒会问题”。

3, 大人,时代变了 。预训练模型的贡献是:得到各个任务的通解,之后通过简单粗暴,费电烧钱的策略来做模型。这种策略也使得任务的 门槛变低 了,只要会hugging face一切都解了。门槛低了,新同学上手快了,内卷也会越来越严重。和NLP,CV一样,随着预训练模型,现在Speech也不是各个任务都需要老专家了。举一个例子,SpeakerIn的声纹识别系统非常好,在challenge里面会比第二名好30%以上,是一个精调的系统。有了预训练模型之后,我们的声纹识别任务目前和他们的对比如下图所示(越低越好),而调出这个模型的同学,只接触了声纹识别一个月。


几个finetune的tips
1,如果做的不是ASR类似的任务,而是说话人相关任务。一定使用不同层加权平均,权重可学。
2, 千万不要在pretrain model上面搭太复杂的结构,尤其是特别深或者2D的CNN。这是我们血与泪的教训。大道至简。
3,一定要防止过拟合,虽然预训练模型比随机初始化好一些,但仍然非常容易过拟合。
4,如果跑分离或者去噪任务,预训练模型的优势是输出的语音对于ASR模型更友善,人听上去应该质量相当。
5,如果是高资源任务,例如百万小时标注ASR。。。那估计你需要搜集一亿小时的无标注语音了。
最后,从训练的角度来说,例如wav2vec 2.0这样的语音预训练模型,没有HuBERT,wavlm这样的模型鲁棒,总会遇到各式各样让人尿血的问题。并且wav2vec 2.0在非asr问题上,比HuBERT wavlm差太多。