语音基石模型Speech Foundation Models

语音基石模型()
主要包含三部分:
1.语音表示学习()
2.语音大型语言模型( large)
3.其他语音基石模型
下面一一讲述 。
语音表示学习()
学习内容:
就是将一段语音喂给自监督学习模型(SSL model) , 去抽一些好用的特征表示 , 这些特征再喂给  , 就可以做语音识别或说话人识别任务 。
为什么要做语音表示学习?
以前我们做的都是完全监督学习 , 比如之前做一个情感识别任务 , 需要对每条语音人工标注其对应的标签label , 喂给一个的模型去训练 , 比如再做个说话人识别任务 , 又需要标注label 。
所以完全监督学习的主要缺点就是:
解释一下就是:
所以人们就想到了自监督学习SSL 。用一堆未带标签的数据训一个SSL模型 , 得到好的表示特征 , 开发不同的任务时只需要在输入表示特征训一个小的模型(下游任务) 。
SSL模型
目前有哪些SSL模型呢?
这是2022年一篇文章Self-: A reiew.的综述里的图 , 可以看到SSL模型有很多 , 我们可以学习6个典型的模型如下 。可以分为两类 , 对比学习模型和预测模型 。它们的差别就是训练过程和目标函数不同 。
对比学习
一张图直观理解 , 就是你现在有一张猫图 , 再找一张猫( pair)和一张狗( pair)的图片 , 把它们分别输入三个 , 对于输出的向量 , 我们希望两张猫图的向量越接近越好 , 而我的猫图和狗图的向量值差距越大越好 。
这样我就训练得到一个好的表示特征 , 然后做一些下游任务的时候 , 比如猫狗分类任务 , 就只需要训一个线性模型就可以很容易把它们分开 。
(CPC)
用来做音素分类和说话人识别任务 。
比如有一段语音信号 , 采样率 。通过5层卷积CNN , 每层的步长为5 , 4 , 2 , 2 , 2 , 通过这五层 , 相当于信号被采样了5×4×2×2×2=160 。所以最后输出的信号为每秒16000/160=100点 。
把这100点的输出再喂给循环神经网络GRU 。
的pair就是未来的一些输出向量 , 就是同一个句子里面 , 用当前的向量去预测未来 。
的pair有不同的设计方式 , 最简单的设计就是用另外一段语音或另一个人的语音的 , 就是说不同的的语音的向量越远越好 。这就是说话人分类 。
CPC这篇论文做了两个任务:音素分类和说话人分类 。
可以看到结果所示 , CPC和自监督学习都比传统的MFCC特征好 。还有个好玩的地方是 , 同一个CPC模型 , 通过一个线性模型就可以完成不同的任务 , 甚至是两个目的完全不相干的任务 。
2.0
将语音输入几层的CNN后 , 得到向量(蓝色)先做量化后 , 得到图中绿色向量 。
再做掩蔽 。比如掩蔽掉其一部分(黑色)
然后输入 , 得到 (红色) 。
意思就是如果讲不同的内容 , 希望向量相似度越远愈好 , 讲同一句话就越近越好 。
XLS-R
框架基本和 2.0一样 。只是XLS-R是在超大的数据上训练的 。包含小时 , 107种语言 。
下面的结果是把这两个模型预训练后 , 在的数据上进行微调 , 只要10分钟的数据 , 就可以做语音识别 。
当参数量都是0.时 , XLS-R微落后于 , 可能是因为XLS-R训练数据种类太多 , 让它有点混乱了 。