当前位置:   article > 正文

语音大模型之Whisper

语音大模型

Whisper是 OpenAI 2022年发布的一款语音预训练大模型,集成了多语种ASR、语音翻译、语种识别的功能。本文是对应论文Robust Speech Recognition via Large-Scale Weak Supervision的个人阅读笔记。

不同于Wav2Vec等使用无监督方法训练的预训练语音大模型,Whisper使用弱监督训练的方法,可以直接进行多任务的学习,而不需要针对特定任务的finetune。下面从数据、模型、测试效果等几个方面尽可能全面的介绍一下Whisper。

1. 数据及处理

  • 数据来源于网络,总量68w小时,其中65%的数据是英文语音和对应标注文本,18%(12.6w小时)的数据是非英文音频和对应的英文标注文本,剩下的17%(11.7W小时,包括98种语言)是非英文音频和对应的非英文标注文本;
  • 网络上音频对应的文本有大量的来自于其他ASR模型的转录,需要剔除掉这部分数据,剔除方法主要是根据ASR模型转录文本的一些特点,如首字母不会大写、没有标点符号或只有有限的几种标点符号等;
  • 不对标注文本进行归一化处理,如数字符号的表达不会处理成文本的表达,这样的好处是模型推理的输出也无需再进行逆处理;
  • 最终将所有音频切片成30s一个片段,并进行去重和清洗低质量的标注数据。

2. 模型及训练

  • 输入的音频特征:采样率16KHZ,80维的log-mel谱特征,帧长25ms,帧移10ms
  • 模型结构:为了证明海量数据弱监督训练的有效性,Whisper对模型并没有做什么创新和优化,使用的是经典的transformer模型,结构如下:

  • 多任务学习:多任务学习的标签组合如上图所示,包括起始标志SOT,语言标签(如果没人说话同样要给一个NO SPEECH标签),转写/翻译标签,如果有vad时间戳,则在每段文本标注的前后标注片段起止时间,如果没有时间戳,则整段对应一个文本标注,最后是结束标志EOT
  • 一些训练细节:优化器使用AdamW,训练过程中学习率调整使用warmup和线性衰减的策略,各损失函数权重则根据训练情况进行动态缩放(dynamic loss scaling)。每种任务具体使用什么损失函数,论文中则没有提及。整个训练过程中,所有数据被使用了2-3次。
  • 训练的Whisper系列模型信息如下表所示,从后面的测试结果来看,在目前的训练情况下,模型越大效果越好

3. 模型效果测试

为了证明模型的效果,论文中花了大量的篇幅对模型的各种性能做了非常详细的测试和分析,具体如下:

  1. 英文ASR任务:Whisper在librispeech测试集上WER约为2.5%,目前(2021)最好的模型WER是1.4%,但librispeech这个任务对于Whisper来说是zero-shot,其他librispeech上的SOTA模型则使用了librispeech的训练数据;同时Whisper的鲁棒性比其他模型要好很多,也就是在其他试集上whisper的wer不会升高的那么快,如下图所示:

2. Multi-lingual ASR任务:论文使用了Multilingual LibriSpeech (MLS) 和 VoxPopuli两个测试集进行测试对比,结果发现在MLS测试集上zero-shot的Whisper要明显好于其他模型,但在VoxPopuli测试集上,Whisper则表现不佳,结果如下表所示,作者分析可能原因是其他模型在预训练或finetune阶段使用了VoxPopuli训练数据(想起了实验结果不合预期,但又要强行解释的痛苦。。)。

此外,在 Fleurs 多语种测试集上,发现了Whisper模型各语种训练集大小和WER之间的规律,一个语种的训练数据每增加16倍,WER会降低一半,尤其对于印欧语系的语种比较符合这种规律,但对于和印欧语系差别较大的东亚语言,如普通话、韩语等偏离此规律较多,分析原因可能是因为用于训练的觉得大部分语料属于印欧语系,而非东亚语系。

3. 语音翻译任务(将非英语语音翻译为英文文本):在CoVoST2 测试集上,zero-shot的Whisper表现要明显好于其他模型,尤其在所用训练资源越少的情况下,这种优势越明显,如下表所示。

4. 语种识别:Fleurs 多语种测试集中的102种语言中有20种不在模型的训练集中,剩下82种最好的whisper模型准确率为80.3%,准确率不算高。本人之前也使用过Whisper模型做过语种分类,对东亚这边的语言分类效果的确不太好。

5. 抗噪音干扰测试:在librispeech测试集上,通过增加不同强度的噪音来测试各模型的抗噪音干扰能力,如下图所示,在信噪比SNR比较大的情况下,zero-shot的Whisper模型识别效果相对于其他模型并不算太好,但随着SNR的降低,Whisper的优势开始体现出来,尤其是在加环境噪音(pub noise)的情况下,主要原因是因为Whisper的训练集包含了各种各样的场景,也就包含了各种各样的环境噪音。

6. 长音频的ASR:现实使用场景需要转写的大部分是长音频,虽然Whisper模型输入的30s长度的语音,但可以通过vad时间戳进行裁剪和拼接的方法来对长音频进行转写,在多个长音频英语测试集上,Whisper模型都显示了非常不错的效果,如下图所示:

7. 模型鲁棒性和泛化性与人类对比:训练Whisper模型的主要目的就是训练一个可以与人类语言能力相媲美的通用语音模型,所以需要测试一下模型关键的鲁棒性和泛化性与人类的差异。论文从 Kincaid46 取25条录音,分别用Whisper模型转写、其他四个商业ASR模型转写、人工转写、机器辅助人工进行转写,最后各种方法转写结果WER如下图所示:

从图中可以看出,Whisper的WER和人类已经比较接近了,对于模型和人类来说,这个任务都可以认为是zero-shot的,所以可以认为Whisper模型对不同场景的鲁棒性和泛化性已经接近人类的水平。

4. 模型和数据规模分析

在目前的训练数据规模和训练条件下,模型规模越大,效果越好,只是在接近人类的识别水平时,这种变化会趋缓,如下图所示:

同样,在模型结构不变的情况下,随着数据规模的增大,模型性能在前期增长迅速,当数据规模达到一定程度后,这种增长会趋缓,具体如下表所示。这就是“数据饱和”的问题,相信大家在项目中都会有这种经验。

此外,在充分训练的情况下,多任务模型比单任务模型更具优势。

5. 总结

Whisper模型方法证明了只需要用大量的弱标签数据,不需要很复杂的模型和调优方法,就可以到达非常不错的识别性能,尤其是在鲁棒性和泛化性上。这也是大家比较公认的一个结论,即数据才是模型性能提升的最大影响因素。

从个人使用情况来看,Whisper模型在英文的转写和翻译能力上,已经有非常不错的效果,甚至不输针对特定场景专门训练的模型,但由于训练数据的bias,在中文及其他东亚语种的转写和语种识别上,效果还差强人意,暂还无法和专用模型比较,但端到端的通用大模型应该是未来的一个趋势,取代各专用模型一统天下只是时间问题。下一篇文章会学习一下Google的语音大模型USM,相对于Whisper应该又会有些进步。

参考文献

Robust Speech Recognition via Large-Scale Weak Supervision

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/370162
推荐阅读
相关标签
  

闽ICP备14008679号