Speech Recognition模型:Connectionist Temporal Classification(CTC)

在上一篇讲的speech recognition模型 LAS 中,我们提到,LAS由encoder 和 decoder 组成,其在做speech recognition任务时,有一个很大的缺点,即:无法做到“边听边翻译”,换言之,在使用LAS做翻译时,需要将“原文"全部输入模型,才可得到译文(这里的译文 指 将 语音 转为 文字)。

本节所讲的模型CTC很好的克服了LAS的这一弱点,它可以实时的将”语音"翻译为“文字”。

一,CTC机理

CTC的模型结构如下,其主体为一个uni-directional RNN 以及 classifier,input为acoustic feature,output为token(即 译文)。在每一个time step,将acoustic feature作为input输入RNN,所得的 h 将被送入一个 classifer,该classifer将输出token distribution,选取拥有最大概率值的token作为该time step的output.
由于每个time step输入的acoustic feature很短,只有10 minsecond,因此,可能存在CTC无法识别该acoustic feature的情况,为了防止这种情况的发生,可在token vocabulary中加入null,当CTC无法识别该time step下token时,可以将其output定为为null.
next time step的input 为current time step的h 以及 next time step的acoustic feature,据此,得到next time step的token.
在这里插入图片描述
二,paired train data的获取

上面提到的CTC工作原理,input和output是成对出现的,即 acoustic feature和token是成对出现的,而我们在实际中得到的train data通常为 (语音,译本),无法细化到(acoustic feature, token),在实际中,我们可以穷举所有可能的 (acoustic feature, token)对,用于CTC的训练。
在获取(acoustic feature, token)对时,我们可能会发现,可能4个acoustic feature只对应2个word(如word),在这种情况下,我们可以将 “空” 插入这2个word中间,穷举所有可能形式,作为CTC的Paired train data,如下图所示:
在这里插入图片描述
在这里插入图片描述
三,CTC存在问题

如果不对原语音数据做down sampling,则CTC中input多少个acoustic feature,就会output多少个token。由于CTC中每一个time step output的产生都是相对独立的,因此,CTC中不同的time step可能会产生相同的一个token,就像是结巴了一样,通常,会将outputs中相同的token合并为一个token,以避免结巴的情况。
在这里插入图片描述
四,LAS与CTC的结合

LAS由encoder和decoder组成,在构建LAS模型时,我们可以将CTC嫁接在LAS的encoder上,从而达到LAS和CTC的结合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarah ฅʕ•̫͡•ʔฅ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值