吴恩达深度学习-序列模型 3.9语音辨识

2020-02-28  本文已影响0人  prophet__

我们之前做的都是一些可视化比较强的案例,比如说语言翻译之类的,我们能很容易地找到前后因果联系。这门课里,还有一些看起来更像魔法的东西。其实从案例来说,语音的方法跟之前的翻译应该是差不多的,从原理来说都是根据输入的数据库训练模型,输出辨识结果。

首先我们先来理解一下音频的原理,麦克风通过记录气压的变化来表示一段音频。但是对于我们要运行的计算模型来说,它可能没办法识别这个数据,我们可以通过这一段记录来生成一个声谱图。(左下角那个彩色的图)

它的横轴是时间,竖轴是频率,声波的颜色代表了声波能量的能量大小。

在音频识别领域,有一个趋势是使用音位来进行计算,也就是通过人工进行设计的。比如说我们要翻译的这句话就可以分成很多个音位,类似于音标的这个划分方法。

但是在引入了深度学习这种end-to-end的方式之后,我们可以省去这种人工划分音位的方法,直接通过输入的数据得到它抓取的音频文本。使用这个方法的前提,跟其他的深度学习一样,都是需要一个很大的数据集(300个小时以上的音频文件)。

做这种音频识别的其中一个方法,就是我们上节课讲到的注意力模型,通过不同频段的音频来识别文字。

另外一个方法是使用CTC损失函数。在我们的模型当中,往往输入端的是一个非常大的向量,比如说一个10s的音频,频率为100Hz,这时的输入端就是1000,但是输出端只有6个字符。这样如何把他们对应起来呢?

CTC函数就是把每一个输入端对应到一个输出端,比如说它一开始解析出了ttt____hh___eeeeee,那么通过CTC之后,它会把中间的部分压缩,变成the这个单词。要注意,这种_空白格跟space就是空格是不一样的,这样就可以得到一个完整的句子,同时每一个输入端也可以对应一个输出端了。

上一篇 下一篇

猜你喜欢

热点阅读