大家好,今天给大家介绍一篇比较新的paper,也是基于Visper作语音识别的。这篇论文的题目叫Visper CD,专门解决长音频的语音识别问题。如果用一句话来总结的话,这篇paper它的核心亮点就在于不改变Visper模型的参数,也无需训练。只在Visper解码时给它加一个反向的揪片器,这样专门来压制长音频的语音识别。 音频转写里面的幻觉 重复循环和漏字等问题 这就是这篇论文 它核心要解决的问题 这里面CD代表什么意思 就是一个对比解码 那我们下面来看一下 这篇PayPal它主要解决什么问题 它核心要解决的 就是可能比较长的一些语音 然后呢 以Visper为代表的一些语音识别模型 它面临的幻觉 重复循环和内容遗漏 等错误累积的问题 因为上海文太长了嘛 而且这种Visper 它是自回归的一个模型结构 所以上文的错误会累积到下文 这三种错误基本上可以看成分成以下三类 第一种就是静音区的幻觉 例如在非语音的间隔期间 但是模型呢 它还是错误的生成了文本 第二个就是跨段的重复的循环 就是模型陷入自我强化的重复模式 它会错误的不停的输出相同的字 然后一直循环一直循环 然后永远不停 第三个就是跳过 那就是遗漏了实际的语音内容 导致转路不完整 实际上就是我们语音识别里常见的三类错误 插入删除替换这三类错误 此外这个论文也指出 当前因为是自回归的语音识别模型 它会利用前一段转路的结果作为解码的上下文 那么这样就会带来一个问题 就是上面的错误会被累积 引起后面解码带来更多的错误 这就要形成了新的累积错误 这也是自卫规模型它常见的问题 那这篇paper它是如何解决这个问题的呢 它就提出了叫Visper CD 这种方式啊 不需要训练这个Visper模型的 在推理时对比干净的音频和声学扰动后的音频的一个输出 一个logis 然后从而呢 抑制长形式语音转换中的一些插入删除和替换错误 那我们就来看一下它具体是怎么做的 我们先看右面这张图吧 我把这张图看懂了 那这篇论文最精华最核心的部分也就懂了 首先白色这一部分就是输入的语音 然后这一部分呢 就是粉色的这部分就是Whisper Whisper我们知道 它就整体过程中就不需要动 那过程是怎么样的呢 我们先看虚线这部分啊 就是上一个30秒已经识别完 识别之后的一个语音片段 那现在呢 我们要识别最新的 这个新的这30秒的语音片段 需要把它给到我们Whisper的encoder 那你看这就是黑色这部分 就是原始的这段 此外呢 我们会对原始的音频 做一些相关的扰动 把它当做复理 原来这段就当做正理 复理第一个种复理呢 就是我们加一些高斯噪声 就是在原始的这段干净音频上 加一些高斯噪声 把它变成第一种复理 也就是这个蓝色这部分 第二种复利呢 就是我们把原始的音频啊 向右稍微偏移一小段 这个就变成shift 就是偏移的这段扰动的音频 第三种音频啊 就是silence 就是完全静音的这段音频 然后呢 我们把这四种音频 同时送给Whisper 它的encoder和decoder去解码 解码之后呢 我们就得到了对应的四个输出 那黑色这部分就是原始的输出 蓝色绿色和红色分别也对应了三个输出 然后呢 我们就把正力的得分输出和负力的得分输出 进行一个整合 以叫我们叫对比的一个解码 解码之后就可以帮助我们得到 更准确的语音识别的结果 那具体它是怎么去做这个对比解码的呢 我们就来看一下论文中的原始 它是怎么说的 其实方式也很简单 正力得到的这个X就是干净的 原始干净的语音 那自回归之后 得到我们正力的一个结果 复利的呢 这个X上面加一个波浪 就是我们经过三种变换 加高斯啊 加偏移啊 和静音的变换之后的这种音频 也经过我们F 也就是Whisper之后 得到我们复利的输出 然后呢 我就通过一个α的一个超三 把这两种得分输出 把它整合在一起 然后就变成我们最终的一个CD的一个输出 那具体是怎么整合的呢 实际上就是1加上α 然后乘以我们正力的输出 减去α乘以我们负力的输出 实际上你如果把这个式子变换一下 其实就是把这个括号拆开啊 就变成正力的输出 加上正力的输出 减去负力的输出 然后再乘一个alpha的参数 对吧 所以这它代表的是什么含义呢 实际上就是我在保持正力输出不变的前提下 我把负力的那些扰动 希望都把它剪掉 然后把这些干扰项去掉 然后让它有一个对比的结果 从而帮助我更好的识别 最终的语音识别结果 这就是这篇paper最重要的 也最核心的一个机制 叫对比解码 那下面我们就来看一下 它声学扰动具体是怎么做的 基本上就是三种 一个是高斯造声的注入 就是我们随机生成 符合正态分布的高斯造声 加到原始信号上 第二个呢就是静音 我就把输入图谱 全都变成零 全零的波形 就是静音 第三个呢就是音频的时序偏移 我就把原始的30秒 向左偏移一些 然后左侧的丢弃 右侧的用零来填充 这就好了 这就是三种升学扰动的策略 然后呢 如果我们有了升学扰动的策略 那这三种策略 它是怎么结合在一起的呢 结合其实也非常简单 大家还记得我原始的诗子吧 就是1加上α乘以正力 减去α乘以负力 这里只不过负力有很多啊 就是有三种扰动策略嘛 所以负力产生的输出结果就有三种 那这三种我怎么整合到一起呢 我就把它在e的指数上 进行一个整合 先求和再求个平均 无非是这里加了一个超次参数 来控制一下 对吧 所以这个超次参数呢 一般也就设为1 那这个1其实就等于没有吗 你除它就等于没有了 那其实在原始的例子上 无非就是把三个负利的输出 进行求和再取平均 就非常简单吧 然后呢,我们再看在推理的时候。推理的时候,我们知道,呃,其实是可以并行推理的嘛,对吧?就是尽管输入的是K条额外的解码路径,但是我们可以通过P处理来计算控制的开销,也就是一次处理把它 都做完 然后整体的 它最大的优势 就是无需训练 然后我只需要在后面 只需要在解码的时候 稍加一些 所谓的工程化的处理就够了 那我们可以在这里 做一个形象的比喻 就是如果你上面 听的还不是特别懂的话 如果我们把原始的Whisper 它正常转型的时候 它就是像一个 边听边写的速记员 那这篇paper 它这个Whisper CD 它实际上做的就是 在旁边放了三个捣乱版的监听器 那一个呢 让它听起来很吵 也就是加噪音的 加高斯噪声的 一个让它几乎什么都听不到 然后就是静音的 还有一个呢 是让它错位的 就是这个偏移的 然后如果某个词 在这三种不利的条件下 它仍然特别想写出来 那这个词多半就不是真的想听到的 而是它习惯性脑补的 于是系统就把这些词的分数扣掉 然后这个解释啊 基本上或者这个比喻啊 就是整篇论文方法的本质 嗯 最后我们来看一下它的效果啊 整个论文呢 是在这五个长音频的英文测试机上来做的 然后我们看一下 它这个效果还是很不错的 就是加CD是这次改编之后的吧 然后它在两个VSPR的版本上做 我们看到原始的VSPR 像V3那种 它在这些测试机上 这个凑率都非常高 这都超过100%了 有200多500多 但是呢我们在Visper V3上加了解码上的改进之后 下降非常多 就都从200多变成45 从44变成19 从500多变成57 对吧 第二种方式呢 就是我用更强的版本 用Turbo这个版本 虽然原始的版本 直接用Visper 识别这个长文效果比V3会好一些啊 但是也不尽如人意吧 但是呢 我们加了这种CD之后 你会看到它效果像样的也是非常明显 所以这就是我觉得这篇paper非常 值得分享的吧 就是它用非常小的改动 然后实现了对常文的一个效果非常大的提升 我们最后来总结一下这篇paper 就是长音频的识别 Whisper的话会有很多严重的错误 但这些错误它大概率不是模型不会识别 而是解码的过程中 被之前的识别结果和一些上下文绑架了 导致它越识别越错 越识别越错 所以作者他不是去强化原始模型的能力 也就是没有训练原始的模型 而是直接在token选择的阶段做干预 这个角度就是在工程测作 然后也很聪明 好这期视频就给大家介绍到这