Day05 - 端到端(end-to-end)语音辨识-CTC part 1

传统在做语音辨识需要事先标注每个音框的标签,这麽做会耗费庞大的时间,因
此研究人员 Alex Graves 提出 Connectionist Temporal Classification (CTC),能够在训练神经网路
前,不需要对音框和标注之间做对齐(alignment),也不需要结合隐藏式马可夫模
型(hidden Markov model)即可进行辨识。CTC提出一个新的概念:空白(blank),用在
无法确定是哪种发音时,将预测结果映射到空白,这个作法可以让模型着重在各种发
音之间的差异性。当给定一个输入 x,长度为 T,输出的标注(label)集合 L,L 包含空
白,https://chart.googleapis.com/chart?cht=tx&chl=y%5E%7Bt%7D_%7Bk%7D 表示在时间点(timestep) t 输出 k 的机率。接着假设每一个时间点之间的
输出机率是独立的,我们可以将网路输出 https://chart.googleapis.com/chart?cht=tx&chl=%5Cpi 的机率用以下公式表示

https://chart.googleapis.com/chart?cht=tx&chl=P(%5Cpi%7Cx)%3D%5Cprod_%7Bt%3D1%7D%5E%7BT%7Dy%5E%7Bt%7D_%7B%5Cpi_%7Bt%7D%7D

我们将 https://chart.googleapis.com/chart?cht=tx&chl=%5Cpi 称作路径(paths),https://chart.googleapis.com/chart?cht=tx&chl=%5Cpi_%7Bt%7D 是在路径 https://chart.googleapis.com/chart?cht=tx&chl=%5Cpi 时间点 t 时输出的标注。接着定义一个多
对一的函数 F,将所有可能的路径映射到 x 可能输出的序列,CTC 会先将在路径
连续重复的标注合并成一个,再删掉空白,得到这个输入 x 的输出序列 l,例如
https://chart.googleapis.com/chart?cht=tx&chl=F(a-bb-c)%3DF(aa-b-c)%3Dabc
其中 - 表示空白

我们把所有映射後结果是 l 的路径 label(https://chart.googleapis.com/chart?cht=tx&chl=%5Cpi),将其机率加总起来,作为输入 x 的输出序列是 l 的事後机率,以下面公式表示
https://chart.googleapis.com/chart?cht=tx&chl=P(l%7Cx)%3D%5Csum_%7Blabel(%5Cpi)%3Dl%7DP(%5Cpi%7Cx)%3D%5Csum_%7Blabel(%5Cpi)%3Dl%7D%5Cprod_%7Bt%3D1%7D%5E%7BT%7Dy%5E%7Bt%7D_%7B%5Cpi_%7Bt%7D%7D

CTC 介绍的部份因内容较多所以会拆成两部分,以上就是第一部分的内容,隔天会再将剩下的部分补充说明完成~


<<:  DAY2 安装 Docker

>>:  追求JS小姊姊系列 Day2 -- 谁说难搞的女生没朋友?

Day1 後端及PHP介绍

Day1 後端及PHP介绍 大家好~ 之後的30天来跟大家介绍一下我学习PHP到现在的过程,主要会以...

@Day15 | C# WixToolset + WPF 帅到不行的安装包 [安装包上的图片]

今天 我们来看一下预设的打包档图片要怎麽调整 想要好看的话,基本上应该都是需要做更换的, 官方有提供...

半透明的文字看板

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

【Day 18】QGIS

回到地图 我们在前几天讨论到地图,但是我们不用 Google API,因为怕被收钱钱,我们用的是 O...

D30 第十七周 (回忆篇)

课程进度 第十六周练习题花蛮多时间的,主要卡关的地方是对 jest 的使用不熟悉,浏览器上的 ES6...