语音识别4 --RNN-Transducer及其训练解码过程

1.RNA

  RNA提出的时间要比RNN-T晚,但是实际上是介于CTC和RNN-T之间的一种结构,在CTC中,有一个假设是输出之间相互独立的,但是这种假设其实不是很好,因为有时候下一阶段的输出和上一阶段的输出之间还是有较大的关系。因此,RNA在输出的过程中加了一个循环神经网络,使得上一时间段的输出做为决定下一时间段输出的一部分。

2.RNN-T

  前面的模型都是看到一个输入就有一个输出,假设我们遇到了一个状况就是:有时候一个发音要同时对应一串token而不是一个token,有什么办法解决这个问题?RNN-T就可以解决这类问题。

  RNN-T是看到一个输入后就一直输出,一直输出到model满意为止。类似于上图,看到一个h^t进来,先输出一个t,再输出一个h,如果看到h,model觉得满意了,没有什么东西可以输出了,它就输出一个null,对应与图中的空集符号\phi

2.1 RNN-T的运作方式

  先让h^t进来,丢给model,decoder先输出t,然后在输出h,然后输出null,意思就是给它下一个声音信号,再将h^{t+1}丢给模型,以此类推,有时候因为acoustic feature(声音信号)所包含的信息很少,所以丢给模型后,直接就输出null,就是没什么信息,直接再给它下一个声音信号。当输出下划线,图中为_,就表示我要产生新的词汇了。在每一个声音信号结束是都会生成一个\phi。如果进来的语音长度有T个acoustic feature,那么就会产生T个\phi
  在training的时候,RNN-T和CTC一样,有一个alignment问题。比如:有4个acoustic feature,标签为:“好棒”。那么要把4个acoustic feature读完就需要产生4个\phi,但是这4个\phi怎么放置?RNN-T和CTC一样,在training的时候,会穷举所有的alignment。

2.2 在原始的基础上加了一个recurrent network

  此时的结构在输出的基础上多加了一个recurrent network,h^t进入模型,decoder输出一个t,此时t就作为recurrent network的输入,然后recurrent network的输出就和下一阶段的decoder共同决定下一阶段的输出h,此时h就作为recurrent的输入,此时recurrent network的输出和下一阶段的decoder共同决定下一阶段的输出\phi,当遇到\phi作为recurrent network的输入时,此时recurrent network就忽略掉这一步的输入,将上一步h输入,recurrent network的输出继续作为这一阶段的recurrent network的输出,和下一阶段的decoder,共同决定输出e,依次类推,当recurrent network的输入为\phi时,直接忽略当前的输入,将上一时刻recurrent network的输出当做当前的输出,和下一阶段的decoder共同决定下一阶段的输出。(说的可能比较绕,但是看图应该就可以理解)。为什么要加这样一个recurrent network呢?原来的那个结构感觉也挺好的呀?

2.3 加上recurrent network的原因

  (1)为了训练而设计,在后面介绍时会理解他的巧妙之处。  (2)
可以看成一个languang model。

3.RNN-T 的训练

3.1 LAS产生label的计算

  LAS是可以看做能够直接计算给定一段acoustic feature时输出token sequences的概率,即p(Y|X),LAS每次给定一个acoustic feature就会产生一个token 的概率,将所有的概率乘起来就是token sequences的概率。其实在训练的时候,并不是在每一步都找概率最大的,这样会陷入局部最优,一般会用到beam search来寻找一个最优的概率。在图中,\hat{Y}表示的是正确的token sequence ,训练的目标就是要找到一个\theta,使得给定一段acoustic features时,输出\hat{Y}的概率最大。在测试的时候,就是根据训练找到的\在给定acoustic features时,找出概率最大的token sequence,就是语音识别的结果。

3.2 CTC和RNN-T的计算

  CTC和RNN-T都需要alignment,所以不能像LAS那样直接计算。

。其概率是穷举所有的alignment,将所有的alignment的概率加起来,就是token sequence的概率。所以会碰见的几个问题如下图:
image.png
  • 怎么计算所有可能的alignment
  • 怎么将所有可能的alignment加起来
  • 怎么训练\theta

3.2.1 所有的alignment

  HMM中是对token进行重复,CTC是引入了\phi,可以插在任何地方,但是其个数和token重复个数的和要等于acoustic features的个数,RNN-T也引入了\phi,但是其是作为一个acoustic feature结束,下一个acoustic features开始的间隔,因此,\phi的个数就等于acoustic features的个数。

  • HMM

    一个token可以重复t_{i}次,但是所有token重复次数的和要等于acoustic features的长度T,即图中灰色部分所描述的公式。表中横轴代表acoustic features,纵轴代表token。从左上角开始一直走到右下角,中间每一步只能有两个方向:向右走或者是向右下走。但是终点一定要是右下角才算是合法的路径。从起点开始一直走到终点的所有合法路径就是所有可能的alignment。下图就是一个非法路径

  • CTC
    CTC在最后合并token的规则是:(1)首先合并重复项(2)去掉token.例如:a a \phi \phi r \phi r\phi s s s \phis,经过第一步的结果是:a\phir\phir\phis\phi s,经过第二步的结果是a r r s s 。下面的合法路径的选择都是基于这个规则下。


      CTC中的\phi可以插在任何地方,开头,token之间或者结尾。但是\phi的个数加上token的个数要等于acoustic features的个数。其中\phi的个数可以为0,但是每一个token的个数不能为0。
    1
    2
    3
    4

  CTC和HMM不同,在CTC进行的过程中,纵轴是在开头,结尾和每一个token之间都插入一个\phi,其合法路径的规则有3个要求
  (1)其初始的起点可以有两个,即x^1处的状态可以使\phi或者是第一个token,这里是C;
  (2)其最后的终点也有两个状态,即x^6处的状态可以是\phi或者是最后一个token,这里是t
  (3)当中间状态是token时,且下一个token与之不重复时,其下一步的状态可以有3个,向右走--下一步还是当前的token,向右下方走--下一步就是\phi,跨越\phi向右下方走(走马步)--下一步就是下一个token,【见图3】
  (4) 当中间状态为\phi时,下一步只能有2种情况,向右走或者向右下方走。【见图2、图3】
  (5) 当中间状态是token时,且下一个token与之重复时,其下一步的状态只能是2个,向右走--下一步还是当前的token,向右下方走--下一步就是\phi【见图4】,如果走马步,就会在合并的时候丢失掉一个token,所以不能跨越\phi
下图举例列出了两条合法路径:

  • RNN-T
      在RNN-T的过程中,最后一个token后至少有一个\phi,因为他是作为一个acoustic feature和另一个acoustic feature的间隔,当一个单词说完,它肯定要出现\phi,不然下一段acoustic features没办法进来。而在token之间则可以有也可以没有。
      向右走表示,插入\phi,可以理解为当前的acoustic feature没有任何东西,什么都没有输出的,我先插入一个\phi,你再给我下一个acoustic feature。向下走就表示输出一个token,理解为当前的acoustic feature输出一个token。由于最后一个必须是\phi,所以终点在右下角还右边一格。
      RNN-T一个acoustic feature可以识别出很多token(参见上面的RNN-T的介绍),所以可能第一个acoustic features就把想要的东西全部都输出了,后面全部插入\phi即可。下图显示了一条非法路径

3.2.2 HMM、CTC、RNN-T的路径方式比较


  HMM的合法路径只能是复制自己和到达下一个token,CTC的合法路径是复制自己或者到\phi或者到下一个token,RNN-T的合法路径是到达下一个token或者插入\phi

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容