您现在的位置是:首页 > 正文

lattice-arc-post计算边上累计得分

2024-01-30 21:30:45阅读 0

1 模型预测产生lat.1.gz

这里请参考理解lattice,这里有介绍解码过程中如何产生lattice内容文件,以及lattice内容分析。


2 边上累计得分

gunzip -c 20200921.lat.bin.gz |\
lattice-arc-post --acoustic-scale=1.0 --print-alignment=true \
exp/chain/tdnn_1a_sp/final.mdl ark:- -|\
utils/int2sym.pl -f 5 data/lang_chain/words.txt |\
utils/int2sym.pl -f 7- data/lang_chain/phones.txt | head -n 30

结果如下,字段分别表示:
<utterance-id> <start-frame> <num-frames> <posterior> <word> [<ali>] [<phone1> <phone2>...]
音频id 帧开始序号 总帧数 后验概率 词 transition-id对齐结果 phone
这里输出了所有arc上的得分

这里可结合lattice对齐ctm到词里面对齐到ctm的结果可推断出他的帧数是怎么计算的

# ctm结果
```shell
HAO0007501-000000 1 0.00 1.05 <eps> 1.00
HAO0007501-000000 1 1.05 0.39 有人 1.00
HAO0007501-000000 1 1.44 0.00 <eps> 0.99
HAO0007501-000000 1 1.44 0.36 抢劫 1.00
HAO0007501-000000 1 1.80 0.00 <eps> 1.00
HAO0007501-000000 1 1.80 0.24 赶紧 1.00
HAO0007501-000000 1 2.04 0.00 <eps> 1.00
HAO0007501-000000 1 2.04 0.82 打电话 1.00
HAO0007501-000000 1 2.88 0.87 <eps> 0.95
# lattice-arc-post结果
HAO0007501-000000 0 42 0.9944929 有人 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3486,3485,3485,3485,3994,3993,5866 sil ii iu3 r 
HAO0007501-000000 0 41 0.003502911 有 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3486,3485,3485,3485,3994,3993 sil ii iu3 
HAO0007501-000000 0 47 0.0005455299 因为 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3486,3485,3485,3485,3716,7662,7661,7304,7303,4724,4723,390 sil ii in1 uu ui4 l ai2 
HAO0007501-000000 0 47 0.0005311595 以为 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3486,3485,3485,3485,2970,7668,7667,7270,7269,4588,4587,390 sil ii i3 uu ui2 l ai2 
HAO0007501-000000 0 56 0.0005301483 用来 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3486,3485,3485,3485,3956,3955,3955,3955,3955,4504,390,389,389,5730,5729,5729,3210,3209,3209,3209,4226 sil ii iong4 l ai2 q iang1 j 
HAO0007501-000000 0 56 0.0004011184 原来 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8046,8045,8045,7930,7929,7929,7929,7929,4638,4637,390,389,5730,5729,5729,3210,3209,3209,3209,4226 sil vv van2 l ai2 q iang1 j 
HAO0007501-000000 47 9 0.001076689 来 389,5730,5729,5729,3210,3209,3209,3209,4226 q iang1 j 
HAO0007501-000000 41 15 0.002624 来 3993,3993,3993,4608,390,389,389,5730,5729,5729,3210,3209,3209,3209,4226 l ai2 q iang1 j 
HAO0007501-000000 41 15 0.0004426211 人 5866,5865,5865,5865,5865,2072,2071,5832,5831,5831,3210,3209,3209,3209,4226 r en2 q iang1 j 
HAO0007501-000000 41 15 0.0004362891 快来 3993,4432,6982,4514,390,389,389,5730,5729,5729,3210,3209,3209,3209,4226 k uai4 l ai2 q iang1 j 
HAO0007501-000000 42 17 0.8533678 抢劫 5865,5865,5865,5865,2072,2071,5832,5831,5831,3210,3209,3209,3209,4226,4225,3422,3421 en2 q iang1 j ie2 
HAO0007501-000000 42 14 0.1238573 来 5865,2072,4534,4533,390,389,5730,5729,5729,3210,3209,3209,3209,4226 en2 l ai2 q iang1 j 
HAO0007501-000000 42 14 0.007563361 了 5865,2072,4534,4533,3346,3345,5806,5805,5805,3210,3209,3209,3209,4226 en2 l iao4 q iang1 j 
HAO0007501-000000 42 14 0.005729984 人 5865,2072,5892,5891,2072,2071,5832,5831,5831,3210,3209,3209,3209,4226 en2 r en2 q iang1 j 
HAO0007501-000000 42 14 0.001364277 零 5865,2072,4534,4533,3858,3857,5688,5687,5687,3210,3209,3209,3209,4226 en2 l ing2 q iang1 j 
HAO0007501-000000 42 14 0.001132725 快来 2072,4464,6982,4514,390,389,5730,5729,5729,3210,3209,3209,3209,4226 en2 k uai4 l ai2 q iang1 j 
HAO0007501-000000 42 14 0.0006666106 的 5865,5865,2072,1672,2902,2901,5676,5675,5675,3210,3209,3209,3209,4226 en2 d i1 q iang1 j 
HAO0007501-000000 42 14 0.0004889528 能 5865,2072,5062,5061,2184,2183,5838,5837,5837,3210,3209,3209,3209,4226 en2 n eng2 q iang1 j 
HAO0007501-000000 42 14 0.0003180968 啦 5865,2072,4534,4533,36,2,5674,5673,5673,3210,3209,3209,3209,4226 en2 l a1 sil q iang1 j 
HAO0007501-000000 56 3 0.1466322 抢劫 4225,3422,3421 ie2 
HAO0007501-000000 59 7 0.9977787 赶紧 3421,2628,2627,584,583,4162,3762 g an3 j in3 
HAO0007501-000000 59 14 0.001163401 干净 3421,2628,2627,528,527,4202,4201,3894,1586,1585,76,75,75,1452 g an1 j ing4 d a3 d 
HAO0007501-000000 59 14 0.001057859 感激 3421,2628,2627,584,583,4162,4161,2918,1450,1449,76,75,75,1452 g an3 j i1 d a3 d 
HAO0007501-000000 66 16 0.9973914 打电话 3761,3761,1642,76,75,75,1452,1451,3164,3163,2650,2649,2649,2649,6928,6927 d a3 d ian4 h ua4 
HAO0007501-000000 66 7 0.0003835548 你 5008,2968,1504,76,75,75,1452 n i3 d a3 d 
HAO0007501-000000 73 9 0.002604805 打电话 1451,3164,3163,2650,2649,2649,2649,6928,6927 ian4 h ua4 
HAO0007501-000000 82 43 0.04848694 啊 6927,6927,236,74,73,73,73,73,73,73,73,73,73,73,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 aa a3 sil 

再结合理解lattice这个里面的图,再深刻理解和映射一下,我们能知道这个计算是lattice图上的graph边有效得分(有效得分是越大越好,不是cost成本,图里面的比如51113:有人/-128.39是cost成本,值越小才越好)
在这里插入图片描述

3 lattice-1best最佳路径边上得分

因为上方的ctm到词的是最佳路径上ctm,我们也可以在求出最佳路径后去打印边上得分
这里可结合lattice对齐ctm到词里面对齐到ctm的结果可推断出他的帧数是怎么计算的

# ctm结果
```shell
HAO0007501-000000 1 0.00 1.05 <eps> 1.00
HAO0007501-000000 1 1.05 0.39 有人 1.00
HAO0007501-000000 1 1.44 0.00 <eps> 0.99
HAO0007501-000000 1 1.44 0.36 抢劫 1.00
HAO0007501-000000 1 1.80 0.00 <eps> 1.00
HAO0007501-000000 1 1.80 0.24 赶紧 1.00
HAO0007501-000000 1 2.04 0.00 <eps> 1.00
HAO0007501-000000 1 2.04 0.82 打电话 1.00
HAO0007501-000000 1 2.88 0.87 <eps> 0.95
gunzip -c 20200921.lat.bin.gz |\
lattice-1best --lm-scale=10 --word-ins-penalty=0.0 ark:- ark:-|\
lattice-arc-post --acoustic-scale=1.0 --print-alignment=true \
exp/chain/tdnn_1a_sp/final.mdl ark:- -|\
utils/int2sym.pl -f 5 data/lang_chain/words.txt |\
utils/int2sym.pl -f 7- data/lang_chain/phones.txt | head -n 30
HAO0007501-000000 0 42 1 有人 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3486,3485,3485,3485,3994,3993,5866 sil ii iu3 r 
HAO0007501-000000 42 17 1 抢劫 5865,5865,5865,5865,2072,2071,5832,5831,5831,3210,3209,3209,3209,4226,4225,3422,3421 en2 q iang1 j ie2 
HAO0007501-000000 59 7 1 赶紧 3421,2628,2627,584,583,4162,3762 g an3 j in3 
HAO0007501-000000 66 16 0.9999962 打电话 3761,3761,1642,76,75,75,1452,1451,3164,3163,2650,2649,2649,2649,6928,6927 d a3 d ian4 h ua4

【注意】因为在arc上的帧开始位置和arc所占总帧数,这里arc没有打印出,所以通过arc来推算具体时间秒(chain模型的frame-shift=0.03)有点不太一致,如果有知道为什么的,烦请留言告知。

Reference

Are lattice-arc-post and lattice-to-post basically the same

网站文章

  • CppCMS和Nginx协同工作

    为什么需要NginxCppCMS自己已经支持Http访问,为什么还需要Nginx.一些原因是我们需要动态负载平衡,还有原因是安全问题。下面的文字来自于CppCMS站点。CppCMS provides basic implementation of HTTP protocol and thus it can run behind reverse HTTP Proxy. But this o...

    2024-01-30 21:30:38
  • 12-Oracle包的定义与使用

    本章内容 1.包概述 2.包的创建 3.包的调用 4.包重载 5.包的初始化 6.包的持续性 7.包的串行化 8.包的管理

    2024-01-30 21:30:10
  • 面试篇--网络通信

    面试篇--网络通信

    目录【前言】【TCP三次握手】在TCP/IP协议中,TCP协议提供可靠的连接服务,采用 三次握手建立一个连接.1.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEN...

    2024-01-30 21:30:03
  • 阿里面试题

    阿里面试题

    阿里面试题文章目录阿里面试题JDK、JRE、JVM之间的区别hashCode()与equals()之间的关系String、StringBuffer、StringBuilder的区别泛型中extends...

    2024-01-30 21:29:48
  • leecode 450. 删除二叉搜索树中的节点

    leecode 450. 删除二叉搜索树中的节点

    450. 删除二叉搜索树中的节点 本题是删除搜索树中的指定值,和添加值比,却复杂很多,但是本题的具体逻辑我竟然能自己慢慢实现出来,第一次感觉到对递归理解加深了。/** * Definition ...

    2024-01-30 21:29:17
  • 图片的黑魔法——GitHub 热点速览 v.21.13

    图片的黑魔法——GitHub 热点速览 v.21.13

    作者:HelloGitHub-小鱼干图片的黑魔法并不是图片修复、旧照上色,而是将任意文件打包成图片的样子,上传到推特。看过去这张图片平平无奇,那么普通却深藏不露,工程师 DavidBuch...

    2024-01-30 21:29:09
  • JS数组对象——英文按照首字母进行排序sort()、localeCompare()

    JS数组对象——英文按照首字母进行排序sort()、localeCompare()

    排序在后台管理系统对于数据的处理中用得非常多。本期文章重点介绍根据英文首字母排序。将用到JavaScript的sort()和localeCompare()方法。

    2024-01-30 21:29:01
  • a-descriptions-item描述列表点击按钮显示相应内容

    a-descriptions-item描述列表点击按钮显示相应内容

    实现功能:点击查询按钮,显示相应数据,部分数据只读,部分数据可修改。 实现思路:首先通过点击按钮事件从接口获取内容,然后通过{{}}显示在界面上。 查询按钮触发事件代码 searchQuery(){ ...

    2024-01-30 21:28:30
  • exe4j使用方法

    exe4j使用方法

    1.选jar in exe。2.选择jar包,选择主类。

    2024-01-30 21:28:24
  • Android ADIL和BInder

    Android ADIL和BInder

    AIDL(Android接口定义语言),可以使用它定义客户端与服务端进程间通信(IPC)的编程接口。在Android系统中,每个进程都运行在一块独立的内存中,在其中完成自己的各项活动,与其他进都分隔开...

    2024-01-30 21:28:16