美文网首页
WFST相关学习

WFST相关学习

作者: 习惯了千姿百态 | 来源:发表于2019-01-14 11:24 被阅读0次

知识准备


G非空,G上定义二元运算 *:满足已下条件:
(1)封闭性 \forall a,b \in Ga*b \in G
(2)结合律 \forall a,b,c\in G(a*b)*c=a*(b*c)
(3)幺元\exists e,\forall a\in Ga*e=e*a=a
(4)逆元\forall a\in G,\exists a^{-1}使得a^{-1}*a=a*a^{-1}=e
则称(G,*)
若只满足条件(1)(2)则(G,*)半群

具有两个二元运算+,\centerdot的非空集合S,满足:
(1)(S,*)是阿贝尔群
(2) (S,\centerdot)为半群
(3)\forall a,b,c\in S(a+b)+c=ac+bc, c(a+b)=ca+cb
语音处理常用的半环

常见环
WFST符号化表示
composition algorithm

Q:记录composition之后的状态集
S:是一个队列,保存遇到的所有状态
代码1-2:初始化Q,S,都初始为I_1,I_2的笛卡尔乘积
代码3-16:对队列S中的状态进行遍历操作
  代码4-5:从S中取出一个状态对(q_1,q_2)
  代码6-8:判断这个状态对是不是初始状态,如果是,则更新composition之后的初始状态I,更新初始状态的权重
  代码9-11:判断是否是终止状态
  代码12-16:遍历所有从q_1,q_2出发的转移,如果这两条的转移满足e_1的输出等于e_2的输入,那么就可以合并
    代码13-15:判断合并后的转移的终点状态(n[e_1],n[e_2])是不是新的状态(不在Q里面),如果是新的状态则加入Q,并插入队列S
    代码16:产生新的转移,加入composition之后的转移集合E

determination

首先定义了一个weighted subset

weighted subset
大概的意思是:
determination algorithm

代码1-3:将(初始状态,\bar{1})对(即,带权状态)插入队列S
代码5-6:从S中取出一个带权状态集合p'
代码7-16:对p'中各个带权状态对应状态出发转移的所有输入x进行操作
  代码8:更新新的状态的权值,把p'中每一个状态对的权值与该状态对出发转移上的权值做\otimes,然后再进行\oplus
  代码9:更新状态,E[Q[p']]p'中的状态对应的所有转移
  代码10:产生新的转移,加入集合E'
  代码11:判断这个状态q'是不是新的状态
     代码12:把q'加入新的状态集Q'
     代码13:判断这个状态对集合q'中的状态有没有终止态
       代码14-15:将这个状态q'加入终止态集合F'中,并更新其权值
     代码16:把状态q'插入队列S
WFST-determination例子演示

weight-pushing

主要分两步,第一步:计算potential值,第二步:更新权值,起始,终止状态的权值
计算potential:


计算potential

代码1-7:初始化V[q],如果是终止状态就赋值终止状态的权值,否则赋值\bar 0
代码14:从终止状态开始往前,E^{-1}[q]表示以q为终点的转移(个人理解...)
代码15:比较当前状态p[e]到终点的最短路径与 w[e]\otimes R哪个小(tropical semiring下),R表示从q到终点的最短路径
代码18:如果是出现新的状态插入队列S
r不知道有啥用。。。没看懂,这个算法解读仅供参考吧)
第二步更新:

更新
分别更新开始状态的权重,中间状态的弧的权重,结束状态的权重
WFST-weight-pushing 例子

minimization

最小化是建立在确定化和weight-pushing的前提下,把整个图再次精简,使状态数最小。
对一个WFST进行最小化操作分为两个步骤:

  • 对WFST进行确定化操作(det),再进行Weight-Pushing操作。
  • 使用经典的最小化算法对WFST进行最小化,常用的有Hopcroft算法。

参考资料:
1.WFST详解
2.WFST核心算法
3.Speech recognition with weighted finite-state transducers

相关文章

  • WFST相关学习

    知识准备 群非空,上定义二元运算 :满足已下条件:(1)封闭性 有(2)结合律 有 (3)幺元有(4)逆元使得则称...

  • AI大语音(十二)——WFST解码器(下)(深度解析)

    把HMM、语言模型N-gram、发音词典、上下文相关转化成WFST,再进行合成得到一个巨大的WFST。 对这个巨大...

  • WFST 语言模型

    WFST语言模型表示形式 arpa语言模型格式如下 arpa2fst转换后的WFST如下 状态与词历史对应关系如下...

  • Kaldi中解码代码解析

    解码就是输入音频,利用声学模型、构建好的WFST解码网络,输出最优状态序列的过程。以Kaldi中LatticeFa...

  • 学习相关

    听力,推荐可可网,题目、答案、听力原文都有。Tip:选择打印可生成pdf,方便修改 线性代数的英语,这里有一个两小...

  • 学习相关

    博客 中文网站系列

  • 语音识别解码概述

    什么是语音解码 解码就是在网络中寻找最优路径。语音解码就是一个从特征序列到最优状态序列的映射。网络就是WFST,利...

  • AI大语音(十一)——WFST解码器(上)(深度解析)

    为了让识别出来的语音符合常规语言表达,引入了语言模型作为约束。 为了加速解码识别效率又引入了WFST解码机制。 解...

  • json相关学习

    三问公司后台afn返回了其中一个字典返回了一个json字符串的键值,在问我们群里问我们这几个人,突然感觉傻傻的分不...

  • maven相关学习

    https://blog.csdn.net/xhxmister/article/category/7474880

网友评论

      本文标题:WFST相关学习

      本文链接:https://www.haomeiwen.com/subject/jwfrdqtx.html