start	end	text
0	4000	Hello各位B站的同學大家好,歡迎大家收看我的視頻。
4000	19000	那麼很久沒有更新視頻了,那麼這期的話,我會跟大家講一下這個ASR當中怎麼去計算這個字錯率和詞錯率,以及什麼情況下用這個字錯率,什麼情況下用這個詞錯率。
19000	21840	嗯
21840	25060	这像我们看到的这个是
25060	28480	评估这个尺寿率的
28480	29960	我们先讲一下这个尺寿率
29960	33820	我们可以用一个开源度
33820	34920	一个python依赖
34920	39960	一个python依赖叫做jiwer这个依赖
39960	41480	然后在这个依赖当中啊
41480	44000	他有提供了一些方法
44000	48400	或者说是一些函数啊
48400	50200	比如说我们
50700	52760	在计算这个WER
53000	54540	也就是持错率的时候
54540	55560	我们就调用这个
56340	58120	如果我们计算的是持错率的话
58120	60180	那我们就调用CER
65040	66320	那我们这里可以收一下
67600	68120	那就这个
68360	70420	这个的话就是计算的是
70680	71440	持错率
75800	78100	我们看一下怎么去写的
78400	82760	首先我们是
82760	86600	先要去加载我们的一个模型进来
86600	89400	就是这个checkpoint要再进来
89400	93500	比如说我们用的是签问3A上
93500	94800	那我们就去
94800	97860	导入这个相关的一个依赖
97860	99200	安装的依赖并导入
99200	100800	然后在这里的话我们就去
100800	102660	加载到这个模型站
102660	105160	这个模型然后再有return返回
105160	106960	然后我们在这里去调用
106960	110420	拿到这个模型
110420	113400	然后调用它的下面的这个
113400	115660	transcribe 函数
115660	116660	然后方法
116660	117760	然后
117760	119540	这个就是推理了
119540	121640	就是生成我们的一个结果
121640	124260	比如说我们传入一个音频audio
124260	129900	然后拿到这个结果之后的话
129900	131140	我们解析这个结果
131140	133480	这个是解析的结果
133480	135760	然后解析完成之后的话
135760	137560	我们是把它放入
138060	140360	放入这个列表当中
143960	145480	这个是表示是
146000	149320	A3模型生成的这个文字啊这个内容
150100	152400	然后下面这个存储的是
152660	154200	引用也就是标注
154440	156240	标注的一个文文内容
157780	159560	然后这个我们
160840	162120	要写一个
162380	163400	函数去
163400	167160	加载去读取我们的这个Jeternel文件
167160	171120	就是我们训练的时候是分为几大集合
171120	173900	一个是训练集验证集测试集
173900	175640	是你要读取
175640	177680	比如说我们读取这个测试集
177680	180440	把它读取通过这个函数
180440	183300	读取进来最终的话
183300	185540	是发挥一个列表list
185540	188100	然后这个列表是这样的一个形式
188100	190680	一个列表每一个元素的话
190680	193280	那是一个这个
194720	197680	字典格式或者说是design格式
200320	201880	有两个字段
201880	204520	一个是audio 一个是test
204520	206320	然后这个是对应的一个音频
206320	207520	然后对应的音频
207520	210120	然后这个是音频对应标注的一个文明内容
210320	212240	然后返回到这里
212240	214640	这里我们就进行便利拿到每一个
215640	217520	每一个这个
217920	219120	标注的一个文明内容
219120	221120	然后以及对应的一个这个音频
221120	223720	其中这个音频的话我们传进去这个
223980	225780	签文模型当中进行推理
226040	227320	推理产生的一个结果
227320	228600	然后这个推理产生结果
228600	230640	然后我们把它放入到这个列表当中
231160	233460	然后这个是另外一个列表的话就是
233720	235760	存储的是这个标注的一种笔
236020	237800	然后的话我们就计算
240620	242680	用这个函数去计算
242920	243700	这个
243960	244720	此错率
245240	246260	然后我们传入
246520	248040	这个是引用的有个文件内容
248040	248820	然后这个是
249120	250620	ASA生成的一个内容
252120	254080	在传入之后的话
254080	257420	我们又做一个正整化进行处理
257420	261920	比如说我们把这个英文字母统一转成小写
261920	264820	同时去掉连续的一个多个空格
264820	266080	把它合并成一个空格
267420	269420	就是做一个统一规范化
269420	271320	然后我们再去
271820	275180	去真正去计算它的一个磁数率
275180	278860	最终的话是返回这个磁数率到这个第二个地方
278860	281160	然后我们就打印最终的一个持续率
281160	284160	这里是保留小数点后四位
284160	286800	然后最终就能够知道这个
286800	288660	持续率了
288660	289800	然后这个是持续
289800	291700	持续率的话是针对英语
291700	293600	藏语这些他有
293600	296560	有像比如说我们这个英文名字
296560	298760	他有这个空格
298760	300520	一个空格间隔开来的
300520	303220	这种的话我们通常就是用这个
303220	305060	持续率的一个方式来统计
305060	306900	像我们的一个藏语
306900	308820	藏语是就是
308860	311100	假设他也是每一个有
312460	315220	上文每一个之间的话是通过这个
316260	317620	空格来进分个开来
317620	319860	那我们就可以去统计他的一个辞受率
319860	320900	而不是辞受率
321300	322860	你看像这个英文
322860	326260	实际上也是每一个的话是有空格间隔开来
326260	327960	如果这里比如说空了两个格的话
327960	330420	我们刚才那里正则表达式的时候
330420	332100	我们会把它去掉啊
332100	334020	去掉一个空格就是只保留一个空格
338860	346520	然后字错率的话
346520	349200	我们通常是用在像中文
349200	350380	中文的话它有什么特点
350380	351940	比如说我们像这里中文的话
351940	355460	它是每一个字之间是没有空格的
355460	356920	每一个字之间是相互
356920	358960	就是挨者的是没有间隙的
358960	360140	那么这种情况的话
360140	361940	我们就求它的一个字错率
361940	366080	你就记住
366080	370120	就是每一个字之间如果有空格
370120	372640	那我们就用它的一个持组率
372640	374180	如果每一个字间它仅挨着
374180	374920	像这种仅挨着
374920	377020	用持组率来进行计算
377020	387140	好那我们这次的话就是
387140	389240	对我们就给大家看一下这个求
389240	389820	制作率的话
389820	390280	制作率的话
390280	391800	我们是用的是另外一个模型
391800	394340	比如说我们这个是Prolformer这个模型
394340	395900	求它的一个制作率
395900	397240	其中中文的话
397240	398160	我们需要去注意
398160	399580	它转写出来的
399580	401600	A3转写出来的一个文本的话
401600	402900	它可能会出现这个
402900	404540	就是比如说像
404540	405580	雕号码
405580	406600	身份证号码这些
406600	408180	还有这个时间这些的话
408180	412060	它会是非阿拉伯数字
412060	414900	那么你要把它统一化
414900	416600	比如说你标注的是阿拉伯数字
416600	419180	但是你在这个A3模型
419180	420100	输出的结果当中
420100	420860	它输出的是
420860	423100	是中文的一个数字表示
423100	424360	那么你这个时候
424360	426140	就会计算它的一个制作率的时候
426140	426820	就计算不准
426820	428020	我们需要统一
428020	429160	需要统一化
429160	431220	比如说像这个6月1号
431220	432880	那我们统一阿拉伯数字
432880	434480	转成这个6月1号
434480	435700	或者说我们统一
435700	437480	转成这个中文
437480	439280	这个汉字的一个表示方式
439280	440100	6月1号
440100	442220	就是反正你要统一
442220	443820	无论你是最终是用阿拉伯
443820	445760	把阿拉伯数字来表示
445760	446880	还是用汉语
446880	448060	还是用这个汉字来进行
448060	448860	表示这个数字
448860	450040	都行
450040	451140	就是要统一化
451140	453820	这里的话
453820	456060	那我们就是用到了一个依赖
456060	458420	用到一个依赖就是CN2
458420	460920	就是汉语转的阿拉伯语
460920	462520	转的阿拉伯的数字
464520	466320	我们需要去安装它如果没有安装的话
466320	467220	它会提示这个
467220	468820	你直接给大家来进行安装就可以
469320	471020	一般的话我们
471020	472720	一般的话我们安装这个飞下的话
472720	473820	它没问题安装这个
473820	475420	应该飞下它里面的话
475420	477420	也要用到这个依赖吧
482519	489059	就是我们在这里啊在这里
489059	491879	那这里的话我们去调用了这个
491879	494919	这个函数
494919	496959	这个方法
496959	501659	它就能够去把这个CN就是表示汉语啊
501659	503779	把它转成的AN的话就是阿拉伯
503779	504919	阿拉伯数字啊
504919	507699	把这个汉语的一个数字转成阿拉伯的一个数字表示
507699	509379	然后下面这个的话就是
509379	511739	就是反过来就是把阿拉伯的
511739	514319	这个转成这个汉语的一个表示啊
514319	516579	就是比如说我们看到的这个
516579	519239	就是生日6月1号这个数字六合一
519239	521519	把它转成这个汉语的一个六合一就这种
522639	525039	然后下面这个这个这个就
525039	527939	这个这个就不是一个档
533379	535619	嗯好那我们就是
539379	543379	因为汉语的话
543379	546019	他是没有这个所谓的这个大小写的一个字母类型式的
546019	547419	所以这个的话你
547419	550459	这个的话就是无所谓的这个
550459	552879	你不用加这个 lower也是可以的
552879	556079	小写的这个这个不用加这个
556079	557699	不用加这个 lower也是可以的
557699	559899	然后其他的我们看一下
559899	561699	对我们在读取
561699	565539	读取我们的一个比如说测试集的一个点
565539	566639	呃
566639	568539	ICP文件说啊
568539	570399	或者说是TX文件说啊
570399	571559	我们需要去注意
571559	573259	我们读入进来的一定要格式的话
573259	574759	肯定用这个呃
574759	575599	编码的话
575599	576099	编码不说
576099	577959	一定要用这个YouTube-8啊
577959	579199	不要呃
579199	580119	用其他的
580119	581539	你肯定用这个啊
581539	583399	呃
583399	584319	程序开发动作
584319	585359	一般用这个YouTube-8
585359	585839	呃
585839	587119	嗯
587119	588999	然后其他都就
588999	591859	没有什么
591859	592979	需要去注意
592979	593759	呃
593759	596459	如果你是要测那种有
596599	598219	就是ASR他模型输出
598219	599659	有这个Valienfout这些的话
599659	601819	那么你还要考虑去掉这个Valienfout
601819	604159	之后再去评估它的一个自受率
604299	606359	因为我用的这个Proformer
606359	607799	他这个模型的话
607799	609899	是不能输出这个Valienfout的
609899	611799	他只输出这个存文版能字的
611799	613759	所以我们就没有去考虑说
613759	615719	要去掉这个Valienfout的一种事情
615719	617759	比如说你用的是这个Valienfout
617759	619959	Nono2512或者说是
620219	622399	Sanswisemall这两个模型的话
622399	625659	他能够去输出这个标点符号
625659	629339	那么你就需要去去掉标点符号
629339	631959	然后再去计算他的一个自措率
631959	632999	或者说是持措率
637999	640439	然后这里再讲一下这个平均自措
640439	641799	这个平均自措率
641799	644359	和这个整体自措率是什么意思
644359	646399	平均平均自措率的话
646399	648039	就是我们计算出
648039	650939	每一句话对应的一个自措率
650939	653899	然后再去相加每一句话
654379	656939	辞出率求和也就相加求和
656939	660899	然后再除以这个总的一个据数
660899	664099	总的比如说我这个测试集有1000条数据
664099	665699	那我们最终
665699	667379	就是相加之后我们就再除以1000
667379	668299	就这意思
668299	670779	最终的话就是平均的一个
671139	673499	CER也就是平均的一个辞出率
673579	674899	而整体的一个辞出率的话
674899	679179	我们就是直接去调用这个JiW
679179	681979	ER中的一个CER函数
681979	683419	那我把它传递来
683419	684639	它计算出来的就是
684639	686779	整体的一个
686779	689439	整体的一个这个自收率
689439	692099	那自收率也一样去这样的方式
692099	692659	来进去算的
692659	701899	好那我们就是给大家去讲解
701899	704619	到这里然后还没有关注的
704619	705899	我的小伙也记得
705899	706899	关注一下
706899	710099	而是比较动得变成为互相录虎皮尾
