實際影片長度:10:05.947。原文、繁中、雙語可點擊句子跳轉影片。
0:00.000–0:04.310
大家好,今天给大家介绍一篇比较新的paper,
0:04.310–0:07.495
也是基于Visper作语音识别的。
0:07.495–0:10.680
这篇论文的题目叫Visper CD,
0:10.680–0:13.491
专门解决长音频的语音识别问题。
0:13.491–0:15.740
如果用一句话来总结的话,
0:15.740–0:21.548
这篇paper它的核心亮点就在于不改变Visper模型的参数,
0:21.548–0:22.672
也无需训练。
0:22.672–0:26.982
只在Visper解码时给它加一个反向的揪片器,
0:26.982–0:29.980
这样专门来压制长音频的语音识别。
0:30.000–0:31.740
音频转写里面的幻觉
0:31.740–0:34.580
重复循环和漏字等问题
0:34.580–0:36.500
这就是这篇论文
0:36.500–0:37.920
它核心要解决的问题
0:37.920–0:39.360
这里面CD代表什么意思
0:39.360–0:40.420
就是一个对比解码
0:40.420–0:41.540
那我们下面来看一下
0:41.540–0:43.360
这篇PayPal它主要解决什么问题
0:43.360–0:45.040
它核心要解决的
0:45.040–0:47.320
就是可能比较长的一些语音
0:47.320–0:48.060
然后呢
0:48.060–0:50.680
以Visper为代表的一些语音识别模型
0:50.680–0:52.280
它面临的幻觉
0:52.280–0:55.220
重复循环和内容遗漏
0:55.220–0:56.500
等错误累积的问题
0:56.500–0:58.080
因为上海文太长了嘛
0:58.080–0:59.340
而且这种Visper
0:59.340–1:02.300
它是自回归的一个模型结构
1:02.300–1:04.540
所以上文的错误会累积到下文
1:04.540–1:08.780
这三种错误基本上可以看成分成以下三类
1:08.780–1:11.100
第一种就是静音区的幻觉
1:11.100–1:14.320
例如在非语音的间隔期间
1:14.320–1:15.400
但是模型呢
1:15.400–1:17.200
它还是错误的生成了文本
1:17.200–1:20.800
第二个就是跨段的重复的循环
1:20.800–1:23.260
就是模型陷入自我强化的重复模式
1:23.260–1:26.320
它会错误的不停的输出相同的字
1:26.320–1:27.760
然后一直循环一直循环
1:27.760–1:29.100
然后永远不停
1:29.100–1:30.740
第三个就是跳过
1:30.740–1:33.960
那就是遗漏了实际的语音内容
1:33.960–1:35.300
导致转路不完整
1:35.300–1:38.360
实际上就是我们语音识别里常见的三类错误
1:38.360–1:41.000
插入删除替换这三类错误
1:41.000–1:42.920
此外这个论文也指出
1:42.920–1:46.380
当前因为是自回归的语音识别模型
1:46.380–1:50.380
它会利用前一段转路的结果作为解码的上下文
1:50.380–1:52.780
那么这样就会带来一个问题
1:52.780–1:54.660
就是上面的错误会被累积
1:54.660–1:57.140
引起后面解码带来更多的错误
1:57.140–1:59.180
这就要形成了新的累积错误
1:59.180–2:01.680
这也是自卫规模型它常见的问题
2:01.680–2:04.760
那这篇paper它是如何解决这个问题的呢
2:04.760–2:06.660
它就提出了叫Visper CD
2:06.660–2:09.000
这种方式啊
2:09.000–2:10.960
不需要训练这个Visper模型的
2:10.960–2:16.460
在推理时对比干净的音频和声学扰动后的音频的一个输出
2:16.460–2:17.420
一个logis
2:17.420–2:18.560
然后从而呢
2:18.560–2:23.260
抑制长形式语音转换中的一些插入删除和替换错误
2:23.260–2:26.000
那我们就来看一下它具体是怎么做的
2:26.000–2:28.380
我们先看右面这张图吧
2:28.380–2:29.820
我把这张图看懂了
2:29.820–2:33.080
那这篇论文最精华最核心的部分也就懂了
2:33.080–2:36.440
首先白色这一部分就是输入的语音
2:36.440–2:37.860
然后这一部分呢
2:37.860–2:39.980
就是粉色的这部分就是Whisper
2:39.980–2:41.560
Whisper我们知道
2:41.560–2:44.140
它就整体过程中就不需要动
2:44.140–2:45.860
那过程是怎么样的呢
2:45.860–2:47.360
我们先看虚线这部分啊
2:47.360–2:50.340
就是上一个30秒已经识别完
2:50.340–2:52.500
识别之后的一个语音片段
2:52.500–2:53.520
那现在呢
2:53.520–2:54.860
我们要识别最新的
2:54.860–2:56.900
这个新的这30秒的语音片段
2:56.900–3:00.820
需要把它给到我们Whisper的encoder
3:00.820–3:02.740
那你看这就是黑色这部分
3:02.740–3:04.280
就是原始的这段
3:04.280–3:05.560
此外呢
3:05.560–3:07.620
我们会对原始的音频
3:07.620–3:09.240
做一些相关的扰动
3:09.240–3:10.580
把它当做复理
3:10.580–3:12.420
原来这段就当做正理
3:12.420–3:14.260
复理第一个种复理呢
3:14.260–3:16.180
就是我们加一些高斯噪声
3:16.180–3:18.280
就是在原始的这段干净音频上
3:18.280–3:19.440
加一些高斯噪声
3:19.440–3:21.020
把它变成第一种复理
3:21.020–3:22.600
也就是这个蓝色这部分
3:22.600–3:24.000
第二种复利呢
3:24.000–3:26.140
就是我们把原始的音频啊
3:26.140–3:28.180
向右稍微偏移一小段
3:28.180–3:30.200
这个就变成shift
3:30.200–3:33.100
就是偏移的这段扰动的音频
3:33.100–3:34.500
第三种音频啊
3:34.500–3:35.760
就是silence
3:35.760–3:37.520
就是完全静音的这段音频
3:37.520–3:38.460
然后呢
3:38.460–3:39.960
我们把这四种音频
3:39.960–3:41.320
同时送给Whisper
3:41.320–3:43.760
它的encoder和decoder去解码
3:43.760–3:45.620
解码之后呢
3:45.620–3:48.860
我们就得到了对应的四个输出
3:48.860–3:51.260
那黑色这部分就是原始的输出
3:51.260–3:55.600
蓝色绿色和红色分别也对应了三个输出
3:55.600–3:56.420
然后呢
3:56.420–3:59.960
我们就把正力的得分输出和负力的得分输出
3:59.960–4:01.140
进行一个整合
4:01.140–4:03.340
以叫我们叫对比的一个解码
4:03.340–4:07.420
解码之后就可以帮助我们得到
4:07.420–4:09.980
更准确的语音识别的结果
4:09.980–4:13.120
那具体它是怎么去做这个对比解码的呢
4:13.120–4:16.060
我们就来看一下论文中的原始
4:16.060–4:17.040
它是怎么说的
4:17.040–4:18.820
其实方式也很简单
4:18.820–4:22.480
正力得到的这个X就是干净的
4:22.480–4:24.020
原始干净的语音
4:24.020–4:26.380
那自回归之后
4:26.380–4:28.360
得到我们正力的一个结果
4:28.360–4:29.320
复利的呢
4:29.320–4:31.520
这个X上面加一个波浪
4:31.520–4:33.780
就是我们经过三种变换
4:33.780–4:34.920
加高斯啊
4:34.920–4:36.340
加偏移啊
4:36.340–4:39.240
和静音的变换之后的这种音频
4:39.240–4:41.060
也经过我们F
4:41.060–4:43.480
也就是Whisper之后
4:43.480–4:45.040
得到我们复利的输出
4:45.040–4:46.080
然后呢
4:46.080–4:48.860
我就通过一个α的一个超三
4:48.860–4:51.260
把这两种得分输出
4:51.260–4:52.720
把它整合在一起
4:52.720–4:56.620
然后就变成我们最终的一个CD的一个输出
4:56.620–4:58.620
那具体是怎么整合的呢
4:58.620–5:01.080
实际上就是1加上α
5:01.080–5:03.120
然后乘以我们正力的输出
5:03.120–5:05.400
减去α乘以我们负力的输出
5:05.400–5:08.020
实际上你如果把这个式子变换一下
5:08.020–5:10.760
其实就是把这个括号拆开啊
5:10.760–5:12.140
就变成正力的输出
5:12.140–5:14.260
加上正力的输出
5:14.260–5:15.480
减去负力的输出
5:15.480–5:17.160
然后再乘一个alpha的参数
5:17.160–5:17.660
对吧
5:17.660–5:21.000
所以这它代表的是什么含义呢
5:21.000–5:24.800
实际上就是我在保持正力输出不变的前提下
5:24.800–5:27.100
我把负力的那些扰动
5:27.100–5:28.440
希望都把它剪掉
5:28.440–5:30.400
然后把这些干扰项去掉
5:30.400–5:32.020
然后让它有一个对比的结果
5:32.020–5:33.980
从而帮助我更好的识别
5:33.980–5:36.060
最终的语音识别结果
5:36.060–5:39.480
这就是这篇paper最重要的
5:39.480–5:41.200
也最核心的一个机制
5:41.200–5:42.020
叫对比解码
5:42.020–5:43.800
那下面我们就来看一下
5:43.800–5:46.220
它声学扰动具体是怎么做的
5:46.220–5:47.340
基本上就是三种
5:47.340–5:49.000
一个是高斯造声的注入
5:49.000–5:50.440
就是我们随机生成
5:50.440–5:52.440
符合正态分布的高斯造声
5:52.440–5:53.740
加到原始信号上
5:53.740–5:55.480
第二个呢就是静音
5:55.480–5:56.820
我就把输入图谱
5:56.820–5:58.180
全都变成零
5:58.180–5:59.180
全零的波形
5:59.180–6:00.160
就是静音
6:00.160–6:02.560
第三个呢就是音频的时序偏移
6:02.560–6:04.680
我就把原始的30秒
6:04.680–6:07.180
向左偏移一些
6:07.180–6:09.080
然后左侧的丢弃
6:09.080–6:10.760
右侧的用零来填充
6:10.760–6:11.620
这就好了
6:11.620–6:14.260
这就是三种升学扰动的策略
6:14.260–6:15.540
然后呢
6:15.540–6:17.760
如果我们有了升学扰动的策略
6:17.760–6:18.980
那这三种策略
6:18.980–6:21.260
它是怎么结合在一起的呢
6:21.260–6:22.680
结合其实也非常简单
6:22.680–6:24.720
大家还记得我原始的诗子吧
6:24.720–6:27.000
就是1加上α乘以正力
6:27.000–6:28.480
减去α乘以负力
6:28.480–6:30.360
这里只不过负力有很多啊
6:30.360–6:32.740
就是有三种扰动策略嘛
6:32.740–6:36.360
所以负力产生的输出结果就有三种
6:36.360–6:38.520
那这三种我怎么整合到一起呢
6:38.520–6:40.940
我就把它在e的指数上
6:40.940–6:41.960
进行一个整合
6:41.960–6:43.760
先求和再求个平均
6:43.760–6:46.280
无非是这里加了一个超次参数
6:46.280–6:47.280
来控制一下
6:47.280–6:47.780
对吧
6:47.780–6:49.200
所以这个超次参数呢
6:49.200–6:50.200
一般也就设为1
6:50.200–6:53.000
那这个1其实就等于没有吗
6:53.000–6:54.100
你除它就等于没有了
6:54.100–6:56.080
那其实在原始的例子上
6:56.080–6:59.600
无非就是把三个负利的输出
6:59.600–7:01.560
进行求和再取平均
7:01.560–7:02.700
就非常简单吧
7:03.927–7:06.307
然后呢,我们再看在推理的时候。
7:06.307–7:07.259
推理的时候,
7:07.259–7:08.052
我们知道,
7:08.052–7:08.552
呃,
7:08.552–7:10.274
其实是可以并行推理的嘛,
7:10.274–7:10.774
对吧?
7:10.774–7:13.606
就是尽管输入的是K条额外的解码路径,
7:13.606–7:16.779
但是我们可以通过P处理来计算控制的开销,
7:16.779–7:18.207
也就是一次处理把它
7:18.207–7:18.927
都做完
7:18.927–7:19.947
然后整体的
7:19.947–7:20.887
它最大的优势
7:20.887–7:21.867
就是无需训练
7:21.867–7:24.047
然后我只需要在后面
7:24.047–7:26.467
只需要在解码的时候
7:26.467–7:27.487
稍加一些
7:27.487–7:30.427
所谓的工程化的处理就够了
7:30.427–7:32.687
那我们可以在这里
7:32.687–7:33.867
做一个形象的比喻
7:33.867–7:34.927
就是如果你上面
7:34.927–7:36.827
听的还不是特别懂的话
7:36.827–7:39.307
如果我们把原始的Whisper
7:39.307–7:40.647
它正常转型的时候
7:40.647–7:41.567
它就是像一个
7:41.567–7:43.007
边听边写的速记员
7:43.007–7:44.867
那这篇paper
7:44.867–7:45.987
它这个Whisper CD
7:45.987–7:47.667
它实际上做的就是
7:47.667–7:50.727
在旁边放了三个捣乱版的监听器
7:50.727–7:51.767
那一个呢
7:51.767–7:52.787
让它听起来很吵
7:52.787–7:54.307
也就是加噪音的
7:54.307–7:55.607
加高斯噪声的
7:55.607–7:57.647
一个让它几乎什么都听不到
7:57.647–8:00.147
然后就是静音的
8:00.147–8:01.027
还有一个呢
8:01.027–8:02.847
是让它错位的
8:02.847–8:04.107
就是这个偏移的
8:04.107–8:05.467
然后如果某个词
8:05.467–8:07.247
在这三种不利的条件下
8:07.247–8:09.107
它仍然特别想写出来
8:09.107–8:12.927
那这个词多半就不是真的想听到的
8:12.927–8:14.467
而是它习惯性脑补的
8:14.467–8:17.007
于是系统就把这些词的分数扣掉
8:17.007–8:18.707
然后这个解释啊
8:18.707–8:19.987
基本上或者这个比喻啊
8:19.987–8:22.127
就是整篇论文方法的本质
8:22.127–8:22.867
嗯
8:22.867–8:25.287
最后我们来看一下它的效果啊
8:25.287–8:25.947
整个论文呢
8:25.947–8:29.707
是在这五个长音频的英文测试机上来做的
8:29.707–8:30.647
然后我们看一下
8:30.647–8:33.407
它这个效果还是很不错的
8:33.407–8:36.347
就是加CD是这次改编之后的吧
8:36.347–8:38.667
然后它在两个VSPR的版本上做
8:38.667–8:40.787
我们看到原始的VSPR
8:40.787–8:42.507
像V3那种
8:42.507–8:43.887
它在这些测试机上
8:43.887–8:45.707
这个凑率都非常高
8:45.707–8:47.427
这都超过100%了
8:47.427–8:48.907
有200多500多
8:48.907–8:53.847
但是呢我们在Visper V3上加了解码上的改进之后
8:53.847–8:54.947
下降非常多
8:54.947–8:57.027
就都从200多变成45
8:57.027–8:58.647
从44变成19
8:58.647–8:59.827
从500多变成57
8:59.827–9:00.327
对吧
9:00.327–9:01.607
第二种方式呢
9:01.607–9:02.927
就是我用更强的版本
9:02.927–9:04.007
用Turbo这个版本
9:04.007–9:05.827
虽然原始的版本
9:05.827–9:07.647
直接用Visper
9:07.647–9:11.587
识别这个长文效果比V3会好一些啊
9:11.587–9:14.067
但是也不尽如人意吧
9:14.067–9:14.967
但是呢
9:14.967–9:16.467
我们加了这种CD之后
9:16.467–9:19.027
你会看到它效果像样的也是非常明显
9:19.027–9:21.747
所以这就是我觉得这篇paper非常
9:21.747–9:24.507
值得分享的吧
9:24.507–9:26.167
就是它用非常小的改动
9:26.167–9:29.607
然后实现了对常文的一个效果非常大的提升
9:29.607–9:32.047
我们最后来总结一下这篇paper
9:32.047–9:34.007
就是长音频的识别
9:34.007–9:36.527
Whisper的话会有很多严重的错误
9:36.527–9:39.987
但这些错误它大概率不是模型不会识别
9:39.987–9:41.647
而是解码的过程中
9:41.647–9:44.847
被之前的识别结果和一些上下文绑架了
9:44.847–9:47.127
导致它越识别越错
9:47.127–9:47.947
越识别越错
9:47.947–9:51.127
所以作者他不是去强化原始模型的能力
9:51.127–9:52.627
也就是没有训练原始的模型
9:52.627–9:56.827
而是直接在token选择的阶段做干预
9:56.827–9:59.267
这个角度就是在工程测作
9:59.267–10:00.387
然后也很聪明
10:00.387–10:03.007
好这期视频就给大家介绍到这
0:00.000–0:04.310
大家好,今天给大家介绍一篇比较新的paper,
0:04.310–0:07.495
也是基于Visper作语音识别的。
0:07.495–0:10.680
这篇论文的题目叫Visper CD,
0:10.680–0:13.491
专门解决长音频的语音识别问题。
0:13.491–0:15.740
如果用一句话来总结的话,
0:15.740–0:21.548
这篇paper它的核心亮点就在于不改变Visper模型的参数,
0:21.548–0:22.672
也无需训练。
0:22.672–0:26.982
只在Visper解码时给它加一个反向的揪片器,
0:26.982–0:29.980
这样专门来压制长音频的语音识别。
0:30.000–0:31.740
音频转写里面的幻觉
0:31.740–0:34.580
重复循环和漏字等问题
0:34.580–0:36.500
这就是这篇论文
0:36.500–0:37.920
它核心要解决的问题
0:37.920–0:39.360
这里面CD代表什么意思
0:39.360–0:40.420
就是一个对比解码
0:40.420–0:41.540
那我们下面来看一下
0:41.540–0:43.360
这篇PayPal它主要解决什么问题
0:43.360–0:45.040
它核心要解决的
0:45.040–0:47.320
就是可能比较长的一些语音
0:47.320–0:48.060
然后呢
0:48.060–0:50.680
以Visper为代表的一些语音识别模型
0:50.680–0:52.280
它面临的幻觉
0:52.280–0:55.220
重复循环和内容遗漏
0:55.220–0:56.500
等错误累积的问题
0:56.500–0:58.080
因为上海文太长了嘛
0:58.080–0:59.340
而且这种Visper
0:59.340–1:02.300
它是自回归的一个模型结构
1:02.300–1:04.540
所以上文的错误会累积到下文
1:04.540–1:08.780
这三种错误基本上可以看成分成以下三类
1:08.780–1:11.100
第一种就是静音区的幻觉
1:11.100–1:14.320
例如在非语音的间隔期间
1:14.320–1:15.400
但是模型呢
1:15.400–1:17.200
它还是错误的生成了文本
1:17.200–1:20.800
第二个就是跨段的重复的循环
1:20.800–1:23.260
就是模型陷入自我强化的重复模式
1:23.260–1:26.320
它会错误的不停的输出相同的字
1:26.320–1:27.760
然后一直循环一直循环
1:27.760–1:29.100
然后永远不停
1:29.100–1:30.740
第三个就是跳过
1:30.740–1:33.960
那就是遗漏了实际的语音内容
1:33.960–1:35.300
导致转路不完整
1:35.300–1:38.360
实际上就是我们语音识别里常见的三类错误
1:38.360–1:41.000
插入删除替换这三类错误
1:41.000–1:42.920
此外这个论文也指出
1:42.920–1:46.380
当前因为是自回归的语音识别模型
1:46.380–1:50.380
它会利用前一段转路的结果作为解码的上下文
1:50.380–1:52.780
那么这样就会带来一个问题
1:52.780–1:54.660
就是上面的错误会被累积
1:54.660–1:57.140
引起后面解码带来更多的错误
1:57.140–1:59.180
这就要形成了新的累积错误
1:59.180–2:01.680
这也是自卫规模型它常见的问题
2:01.680–2:04.760
那这篇paper它是如何解决这个问题的呢
2:04.760–2:06.660
它就提出了叫Visper CD
2:06.660–2:09.000
这种方式啊
2:09.000–2:10.960
不需要训练这个Visper模型的
2:10.960–2:16.460
在推理时对比干净的音频和声学扰动后的音频的一个输出
2:16.460–2:17.420
一个logis
2:17.420–2:18.560
然后从而呢
2:18.560–2:23.260
抑制长形式语音转换中的一些插入删除和替换错误
2:23.260–2:26.000
那我们就来看一下它具体是怎么做的
2:26.000–2:28.380
我们先看右面这张图吧
2:28.380–2:29.820
我把这张图看懂了
2:29.820–2:33.080
那这篇论文最精华最核心的部分也就懂了
2:33.080–2:36.440
首先白色这一部分就是输入的语音
2:36.440–2:37.860
然后这一部分呢
2:37.860–2:39.980
就是粉色的这部分就是Whisper
2:39.980–2:41.560
Whisper我们知道
2:41.560–2:44.140
它就整体过程中就不需要动
2:44.140–2:45.860
那过程是怎么样的呢
2:45.860–2:47.360
我们先看虚线这部分啊
2:47.360–2:50.340
就是上一个30秒已经识别完
2:50.340–2:52.500
识别之后的一个语音片段
2:52.500–2:53.520
那现在呢
2:53.520–2:54.860
我们要识别最新的
2:54.860–2:56.900
这个新的这30秒的语音片段
2:56.900–3:00.820
需要把它给到我们Whisper的encoder
3:00.820–3:02.740
那你看这就是黑色这部分
3:02.740–3:04.280
就是原始的这段
3:04.280–3:05.560
此外呢
3:05.560–3:07.620
我们会对原始的音频
3:07.620–3:09.240
做一些相关的扰动
3:09.240–3:10.580
把它当做复理
3:10.580–3:12.420
原来这段就当做正理
3:12.420–3:14.260
复理第一个种复理呢
3:14.260–3:16.180
就是我们加一些高斯噪声
3:16.180–3:18.280
就是在原始的这段干净音频上
3:18.280–3:19.440
加一些高斯噪声
3:19.440–3:21.020
把它变成第一种复理
3:21.020–3:22.600
也就是这个蓝色这部分
3:22.600–3:24.000
第二种复利呢
3:24.000–3:26.140
就是我们把原始的音频啊
3:26.140–3:28.180
向右稍微偏移一小段
3:28.180–3:30.200
这个就变成shift
3:30.200–3:33.100
就是偏移的这段扰动的音频
3:33.100–3:34.500
第三种音频啊
3:34.500–3:35.760
就是silence
3:35.760–3:37.520
就是完全静音的这段音频
3:37.520–3:38.460
然后呢
3:38.460–3:39.960
我们把这四种音频
3:39.960–3:41.320
同时送给Whisper
3:41.320–3:43.760
它的encoder和decoder去解码
3:43.760–3:45.620
解码之后呢
3:45.620–3:48.860
我们就得到了对应的四个输出
3:48.860–3:51.260
那黑色这部分就是原始的输出
3:51.260–3:55.600
蓝色绿色和红色分别也对应了三个输出
3:55.600–3:56.420
然后呢
3:56.420–3:59.960
我们就把正力的得分输出和负力的得分输出
3:59.960–4:01.140
进行一个整合
4:01.140–4:03.340
以叫我们叫对比的一个解码
4:03.340–4:07.420
解码之后就可以帮助我们得到
4:07.420–4:09.980
更准确的语音识别的结果
4:09.980–4:13.120
那具体它是怎么去做这个对比解码的呢
4:13.120–4:16.060
我们就来看一下论文中的原始
4:16.060–4:17.040
它是怎么说的
4:17.040–4:18.820
其实方式也很简单
4:18.820–4:22.480
正力得到的这个X就是干净的
4:22.480–4:24.020
原始干净的语音
4:24.020–4:26.380
那自回归之后
4:26.380–4:28.360
得到我们正力的一个结果
4:28.360–4:29.320
复利的呢
4:29.320–4:31.520
这个X上面加一个波浪
4:31.520–4:33.780
就是我们经过三种变换
4:33.780–4:34.920
加高斯啊
4:34.920–4:36.340
加偏移啊
4:36.340–4:39.240
和静音的变换之后的这种音频
4:39.240–4:41.060
也经过我们F
4:41.060–4:43.480
也就是Whisper之后
4:43.480–4:45.040
得到我们复利的输出
4:45.040–4:46.080
然后呢
4:46.080–4:48.860
我就通过一个α的一个超三
4:48.860–4:51.260
把这两种得分输出
4:51.260–4:52.720
把它整合在一起
4:52.720–4:56.620
然后就变成我们最终的一个CD的一个输出
4:56.620–4:58.620
那具体是怎么整合的呢
4:58.620–5:01.080
实际上就是1加上α
5:01.080–5:03.120
然后乘以我们正力的输出
5:03.120–5:05.400
减去α乘以我们负力的输出
5:05.400–5:08.020
实际上你如果把这个式子变换一下
5:08.020–5:10.760
其实就是把这个括号拆开啊
5:10.760–5:12.140
就变成正力的输出
5:12.140–5:14.260
加上正力的输出
5:14.260–5:15.480
减去负力的输出
5:15.480–5:17.160
然后再乘一个alpha的参数
5:17.160–5:17.660
对吧
5:17.660–5:21.000
所以这它代表的是什么含义呢
5:21.000–5:24.800
实际上就是我在保持正力输出不变的前提下
5:24.800–5:27.100
我把负力的那些扰动
5:27.100–5:28.440
希望都把它剪掉
5:28.440–5:30.400
然后把这些干扰项去掉
5:30.400–5:32.020
然后让它有一个对比的结果
5:32.020–5:33.980
从而帮助我更好的识别
5:33.980–5:36.060
最终的语音识别结果
5:36.060–5:39.480
这就是这篇paper最重要的
5:39.480–5:41.200
也最核心的一个机制
5:41.200–5:42.020
叫对比解码
5:42.020–5:43.800
那下面我们就来看一下
5:43.800–5:46.220
它声学扰动具体是怎么做的
5:46.220–5:47.340
基本上就是三种
5:47.340–5:49.000
一个是高斯造声的注入
5:49.000–5:50.440
就是我们随机生成
5:50.440–5:52.440
符合正态分布的高斯造声
5:52.440–5:53.740
加到原始信号上
5:53.740–5:55.480
第二个呢就是静音
5:55.480–5:56.820
我就把输入图谱
5:56.820–5:58.180
全都变成零
5:58.180–5:59.180
全零的波形
5:59.180–6:00.160
就是静音
6:00.160–6:02.560
第三个呢就是音频的时序偏移
6:02.560–6:04.680
我就把原始的30秒
6:04.680–6:07.180
向左偏移一些
6:07.180–6:09.080
然后左侧的丢弃
6:09.080–6:10.760
右侧的用零来填充
6:10.760–6:11.620
这就好了
6:11.620–6:14.260
这就是三种升学扰动的策略
6:14.260–6:15.540
然后呢
6:15.540–6:17.760
如果我们有了升学扰动的策略
6:17.760–6:18.980
那这三种策略
6:18.980–6:21.260
它是怎么结合在一起的呢
6:21.260–6:22.680
结合其实也非常简单
6:22.680–6:24.720
大家还记得我原始的诗子吧
6:24.720–6:27.000
就是1加上α乘以正力
6:27.000–6:28.480
减去α乘以负力
6:28.480–6:30.360
这里只不过负力有很多啊
6:30.360–6:32.740
就是有三种扰动策略嘛
6:32.740–6:36.360
所以负力产生的输出结果就有三种
6:36.360–6:38.520
那这三种我怎么整合到一起呢
6:38.520–6:40.940
我就把它在e的指数上
6:40.940–6:41.960
进行一个整合
6:41.960–6:43.760
先求和再求个平均
6:43.760–6:46.280
无非是这里加了一个超次参数
6:46.280–6:47.280
来控制一下
6:47.280–6:47.780
对吧
6:47.780–6:49.200
所以这个超次参数呢
6:49.200–6:50.200
一般也就设为1
6:50.200–6:53.000
那这个1其实就等于没有吗
6:53.000–6:54.100
你除它就等于没有了
6:54.100–6:56.080
那其实在原始的例子上
6:56.080–6:59.600
无非就是把三个负利的输出
6:59.600–7:01.560
进行求和再取平均
7:01.560–7:02.700
就非常简单吧
7:03.927–7:06.307
然后呢,我们再看在推理的时候。
7:06.307–7:07.259
推理的时候,
7:07.259–7:08.052
我们知道,
7:08.052–7:08.552
呃,
7:08.552–7:10.274
其实是可以并行推理的嘛,
7:10.274–7:10.774
对吧?
7:10.774–7:13.606
就是尽管输入的是K条额外的解码路径,
7:13.606–7:16.779
但是我们可以通过P处理来计算控制的开销,
7:16.779–7:18.207
也就是一次处理把它
7:18.207–7:18.927
都做完
7:18.927–7:19.947
然后整体的
7:19.947–7:20.887
它最大的优势
7:20.887–7:21.867
就是无需训练
7:21.867–7:24.047
然后我只需要在后面
7:24.047–7:26.467
只需要在解码的时候
7:26.467–7:27.487
稍加一些
7:27.487–7:30.427
所谓的工程化的处理就够了
7:30.427–7:32.687
那我们可以在这里
7:32.687–7:33.867
做一个形象的比喻
7:33.867–7:34.927
就是如果你上面
7:34.927–7:36.827
听的还不是特别懂的话
7:36.827–7:39.307
如果我们把原始的Whisper
7:39.307–7:40.647
它正常转型的时候
7:40.647–7:41.567
它就是像一个
7:41.567–7:43.007
边听边写的速记员
7:43.007–7:44.867
那这篇paper
7:44.867–7:45.987
它这个Whisper CD
7:45.987–7:47.667
它实际上做的就是
7:47.667–7:50.727
在旁边放了三个捣乱版的监听器
7:50.727–7:51.767
那一个呢
7:51.767–7:52.787
让它听起来很吵
7:52.787–7:54.307
也就是加噪音的
7:54.307–7:55.607
加高斯噪声的
7:55.607–7:57.647
一个让它几乎什么都听不到
7:57.647–8:00.147
然后就是静音的
8:00.147–8:01.027
还有一个呢
8:01.027–8:02.847
是让它错位的
8:02.847–8:04.107
就是这个偏移的
8:04.107–8:05.467
然后如果某个词
8:05.467–8:07.247
在这三种不利的条件下
8:07.247–8:09.107
它仍然特别想写出来
8:09.107–8:12.927
那这个词多半就不是真的想听到的
8:12.927–8:14.467
而是它习惯性脑补的
8:14.467–8:17.007
于是系统就把这些词的分数扣掉
8:17.007–8:18.707
然后这个解释啊
8:18.707–8:19.987
基本上或者这个比喻啊
8:19.987–8:22.127
就是整篇论文方法的本质
8:22.127–8:22.867
嗯
8:22.867–8:25.287
最后我们来看一下它的效果啊
8:25.287–8:25.947
整个论文呢
8:25.947–8:29.707
是在这五个长音频的英文测试机上来做的
8:29.707–8:30.647
然后我们看一下
8:30.647–8:33.407
它这个效果还是很不错的
8:33.407–8:36.347
就是加CD是这次改编之后的吧
8:36.347–8:38.667
然后它在两个VSPR的版本上做
8:38.667–8:40.787
我们看到原始的VSPR
8:40.787–8:42.507
像V3那种
8:42.507–8:43.887
它在这些测试机上
8:43.887–8:45.707
这个凑率都非常高
8:45.707–8:47.427
这都超过100%了
8:47.427–8:48.907
有200多500多
8:48.907–8:53.847
但是呢我们在Visper V3上加了解码上的改进之后
8:53.847–8:54.947
下降非常多
8:54.947–8:57.027
就都从200多变成45
8:57.027–8:58.647
从44变成19
8:58.647–8:59.827
从500多变成57
8:59.827–9:00.327
对吧
9:00.327–9:01.607
第二种方式呢
9:01.607–9:02.927
就是我用更强的版本
9:02.927–9:04.007
用Turbo这个版本
9:04.007–9:05.827
虽然原始的版本
9:05.827–9:07.647
直接用Visper
9:07.647–9:11.587
识别这个长文效果比V3会好一些啊
9:11.587–9:14.067
但是也不尽如人意吧
9:14.067–9:14.967
但是呢
9:14.967–9:16.467
我们加了这种CD之后
9:16.467–9:19.027
你会看到它效果像样的也是非常明显
9:19.027–9:21.747
所以这就是我觉得这篇paper非常
9:21.747–9:24.507
值得分享的吧
9:24.507–9:26.167
就是它用非常小的改动
9:26.167–9:29.607
然后实现了对常文的一个效果非常大的提升
9:29.607–9:32.047
我们最后来总结一下这篇paper
9:32.047–9:34.007
就是长音频的识别
9:34.007–9:36.527
Whisper的话会有很多严重的错误
9:36.527–9:39.987
但这些错误它大概率不是模型不会识别
9:39.987–9:41.647
而是解码的过程中
9:41.647–9:44.847
被之前的识别结果和一些上下文绑架了
9:44.847–9:47.127
导致它越识别越错
9:47.127–9:47.947
越识别越错
9:47.947–9:51.127
所以作者他不是去强化原始模型的能力
9:51.127–9:52.627
也就是没有训练原始的模型
9:52.627–9:56.827
而是直接在token选择的阶段做干预
9:56.827–9:59.267
这个角度就是在工程测作
9:59.267–10:00.387
然后也很聪明
10:00.387–10:03.007
好这期视频就给大家介绍到这
0:00.000–0:04.310
大家好,今天给大家介绍一篇比较新的paper,
大家好,今天给大家介绍一篇比较新的paper,
0:04.310–0:07.495
也是基于Visper作语音识别的。
也是基于Visper作语音识别的。
0:07.495–0:10.680
这篇论文的题目叫Visper CD,
这篇论文的题目叫Visper CD,
0:10.680–0:13.491
专门解决长音频的语音识别问题。
专门解决长音频的语音识别问题。
0:13.491–0:15.740
如果用一句话来总结的话,
如果用一句话来总结的话,
0:15.740–0:21.548
这篇paper它的核心亮点就在于不改变Visper模型的参数,
这篇paper它的核心亮点就在于不改变Visper模型的参数,
0:21.548–0:22.672
也无需训练。
也无需训练。
0:22.672–0:26.982
只在Visper解码时给它加一个反向的揪片器,
只在Visper解码时给它加一个反向的揪片器,
0:26.982–0:29.980
这样专门来压制长音频的语音识别。
这样专门来压制长音频的语音识别。
0:30.000–0:31.740
音频转写里面的幻觉
音频转写里面的幻觉
0:31.740–0:34.580
重复循环和漏字等问题
重复循环和漏字等问题
0:34.580–0:36.500
这就是这篇论文
这就是这篇论文
0:36.500–0:37.920
它核心要解决的问题
它核心要解决的问题
0:37.920–0:39.360
这里面CD代表什么意思
这里面CD代表什么意思
0:39.360–0:40.420
就是一个对比解码
就是一个对比解码
0:40.420–0:41.540
那我们下面来看一下
那我们下面来看一下
0:41.540–0:43.360
这篇PayPal它主要解决什么问题
这篇PayPal它主要解决什么问题
0:43.360–0:45.040
它核心要解决的
它核心要解决的
0:45.040–0:47.320
就是可能比较长的一些语音
就是可能比较长的一些语音
0:47.320–0:48.060
然后呢
然后呢
0:48.060–0:50.680
以Visper为代表的一些语音识别模型
以Visper为代表的一些语音识别模型
0:50.680–0:52.280
它面临的幻觉
它面临的幻觉
0:52.280–0:55.220
重复循环和内容遗漏
重复循环和内容遗漏
0:55.220–0:56.500
等错误累积的问题
等错误累积的问题
0:56.500–0:58.080
因为上海文太长了嘛
因为上海文太长了嘛
0:58.080–0:59.340
而且这种Visper
而且这种Visper
0:59.340–1:02.300
它是自回归的一个模型结构
它是自回归的一个模型结构
1:02.300–1:04.540
所以上文的错误会累积到下文
所以上文的错误会累积到下文
1:04.540–1:08.780
这三种错误基本上可以看成分成以下三类
这三种错误基本上可以看成分成以下三类
1:08.780–1:11.100
第一种就是静音区的幻觉
第一种就是静音区的幻觉
1:11.100–1:14.320
例如在非语音的间隔期间
例如在非语音的间隔期间
1:14.320–1:15.400
但是模型呢
但是模型呢
1:15.400–1:17.200
它还是错误的生成了文本
它还是错误的生成了文本
1:17.200–1:20.800
第二个就是跨段的重复的循环
第二个就是跨段的重复的循环
1:20.800–1:23.260
就是模型陷入自我强化的重复模式
就是模型陷入自我强化的重复模式
1:23.260–1:26.320
它会错误的不停的输出相同的字
它会错误的不停的输出相同的字
1:26.320–1:27.760
然后一直循环一直循环
然后一直循环一直循环
1:27.760–1:29.100
然后永远不停
然后永远不停
1:29.100–1:30.740
第三个就是跳过
第三个就是跳过
1:30.740–1:33.960
那就是遗漏了实际的语音内容
那就是遗漏了实际的语音内容
1:33.960–1:35.300
导致转路不完整
导致转路不完整
1:35.300–1:38.360
实际上就是我们语音识别里常见的三类错误
实际上就是我们语音识别里常见的三类错误
1:38.360–1:41.000
插入删除替换这三类错误
插入删除替换这三类错误
1:41.000–1:42.920
此外这个论文也指出
此外这个论文也指出
1:42.920–1:46.380
当前因为是自回归的语音识别模型
当前因为是自回归的语音识别模型
1:46.380–1:50.380
它会利用前一段转路的结果作为解码的上下文
它会利用前一段转路的结果作为解码的上下文
1:50.380–1:52.780
那么这样就会带来一个问题
那么这样就会带来一个问题
1:52.780–1:54.660
就是上面的错误会被累积
就是上面的错误会被累积
1:54.660–1:57.140
引起后面解码带来更多的错误
引起后面解码带来更多的错误
1:57.140–1:59.180
这就要形成了新的累积错误
这就要形成了新的累积错误
1:59.180–2:01.680
这也是自卫规模型它常见的问题
这也是自卫规模型它常见的问题
2:01.680–2:04.760
那这篇paper它是如何解决这个问题的呢
那这篇paper它是如何解决这个问题的呢
2:04.760–2:06.660
它就提出了叫Visper CD
它就提出了叫Visper CD
2:06.660–2:09.000
这种方式啊
这种方式啊
2:09.000–2:10.960
不需要训练这个Visper模型的
不需要训练这个Visper模型的
2:10.960–2:16.460
在推理时对比干净的音频和声学扰动后的音频的一个输出
在推理时对比干净的音频和声学扰动后的音频的一个输出
2:16.460–2:17.420
一个logis
一个logis
2:17.420–2:18.560
然后从而呢
然后从而呢
2:18.560–2:23.260
抑制长形式语音转换中的一些插入删除和替换错误
抑制长形式语音转换中的一些插入删除和替换错误
2:23.260–2:26.000
那我们就来看一下它具体是怎么做的
那我们就来看一下它具体是怎么做的
2:26.000–2:28.380
我们先看右面这张图吧
我们先看右面这张图吧
2:28.380–2:29.820
我把这张图看懂了
我把这张图看懂了
2:29.820–2:33.080
那这篇论文最精华最核心的部分也就懂了
那这篇论文最精华最核心的部分也就懂了
2:33.080–2:36.440
首先白色这一部分就是输入的语音
首先白色这一部分就是输入的语音
2:36.440–2:37.860
然后这一部分呢
然后这一部分呢
2:37.860–2:39.980
就是粉色的这部分就是Whisper
就是粉色的这部分就是Whisper
2:39.980–2:41.560
Whisper我们知道
Whisper我们知道
2:41.560–2:44.140
它就整体过程中就不需要动
它就整体过程中就不需要动
2:44.140–2:45.860
那过程是怎么样的呢
那过程是怎么样的呢
2:45.860–2:47.360
我们先看虚线这部分啊
我们先看虚线这部分啊
2:47.360–2:50.340
就是上一个30秒已经识别完
就是上一个30秒已经识别完
2:50.340–2:52.500
识别之后的一个语音片段
识别之后的一个语音片段
2:52.500–2:53.520
那现在呢
那现在呢
2:53.520–2:54.860
我们要识别最新的
我们要识别最新的
2:54.860–2:56.900
这个新的这30秒的语音片段
这个新的这30秒的语音片段
2:56.900–3:00.820
需要把它给到我们Whisper的encoder
需要把它给到我们Whisper的encoder
3:00.820–3:02.740
那你看这就是黑色这部分
那你看这就是黑色这部分
3:02.740–3:04.280
就是原始的这段
就是原始的这段
3:04.280–3:05.560
此外呢
此外呢
3:05.560–3:07.620
我们会对原始的音频
我们会对原始的音频
3:07.620–3:09.240
做一些相关的扰动
做一些相关的扰动
3:09.240–3:10.580
把它当做复理
把它当做复理
3:10.580–3:12.420
原来这段就当做正理
原来这段就当做正理
3:12.420–3:14.260
复理第一个种复理呢
复理第一个种复理呢
3:14.260–3:16.180
就是我们加一些高斯噪声
就是我们加一些高斯噪声
3:16.180–3:18.280
就是在原始的这段干净音频上
就是在原始的这段干净音频上
3:18.280–3:19.440
加一些高斯噪声
加一些高斯噪声
3:19.440–3:21.020
把它变成第一种复理
把它变成第一种复理
3:21.020–3:22.600
也就是这个蓝色这部分
也就是这个蓝色这部分
3:22.600–3:24.000
第二种复利呢
第二种复利呢
3:24.000–3:26.140
就是我们把原始的音频啊
就是我们把原始的音频啊
3:26.140–3:28.180
向右稍微偏移一小段
向右稍微偏移一小段
3:28.180–3:30.200
这个就变成shift
这个就变成shift
3:30.200–3:33.100
就是偏移的这段扰动的音频
就是偏移的这段扰动的音频
3:33.100–3:34.500
第三种音频啊
第三种音频啊
3:34.500–3:35.760
就是silence
就是silence
3:35.760–3:37.520
就是完全静音的这段音频
就是完全静音的这段音频
3:37.520–3:38.460
然后呢
然后呢
3:38.460–3:39.960
我们把这四种音频
我们把这四种音频
3:39.960–3:41.320
同时送给Whisper
同时送给Whisper
3:41.320–3:43.760
它的encoder和decoder去解码
它的encoder和decoder去解码
3:43.760–3:45.620
解码之后呢
解码之后呢
3:45.620–3:48.860
我们就得到了对应的四个输出
我们就得到了对应的四个输出
3:48.860–3:51.260
那黑色这部分就是原始的输出
那黑色这部分就是原始的输出
3:51.260–3:55.600
蓝色绿色和红色分别也对应了三个输出
蓝色绿色和红色分别也对应了三个输出
3:55.600–3:56.420
然后呢
然后呢
3:56.420–3:59.960
我们就把正力的得分输出和负力的得分输出
我们就把正力的得分输出和负力的得分输出
3:59.960–4:01.140
进行一个整合
进行一个整合
4:01.140–4:03.340
以叫我们叫对比的一个解码
以叫我们叫对比的一个解码
4:03.340–4:07.420
解码之后就可以帮助我们得到
解码之后就可以帮助我们得到
4:07.420–4:09.980
更准确的语音识别的结果
更准确的语音识别的结果
4:09.980–4:13.120
那具体它是怎么去做这个对比解码的呢
那具体它是怎么去做这个对比解码的呢
4:13.120–4:16.060
我们就来看一下论文中的原始
我们就来看一下论文中的原始
4:16.060–4:17.040
它是怎么说的
它是怎么说的
4:17.040–4:18.820
其实方式也很简单
其实方式也很简单
4:18.820–4:22.480
正力得到的这个X就是干净的
正力得到的这个X就是干净的
4:22.480–4:24.020
原始干净的语音
原始干净的语音
4:24.020–4:26.380
那自回归之后
那自回归之后
4:26.380–4:28.360
得到我们正力的一个结果
得到我们正力的一个结果
4:28.360–4:29.320
复利的呢
复利的呢
4:29.320–4:31.520
这个X上面加一个波浪
这个X上面加一个波浪
4:31.520–4:33.780
就是我们经过三种变换
就是我们经过三种变换
4:33.780–4:34.920
加高斯啊
加高斯啊
4:34.920–4:36.340
加偏移啊
加偏移啊
4:36.340–4:39.240
和静音的变换之后的这种音频
和静音的变换之后的这种音频
4:39.240–4:41.060
也经过我们F
也经过我们F
4:41.060–4:43.480
也就是Whisper之后
也就是Whisper之后
4:43.480–4:45.040
得到我们复利的输出
得到我们复利的输出
4:45.040–4:46.080
然后呢
然后呢
4:46.080–4:48.860
我就通过一个α的一个超三
我就通过一个α的一个超三
4:48.860–4:51.260
把这两种得分输出
把这两种得分输出
4:51.260–4:52.720
把它整合在一起
把它整合在一起
4:52.720–4:56.620
然后就变成我们最终的一个CD的一个输出
然后就变成我们最终的一个CD的一个输出
4:56.620–4:58.620
那具体是怎么整合的呢
那具体是怎么整合的呢
4:58.620–5:01.080
实际上就是1加上α
实际上就是1加上α
5:01.080–5:03.120
然后乘以我们正力的输出
然后乘以我们正力的输出
5:03.120–5:05.400
减去α乘以我们负力的输出
减去α乘以我们负力的输出
5:05.400–5:08.020
实际上你如果把这个式子变换一下
实际上你如果把这个式子变换一下
5:08.020–5:10.760
其实就是把这个括号拆开啊
其实就是把这个括号拆开啊
5:10.760–5:12.140
就变成正力的输出
就变成正力的输出
5:12.140–5:14.260
加上正力的输出
加上正力的输出
5:14.260–5:15.480
减去负力的输出
减去负力的输出
5:15.480–5:17.160
然后再乘一个alpha的参数
然后再乘一个alpha的参数
5:17.160–5:17.660
对吧
对吧
5:17.660–5:21.000
所以这它代表的是什么含义呢
所以这它代表的是什么含义呢
5:21.000–5:24.800
实际上就是我在保持正力输出不变的前提下
实际上就是我在保持正力输出不变的前提下
5:24.800–5:27.100
我把负力的那些扰动
我把负力的那些扰动
5:27.100–5:28.440
希望都把它剪掉
希望都把它剪掉
5:28.440–5:30.400
然后把这些干扰项去掉
然后把这些干扰项去掉
5:30.400–5:32.020
然后让它有一个对比的结果
然后让它有一个对比的结果
5:32.020–5:33.980
从而帮助我更好的识别
从而帮助我更好的识别
5:33.980–5:36.060
最终的语音识别结果
最终的语音识别结果
5:36.060–5:39.480
这就是这篇paper最重要的
这就是这篇paper最重要的
5:39.480–5:41.200
也最核心的一个机制
也最核心的一个机制
5:41.200–5:42.020
叫对比解码
叫对比解码
5:42.020–5:43.800
那下面我们就来看一下
那下面我们就来看一下
5:43.800–5:46.220
它声学扰动具体是怎么做的
它声学扰动具体是怎么做的
5:46.220–5:47.340
基本上就是三种
基本上就是三种
5:47.340–5:49.000
一个是高斯造声的注入
一个是高斯造声的注入
5:49.000–5:50.440
就是我们随机生成
就是我们随机生成
5:50.440–5:52.440
符合正态分布的高斯造声
符合正态分布的高斯造声
5:52.440–5:53.740
加到原始信号上
加到原始信号上
5:53.740–5:55.480
第二个呢就是静音
第二个呢就是静音
5:55.480–5:56.820
我就把输入图谱
我就把输入图谱
5:56.820–5:58.180
全都变成零
全都变成零
5:58.180–5:59.180
全零的波形
全零的波形
5:59.180–6:00.160
就是静音
就是静音
6:00.160–6:02.560
第三个呢就是音频的时序偏移
第三个呢就是音频的时序偏移
6:02.560–6:04.680
我就把原始的30秒
我就把原始的30秒
6:04.680–6:07.180
向左偏移一些
向左偏移一些
6:07.180–6:09.080
然后左侧的丢弃
然后左侧的丢弃
6:09.080–6:10.760
右侧的用零来填充
右侧的用零来填充
6:10.760–6:11.620
这就好了
这就好了
6:11.620–6:14.260
这就是三种升学扰动的策略
这就是三种升学扰动的策略
6:14.260–6:15.540
然后呢
然后呢
6:15.540–6:17.760
如果我们有了升学扰动的策略
如果我们有了升学扰动的策略
6:17.760–6:18.980
那这三种策略
那这三种策略
6:18.980–6:21.260
它是怎么结合在一起的呢
它是怎么结合在一起的呢
6:21.260–6:22.680
结合其实也非常简单
结合其实也非常简单
6:22.680–6:24.720
大家还记得我原始的诗子吧
大家还记得我原始的诗子吧
6:24.720–6:27.000
就是1加上α乘以正力
就是1加上α乘以正力
6:27.000–6:28.480
减去α乘以负力
减去α乘以负力
6:28.480–6:30.360
这里只不过负力有很多啊
这里只不过负力有很多啊
6:30.360–6:32.740
就是有三种扰动策略嘛
就是有三种扰动策略嘛
6:32.740–6:36.360
所以负力产生的输出结果就有三种
所以负力产生的输出结果就有三种
6:36.360–6:38.520
那这三种我怎么整合到一起呢
那这三种我怎么整合到一起呢
6:38.520–6:40.940
我就把它在e的指数上
我就把它在e的指数上
6:40.940–6:41.960
进行一个整合
进行一个整合
6:41.960–6:43.760
先求和再求个平均
先求和再求个平均
6:43.760–6:46.280
无非是这里加了一个超次参数
无非是这里加了一个超次参数
6:46.280–6:47.280
来控制一下
来控制一下
6:47.280–6:47.780
对吧
对吧
6:47.780–6:49.200
所以这个超次参数呢
所以这个超次参数呢
6:49.200–6:50.200
一般也就设为1
一般也就设为1
6:50.200–6:53.000
那这个1其实就等于没有吗
那这个1其实就等于没有吗
6:53.000–6:54.100
你除它就等于没有了
你除它就等于没有了
6:54.100–6:56.080
那其实在原始的例子上
那其实在原始的例子上
6:56.080–6:59.600
无非就是把三个负利的输出
无非就是把三个负利的输出
6:59.600–7:01.560
进行求和再取平均
进行求和再取平均
7:01.560–7:02.700
就非常简单吧
就非常简单吧
7:03.927–7:06.307
然后呢,我们再看在推理的时候。
然后呢,我们再看在推理的时候。
7:06.307–7:07.259
推理的时候,
推理的时候,
7:07.259–7:08.052
我们知道,
我们知道,
7:08.052–7:08.552
呃,
呃,
7:08.552–7:10.274
其实是可以并行推理的嘛,
其实是可以并行推理的嘛,
7:10.274–7:10.774
对吧?
对吧?
7:10.774–7:13.606
就是尽管输入的是K条额外的解码路径,
就是尽管输入的是K条额外的解码路径,
7:13.606–7:16.779
但是我们可以通过P处理来计算控制的开销,
但是我们可以通过P处理来计算控制的开销,
7:16.779–7:18.207
也就是一次处理把它
也就是一次处理把它
7:18.207–7:18.927
都做完
都做完
7:18.927–7:19.947
然后整体的
然后整体的
7:19.947–7:20.887
它最大的优势
它最大的优势
7:20.887–7:21.867
就是无需训练
就是无需训练
7:21.867–7:24.047
然后我只需要在后面
然后我只需要在后面
7:24.047–7:26.467
只需要在解码的时候
只需要在解码的时候
7:26.467–7:27.487
稍加一些
稍加一些
7:27.487–7:30.427
所谓的工程化的处理就够了
所谓的工程化的处理就够了
7:30.427–7:32.687
那我们可以在这里
那我们可以在这里
7:32.687–7:33.867
做一个形象的比喻
做一个形象的比喻
7:33.867–7:34.927
就是如果你上面
就是如果你上面
7:34.927–7:36.827
听的还不是特别懂的话
听的还不是特别懂的话
7:36.827–7:39.307
如果我们把原始的Whisper
如果我们把原始的Whisper
7:39.307–7:40.647
它正常转型的时候
它正常转型的时候
7:40.647–7:41.567
它就是像一个
它就是像一个
7:41.567–7:43.007
边听边写的速记员
边听边写的速记员
7:43.007–7:44.867
那这篇paper
那这篇paper
7:44.867–7:45.987
它这个Whisper CD
它这个Whisper CD
7:45.987–7:47.667
它实际上做的就是
它实际上做的就是
7:47.667–7:50.727
在旁边放了三个捣乱版的监听器
在旁边放了三个捣乱版的监听器
7:50.727–7:51.767
那一个呢
那一个呢
7:51.767–7:52.787
让它听起来很吵
让它听起来很吵
7:52.787–7:54.307
也就是加噪音的
也就是加噪音的
7:54.307–7:55.607
加高斯噪声的
加高斯噪声的
7:55.607–7:57.647
一个让它几乎什么都听不到
一个让它几乎什么都听不到
7:57.647–8:00.147
然后就是静音的
然后就是静音的
8:00.147–8:01.027
还有一个呢
还有一个呢
8:01.027–8:02.847
是让它错位的
是让它错位的
8:02.847–8:04.107
就是这个偏移的
就是这个偏移的
8:04.107–8:05.467
然后如果某个词
然后如果某个词
8:05.467–8:07.247
在这三种不利的条件下
在这三种不利的条件下
8:07.247–8:09.107
它仍然特别想写出来
它仍然特别想写出来
8:09.107–8:12.927
那这个词多半就不是真的想听到的
那这个词多半就不是真的想听到的
8:12.927–8:14.467
而是它习惯性脑补的
而是它习惯性脑补的
8:14.467–8:17.007
于是系统就把这些词的分数扣掉
于是系统就把这些词的分数扣掉
8:17.007–8:18.707
然后这个解释啊
然后这个解释啊
8:18.707–8:19.987
基本上或者这个比喻啊
基本上或者这个比喻啊
8:19.987–8:22.127
就是整篇论文方法的本质
就是整篇论文方法的本质
8:22.127–8:22.867
嗯
嗯
8:22.867–8:25.287
最后我们来看一下它的效果啊
最后我们来看一下它的效果啊
8:25.287–8:25.947
整个论文呢
整个论文呢
8:25.947–8:29.707
是在这五个长音频的英文测试机上来做的
是在这五个长音频的英文测试机上来做的
8:29.707–8:30.647
然后我们看一下
然后我们看一下
8:30.647–8:33.407
它这个效果还是很不错的
它这个效果还是很不错的
8:33.407–8:36.347
就是加CD是这次改编之后的吧
就是加CD是这次改编之后的吧
8:36.347–8:38.667
然后它在两个VSPR的版本上做
然后它在两个VSPR的版本上做
8:38.667–8:40.787
我们看到原始的VSPR
我们看到原始的VSPR
8:40.787–8:42.507
像V3那种
像V3那种
8:42.507–8:43.887
它在这些测试机上
它在这些测试机上
8:43.887–8:45.707
这个凑率都非常高
这个凑率都非常高
8:45.707–8:47.427
这都超过100%了
这都超过100%了
8:47.427–8:48.907
有200多500多
有200多500多
8:48.907–8:53.847
但是呢我们在Visper V3上加了解码上的改进之后
但是呢我们在Visper V3上加了解码上的改进之后
8:53.847–8:54.947
下降非常多
下降非常多
8:54.947–8:57.027
就都从200多变成45
就都从200多变成45
8:57.027–8:58.647
从44变成19
从44变成19
8:58.647–8:59.827
从500多变成57
从500多变成57
8:59.827–9:00.327
对吧
对吧
9:00.327–9:01.607
第二种方式呢
第二种方式呢
9:01.607–9:02.927
就是我用更强的版本
就是我用更强的版本
9:02.927–9:04.007
用Turbo这个版本
用Turbo这个版本
9:04.007–9:05.827
虽然原始的版本
虽然原始的版本
9:05.827–9:07.647
直接用Visper
直接用Visper
9:07.647–9:11.587
识别这个长文效果比V3会好一些啊
识别这个长文效果比V3会好一些啊
9:11.587–9:14.067
但是也不尽如人意吧
但是也不尽如人意吧
9:14.067–9:14.967
但是呢
但是呢
9:14.967–9:16.467
我们加了这种CD之后
我们加了这种CD之后
9:16.467–9:19.027
你会看到它效果像样的也是非常明显
你会看到它效果像样的也是非常明显
9:19.027–9:21.747
所以这就是我觉得这篇paper非常
所以这就是我觉得这篇paper非常
9:21.747–9:24.507
值得分享的吧
值得分享的吧
9:24.507–9:26.167
就是它用非常小的改动
就是它用非常小的改动
9:26.167–9:29.607
然后实现了对常文的一个效果非常大的提升
然后实现了对常文的一个效果非常大的提升
9:29.607–9:32.047
我们最后来总结一下这篇paper
我们最后来总结一下这篇paper
9:32.047–9:34.007
就是长音频的识别
就是长音频的识别
9:34.007–9:36.527
Whisper的话会有很多严重的错误
Whisper的话会有很多严重的错误
9:36.527–9:39.987
但这些错误它大概率不是模型不会识别
但这些错误它大概率不是模型不会识别
9:39.987–9:41.647
而是解码的过程中
而是解码的过程中
9:41.647–9:44.847
被之前的识别结果和一些上下文绑架了
被之前的识别结果和一些上下文绑架了
9:44.847–9:47.127
导致它越识别越错
导致它越识别越错
9:47.127–9:47.947
越识别越错
越识别越错
9:47.947–9:51.127
所以作者他不是去强化原始模型的能力
所以作者他不是去强化原始模型的能力
9:51.127–9:52.627
也就是没有训练原始的模型
也就是没有训练原始的模型
9:52.627–9:56.827
而是直接在token选择的阶段做干预
而是直接在token选择的阶段做干预
9:56.827–9:59.267
这个角度就是在工程测作
这个角度就是在工程测作
9:59.267–10:00.387
然后也很聪明
然后也很聪明
10:00.387–10:03.007
好这期视频就给大家介绍到这
好这期视频就给大家介绍到这

影片筆記:不用训练模型,Whisper性能暴涨!背后只改了一步解码

<!-- VIDEONOTE_PUBLICATION_WARNINGS_BEGIN -->

⚠️ 可先使用,仍有待修正項目

本筆記已完成可閱讀的逐字稿與時間跳轉;下列為待處理問題,建議播放原片確認。

  • 待修正:逐字稿全文快速校讀未完成(已保留自動字幕/原始逐字稿並繼續生成筆記。;未完成的全文速讀項目可在精進模式回聽確認。)

<!-- VIDEONOTE_PUBLICATION_WARNINGS_END -->

一句話總結

該影片解析了一篇名為 Visper CD 的論文,介紹了一種無需訓練模型、不改變參數,僅在解碼階段引入「對比解碼(Contrastive Decoding)」機制的工程化方法,通過對比乾淨音頻與經過聲學擾動後的音頻輸出,顯著降低了長音頻識別中的幻覺、重複和漏字錯誤。

核心重點

  • 問題背景:以 Whisper 為代表的自回歸模型在處理長音頻時,容易出現錯誤累積現象,導致幻覺(在靜音區生成文本)、跨段重複循環(陷入自我強化的重複模式)以及跳過/遺漏內容。
  • 解決方案:Visper CD 論文提出在推理階段進行工程化干預,不改變模型權重,也不進行額外訓練。
  • 核心機制:採用「對比解碼」策略。
  • 正例:原始乾淨音頻。
  • 負例:經過三種聲學擾動(高斯噪聲、靜音、時序偏移)處理後的音頻。
  • 計算邏輯:利用公式 $1 + \alpha$ 乘以正例輸出,減去 $\alpha$ 乘以負例輸出。若某個詞在負例條件下仍被強烈輸出,則判定為模型習慣性腦補,系統將扣除該詞分數。
  • 實驗結果:在 Visper V3 和 Turbo 版本上,該方法顯著降低了長音頻測試集上的錯誤率(從 200-500 多大幅下降至個位數或低兩位數),證明微小的解碼階段改動可帶來巨大性能提升。

詳細大綱

1. 論文介紹與核心亮點

  • 論文名稱:Visper CD。
  • 核心優勢:
  • 不改變模型參數。
  • 無需進行訓練。
  • 僅在解碼階段進行工程化處理。
  • 目標:專門解決長音頻的語音識別問題。

2. 當前模型面臨的問題

  • 錯誤累積機制:自回歸模型利用前一段轉寫結果作為上下文,導致上文錯誤累積至下文。
  • 主要錯誤類型:
  1. 靜音區幻覺:在非語音間隔錯誤生成文本。
  2. 跨段重複循環:陷入自我強化的重複模式,不停輸出相同字詞。
  3. 跳過/遺漏:遺漏實際語音內容,導致轉寫不完整。

3. Visper CD 解決方案:對比解碼 (Contrastive Decoding)

  • 原理:在推理時對比「乾淨音頻」與「聲學擾動後音頻」的輸出 Logits。
  • 目的:抑制長形式語音轉換中的插入、刪除和替換錯誤。
  • 機制細節:
  • 正例 (Positive):原始乾淨音頻。
  • 負例 (Negative):經過三種擾動處理的音頻。
  • 整合公式:$(1 + \alpha) \times \text{正例輸出} - \alpha \times \text{負例輸出}$。
  • 含義:在保持正例輸出不變的前提下,剪掉負例中的擾動干擾項。
  • 超參數 $\alpha$:一般設為 1,用於控制負例輸出的整合(求和後取平均)。

4. 聲學擾動策略 (三種負例生成方式)

  1. 高斯噪聲注入:隨機生成符合正態分布的高斯噪聲加到原始信號上。
  2. 靜音 (Silence):將輸入圖譜全變為零,即全零波形。
  3. 時序偏移 (Shift):將原始音頻向左偏移,左側丟棄,右側用零填充。

5. 推理與效率

  • 可並行推理:儘管輸入 K 條額外的解碼路徑,但可通過並行處理計算控制的開銷,一次處理完成。
  • 效率評估:用很小的改動實現對長文識別效果的巨大提升。

6. 形象比喻

  • 原始 Whisper:邊聽邊寫的速記員。
  • Visper CD:旁邊放置三個「搗亂版的監聽器」(聽起來很吵、幾乎聽不到、聽錯位的)。
  • 邏輯:若某個詞在負例條件下仍被強烈輸出,則判定為模型習慣性腦補,系統將扣除該詞分數。

7. 實驗效果

  • 測試集:五個長音頻英文測試集。
  • Visper V3 結果:錯誤率從 200-500 多大幅下降至 45、19、57。
  • Visper Turbo 結果:效果提升同樣明顯。
  • 結論:作者未強化原始模型能力(無訓練),而是在 Token 選擇階段進行工程側的干預。

工具 / 模型 / 名詞整理

  • Visper:影片中多次提及的模型名稱,根據上下文推測可能指代 Whisper,但依規則保留原樣。
  • Visper CD:論文名稱,指代引入對比解碼機制的特定方法。
  • Whisper:文中提及「Whisper的encoder」、「Whisper的encoder和decoder」,指代基礎模型。
  • Visper V3:模型版本。
  • Turbo:模型版本,文中提及「Turbo這個版本」。
  • 對比解碼 (Contrastive Decoding):核心技術概念,通過對比乾淨與擾動音頻的輸出來抑制錯誤。
  • 聲學擾動 (Acoustic Perturbation):包括高斯噪聲、靜音、時序偏移三種策略。
  • 正例 (Positive):原始乾淨音頻的輸出。
  • 負例 (Negative):經過聲學擾動後的音頻輸出。
  • 超參數 $\alpha$:用於控制負例輸出權重的參數,一般設為 1。

操作流程整理

  1. 輸入準備:獲取原始長音頻數據。
  2. 生成負例:
  • 對原始音頻施加高斯噪聲。
  • 將音頻轉為全零波形(靜音)。
  • 將音頻向左偏移並用零填充(時序偏移)。
  1. 並行推理:
  • 將原始音頻(正例)與三種擾動音頻(負例)同時輸入模型。
  • 獲取各路徑的輸出 Logits。
  1. 對比計算:
  • 應用公式:$(1 + \alpha) \times \text{正例輸出} - \alpha \times \text{負例輸出}$。
  • 設定 $\alpha = 1$ 進行平均整合。
  1. Token 選擇:根據計算後的結果選擇最終的 Token,抑制那些在負例條件下仍被強烈輸出的「腦補」詞彙。

值得注意的限制或風險

  • 模型名稱混淆:影片中頻繁使用「Visper」一詞,結合上下文「Whisper的encoder」,極大可能是「Whisper」的辨識錯誤。使用者需注意實際應用時應確認是否為 Whisper 模型。
  • 長音頻適用性:該方法專門針對長音頻識別中的錯誤累積問題,對於短音頻的效果提升可能不如長音頻顯著。
  • 計算開銷:雖然採用並行處理,但同時計算多條解碼路徑(正例+多個負例)仍會增加一定的推理開銷。

逐字稿辨識疑點

  • Visper:逐字稿中大量出現「Visper」,結合上下文「基於Visper作語音識別」、「Whisper的encoder」,疑為「Whisper」之聽寫錯誤。
  • PayPal:文中提到「這篇PayPal它主要解決什麼問題」,疑為「Paper」之聽寫錯誤。
  • 上海文太長:文中提到「因為上海文太長了嘛」,疑為「長音頻太長」或「長文本太長」之聽寫錯誤。
  • 轉路:文中提到「導致轉路不完整」,疑為「轉寫」之聽寫錯誤。
  • 正力 / 負力:文中多次使用「正力」和「負力」,疑為「正例」和「負例」之聽寫錯誤。
  • 複理:文中提到「把它当做复理 原来这段就当做正理」,疑為「負例」之聽寫錯誤。
  • 升学扰动:文中提到「这就是三种升学扰动的策略」,疑為「聲學擾動」之聽寫錯誤。
  • 超三 / 超次:文中提到「通过一个α的一个超三」及「这里加了一个超次参数」,疑為「超參數」之聽寫錯誤。
  • P处理:文中提到「通过P处理来计算控制的开销」,疑為「Parallel processing」或特定技術術語之聽寫錯誤,或為「並行處理」之誤聽。
  • 凑率:文中提到「这个凑率都非常高」,疑為「錯誤率」之聽寫錯誤。
  • 工程测作:文中提到「这个角度就是在工程测作」,疑為「工程側」或「工程操作」之聽寫錯誤。

可延伸追問

  • 該方法是否適用於其他自回歸語言模型,還是僅限於 Whisper 架構?
  • 超參數 $\alpha$ 是否在不同類型的長音頻(如音樂、會議錄音、單人演講)中需要調整?
  • 引入三種負例擾動是否會導致某些特定語境下的準確率下降?
  • 在實際部署中,並行處理帶來的計算開銷與性能提升之間的權衡點為何?

尚未產生學習筆記

請在 Telegram 指令最後加上「學習」,例如:videonote 網址 英文 雙語 學習