语音基石模型Speech Foundation Models( 二 )


但当XLS-R参数量增加到 , 性能直接起飞 , 得到非常好的结果 。
上面的是只针对英文ASR , 下面是多语种上的结果 , 只要10小时的数据 , 就可以比之前上万小时的结果差不多好 。
预测模型
有一张狗图 , 喂给一个 , 得到一个向量 , 希望做一些预测任务 。如果是监督学习 , 那目标标签 lable就是“狗” , 现在我们是SSL模型 , 没有标签 , 要怎么办呢?
那就做伪标签。先让狗图片经过一个聚类器 , 假设的到的是class 2(不一定是狗) , 假设聚类器性能很强 , 那大概率输出的就是狗的分类 。这个架构就像-模型 , 互相进化 , 互相变得更好 。
我们介绍第一个模型 , 名字里有个BERT , 肯定和它相关 , 还记得什么是BERT吗?
BERT:
如图 , 输入“台湾大学” , BERT会把某个字 , 如把“湾”字mask掉 , 输入  , 输出一排向量 , 让被mask掉的那个的输出再输入一个线性模型 , 再经过 , 得到一个分布 , 这个分布就是在预先定义好的词表上的机率分布 , 预测最可能出现的字的概率(比如中国方块字 , 这个词表大概有一万多个字)
在监督学习种 , 就把“湾”这个字当作比如one-hot的向量 , 去最小化输出和它之间的距离 , 让预测出来的输出“湾”的机率越大越好 。

和上面类似 , 输入的语音信号 , 先经过几层CNN , 得到的向量mask掉其中的一部分 , 输入 (和上面的BERT一样) , 不一样的地方是 , 没有预先定义和的词表 。怎么办呢?
所以 , 需要自己造一个词表 。怎么造呢?
对这一堆语音数据提取MFCC特征 , 然后进行K-means聚类 , 就可以得到一堆码本 , 作为伪标签 , 也就是刚才所说的词表 。
有了词表 , 接下来就可以做BERT做的事情 。
把输入的这段语音 , 提取MFCC特征 , 经过K-means , 看和码本里的哪段最接近 , 比如:第一帧输出的特征和c2比较接近 , 第二帧和c1接近 , 第三帧和c6接近…然后把mask掉的那个的输出 , 和目标的码本 , 去最小化它们之间的距离 。
对训完次后 , 接下来要怎么继续更新聚类模型呢?
很简单 , 把反过来当成 model , 用来继续训练这边的聚类模型就好了 。比如 , 把第一次训好的叫作-1 。
这样就会得到新的码本 。然后又可以作为伪标签 , 训练第二轮的-2 。重复以上过程 , 就可以得到一个好的模型 。
WavLM
做说话人分类任务 。
这个模型和差不多 。唯一的区别就是 , 它的输入是混合的语音作为噪音Noisy (比如是两个人讲话的语音) , 但做伪标签的语音还是用的干净语音 。
论文结果:
WavLM和明明架构一样 , 数据一样 , loss函数一样 , 但只引入了 , 它的效果就比要好 。
BEST-RQ
这个模型比较神奇 , 它的聚类模型更简单 , 只进行随机初始化 , 在预训练过程中 , 它的层和码本都不做更新 , 一开始是什么就是什么 , 然后这样也可以做的起来 。