Connectionist Temporal Classification(CTC)、音识别模型小型综述和一个简易的语音识别模型的tensorflow实现

本文介绍了CTC(Connectionist Temporal Classification)在端到端语音识别中的应用,避免了传统需要字或音素级别的标注。内容包括语音识别的评价指标、模型结构、前向后向算法、损失函数及其梯度、解码策略以及一个基于TensorFlow的简易语音识别模型的实现。还探讨了不同时期的语音识别技术发展和实验结果。
摘要由CSDN通过智能技术生成

CTC是一种端到端的语音识别技术,他避免了需要字或者音素级别的标注,只需要句子级别的标注就可以进行训练,感觉非常巧妙,也很符合神经网络浪潮人们的习惯。特别是LSTM+CTC相较于之前的DNN+HMM,LSTM能够更好的捕捉输入中的重要的点(LSTM随着状态数目增加参数呈线性增加,而HMM会平方增加),CTC打破了隐马尔科夫的假设,把整个模型从静态分类变成了序列分类。

语音识别的评价指标

在语音识别中,在数据集 S S S上评价模型 h h h的好坏一般用标签错误率(Label Error Rate): L E R ( h , S ) = 1 ∣ S ∣ ∑ ( x , z ) ∈ S E D ( h ( x ) , z ) ∣ z ∣ LER(h,S)=\frac{1}{|S|}\sum_{(x,z)\in S}\frac{ED(h(x),z)}{|z|} LER(h,S)=S1(x,z)SzED(h(x),z) E D ( p , q ) ED(p,q) ED(p,q)表示 p p p q q q两个序列的编辑距离。

语音识别模型

在语音识别中,提取语音信号的MFCC特征 x x x,经过神经网络或者GMM处理后经过一个softmax层得到一个每个音素的后验概率 y y y y y y的类别有 ∣ L ∣ + 1 |L|+1 L+1种, L L L是可能出现的字符,加1为建个符。定义 B B B为简单的压缩变换,把路径 π \pi π(路径就是一种音素出现的路线)中相邻相同的音素合并,空音素去掉,再特征 x x x下定序列 l l l出现的条件概率为:

p ( l ∣ x ) = ∑ π = ∈ B − 1 ( l ) p ( π ∣ x ) p(l|x)=\sum_{\pi=\in B^{-1}(l)}p(\pi|x) p(lx)=π=B1(l)p(πx)

前向后向算法(Forward-Backward Algorithm)

定义符号 l p : q l_{p:q} lp:q表示符号序列KaTeX parse error: Expected '}', got 'EOF' at end of input: …..l_{q-1},l_{q},容易得知,要想使得路径 B ( π ′ ) B(\pi') B(π)满足一定的 l l l π \pi π路线上的状态跳转需要满组 l ′ l' l的先后顺序,不同的符号之间可以插入blank。

定义前向变量 α ( t , u ) \alpha(t,u) α(t,u) α t ( t , u ) = ∑ π ∈ N T , B ( π 1 : t ) = 1 1 : u ∏ t ′ = 1 t y π t ′ t ′ \alpha_t(t,u)=\sum_{\pi\in N^T,B(\pi_{1:t})=1_{1:u}}\prod_{t'=1}^ty_{\pi_{t'}}^{t'} αt(t,u)=πNT,B(π1:t)=11:ut=1tyπtt

α ( t , s ) \alpha(t,s) α(t,s)可以递推的用 α ( t − 1 , s ) , α ( t − 1 , s − 1 ) \alpha(t-1,s),\alpha(t-1,s-1) α(t1,s)α(t1,s1)计算。

为了方便起见,我们在 l l l相邻标签之间插入了空白(blank),在开始和末尾也加入了空白,这样我们用 l ′ l' l表示这个新的标记, l ′ l' l的长度就为 2 ∣ l ∣ + 1 2|l|+1 2l+1。在计算 l ′ l' l前缀的概率中,我们允许空白和非空白标签之间转移,那么我么有动态规划的初始条件:

α ( 1 , 1 ) = y b 1 \alpha(1,1)=y_b^1 α(1,1)=yb1

α ( 1 , 2 ) = y l 1 1 \alpha(1,2)=y_{l_1}^1 α(1,2)=yl11

α ( 1 , u ) = 0 , u > 2 \alpha(1,u)=0,u>2 α(1,u)=0,u>2

α ( t , 0 ) = 0 \alpha(t,0)=0 α(t,0)=0

α ( t , u ) = 0 , u &lt; U ′ − 2 ( T − t ) − 1 \alpha(t,u)=0,u&lt;U&#x27;-2(T-t)-1 α(t,u)=0,u<U2(Tt)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值