数据中台 数据中台

tel 400-002-1024
tel

「深度学习」语音识别如何进行深度学习

2020年11月20日09:30 袋鼠云 文章来源:.

「深度学习」语音识别如何进行深度学习,语音识别已经「侵入」我们的日常生活。大家的手机上、游戏电脑主机和智能手环上都内嵌了语音识别的程序流程。它乃至在自动化技术美丽的家园。只需50美金,你能购到一个AmazonEchoDot,一个可以给你订披萨、得知天气预告,乃至选购塑料袋的魔术盒——如果你高声说出你的要求:

Alexa,订一个小号的披萨!

EchoDot智能机器人在这个假期(二零一六年圣诞节)太火爆了,以致于Amazon好像都缺货了!

「深度学习」语音识别如何进行深度学习,殊不知语音识别本来早已出現几十年了,为什么直到如今才变成流行呢?那是由于深度神经网络总算将语音识别在非可控自然环境下的精确度提升 来到一个足够资金投入好用的水平。

「深度学习」语音识别如何进行深度学习,吴恩达专家教授[1]早有推测,当语音识别的精确度从95%升高到99%的情况下,它将变成我们与电子计算机互动的关键方法。

这代表着,这4%的精密度差具体便是「太不可靠」与「好用无比」中间的区别。多亏了深度神经网络,大家总算做到了巅峰。

使我们了解一下怎样用深度神经网络开展语音识别吧!

深度学习并不一直一个白盒

假如你了解神经系统翻译机器是怎样工作中的,那麼你很有可能会猜中,我们可以简易地将响声送进神经网络中,并训炼使之形成文字:

这就是用深度神经网络开展语音识别的关键所属,但现阶段大家都还没彻底把握它(最少在我写本文的情况下都还没——我打赌,在未来的两年我们可以保证)。

一个问题是声音速度不一样。一个人很有可能迅速地讲出「hello!」而另一个人很有可能会十分迟缓地说「heeeelllllllllllllooooo!」。这造成了一个更长的音频文件,也造成了大量的数据信息。这两个音频文件都应当被鉴别为完全一致的文字「hello!」而事实上,把各种各样长短的音频文档全自动两端对齐到一个固定不动长短的文字是难以的一件事情。

为了更好地处理这个问题,大家务必应用一些独特的方法,并开展一些深层神经网络之外的独特解决。使我们看一下它是怎样工作中的吧!

将响声转化成比特(Bit)

语音识别的第一步是很不言而喻的——大家必须将声波键入到电子计算机之中。

在第三章中,大家学了怎样把图象视作一个数据编码序列,便于大家立即将其键入进神经网络开展图像识别技术:

图象仅仅照片中每一个清晰度深层的数据开放阅读框

但响声是做为波(wave)的方式散播的。大家如何把声波转化成数据呢?使我们应用我讲的「hello」这一响声精彩片段举个事例:

我讲「hello」的波型

声波是一维的,它在每一个時刻都是有一个根据其高宽比的值[2]。使我们把声波的一小部分变大看一下:

为了更好地将这一声波转化成数据,大家只纪录声波在定距点的高宽比:

给声波采样

这被称作采样(sampling)。大家每秒钟载入千余次,并把声波在该时间点的高宽比用一个数据记下来。这大部分便是一个未缩小的.wav音频文档。

「CD音质」的音频是以44.1khz(每秒钟44100个读值)开展采样的。但针对语音识别,16khz(每秒钟16000个采样)的采样率就足够遮盖人们视频语音的頻率范畴了。

使我们把「Hello」的声波每秒钟采样16000次。它是前一百个采样:

每一个数字表示声波在一秒钟的16000分之一处的震幅

数据采样助手

由于声波采样仅仅间断性的载入,你很有可能觉得它仅仅对初始声波开展粗略地的类似可能。大家的读值中间有间隔,因此 大家必定会遗失数据信息,是吧?

数据采样可否极致再现初始声波?这些间隔该怎么办?

可是,因为采样定律(Nyquisttheorem),我们知道我们可以运用数学课,从间距的采样中极致复建初始声波——要是大家的采样頻率比期待获得的最大頻率快最少二倍就可以了。

我提这一点,是由于基本上每个人都犯这一不正确,并误以为应用高些的采样率一直会得到 更强的音频品质。实际上并并不是。

预备处理大家的采样响声数据信息

大家如今有一个数列,在其中每一个数字意思1/16000秒的声波震幅。

我们可以把这种数据键入到神经网络中,可是尝试立即剖析这种采样来开展语音识别依然很艰难。反过来,我们可以根据对音频数据信息开展一些预备处理来使难题越来越更非常容易。

使我们现在开始,最先将大家的采样音频分为每一份20ms长的音频块。它是大家第一个20ms的音频(即大家的前320个采样):

将这种数据绘图为简易的折线统计图,大家就获得了这20ms内初始声波的大概样子:

尽管这一段音频只有1/50秒的长短,但即便 是那样短暂性的音频,也是由不一样頻率的响声繁杂地组成在一起的。在其中有一些底音,一些中高音,乃至有几个高音。但总体来说,便是这种不一样頻率的响声混和在一起,才构成了人们的视频语音。

为了更好地使这一数据信息更非常容易被神经网络解决,大家将把这个繁杂的声波转化成一个个构成部分。大家将分离出来底音一部分,再分离出来下一个最低音的一部分,依此类推。随后将(从低到高)每一个频率段(frequencyband)中的动能求和,大家就为每个类型的音频精彩片段建立了一个指纹识别(fingerprint)。

想像给你一段别人在电子琴上弹奏C大调和旋的音频。这一响声是由三个音乐符号组成的:C、E和G。他们混和在一起构成了一个繁杂的响声。大家想把这个繁杂的响声转化成独立的音乐符号,为此来辨别C、E和G。这和语音识别是一样的大道理。

大家必须傅里叶变换(FourierTransform)来保证这一点。它将繁杂的声波溶解为简易的声波。一旦大家拥有这种独立的声波,大家就将每一份频率段所包括的动能加在一起。

最后获得的結果就是从底音(即底音音乐符号)到高音,每一个頻率范畴的关键水平。以每50hz为一个频率段得话,我们这20ms的音频所带有的动能从低頻到高频率就可以表明为下边的目录:

目录中的每一个数字表示那份50Hz的频率段含有的动能

但是,把他们画成那样的数据图表会更为清楚:

你能见到,在大家的20ms响声精彩片段中有很多低頻动能,殊不知在高些的頻率中并沒有过多的动能。它是典型性「男士」的响声。

如果我们对每20ms的音频块反复这一全过程,大家最后会获得一个频谱图(每一列从左往右全是一个20ms的块):

「hello」声音剪辑的详细声谱

频谱图很帅,由于你能够在音频数据信息中切切实实地见到音乐符号和别的音高方式。针对神经网络而言,对比于初始声波,从这类数据信息中找寻规律性要非常容易得多。因而,这就是我们即将具体键入到神经网络中来的数指方法。

从短声音识别标识符

如今大家拥有文件格式便于解决的音频,大家将把它键入到深层神经网络中去。神经网络的键入可能是20ms的音频块。针对每一个小的音频切成片(audioslice),神经网络都将试着找到当今已经说的响声所相匹配的英文字母。

大家将应用一个循环系统神经网络——即一个有着记忆力,能危害将来预测分析的神经网络。这是由于它预测分析的每一个英文字母都应当可以危害它对下一个英文字母的预测分析。比如,如果我们到迄今为止早已讲过「HEL」,那麼很有可能大家接下去要说「LO」来进行「Hello」。大家不大可能要说「XYZ」这类压根读不出来的物品。因而,具备此前预测分析的记忆力有利于神经网络对将来开展更精确的预测分析。

当根据神经网络跑完大家的全部音频视频剪辑(一次一块)以后,大家将最后获得一份投射(mapping),在其中标出了每一个音频块和其最有可能相匹配的英文字母。它是我讲那句「Hello」所相匹配的投射的大概图案设计:

大家的神经网络已经预测分析我讲的哪个词很有可能是「HHHEE_LL_LLLOOO」。但它另外觉得我讲的也可能是「HHHUU_LL_LLLOOO」,或是乃至是「AAAUU_LL_LLLOOO」。

我们可以遵照一些流程来梳理这一輸出。最先,大家将用单独标识符更换一切反复的标识符:

·HHHEE_LL_LLLOOO变成HE_L_LO

·HHHUU_LL_LLLOOO变成HU_L_LO

·AAAUU_LL_LLLOOO变成AU_L_LO

随后,大家将删掉全部空缺:

·HE_L_LO变成HELLO

·HU_L_LO变成HULLO

·AU_L_LO变成AULLO

这使我们获得三种很有可能的转写——「Hello」、「Hullo」和「Aullo」。假如你高声讲出这种词,全部这种响声都类似「Hello」。由于神经网络每一次只预测分析一个字符,因此 它会得到一些纯碎表明音标发音的转写。比如,假如你觉得「Hewouldnotgo」,它很有可能会得出一个「Hewudnetgo」的转写。

解决困难的技巧是将这种根据音标发音的预测分析与根据书面形式文字(书本、新闻报道文章内容等)大数据库的概率评分紧密结合。丢掉最不太可能的結果,留有最具体的結果。

在大家很有可能的转写「Hello」、「Hullo」和「Aullo」中,显而易见「Hello」将更经常地出現在文字数据库查询中(更别说在大家初始的根据音频的训炼数据信息中了),因而它很有可能便是正确的答案。因此 大家会挑选「Hello」做为大家的最后結果,而不是别的的转写。拿下!

等一下!

你很有可能会想「可是假如有些人说Hullo」该怎么办?这个词确实存有。或许「Hello」是不正确的转写!

「Hullo!Whodis?」

自然很有可能有些人事实上说的是「Hullo」而不是「Hello」。可是那样的语音识别系统软件(根据美式英语训炼)大部分不容易造成「Hullo」那样的转写結果。客户说「Hullo」,它一直会觉得你一直在说「Hello」,不管你发「U」的响声有多种。

试一试!假如你的手机被设定为美式英语,试着给你的手机助手鉴别英语单词「Hullo」。这不好!它掀桌不干了(╯‵□′)╯︵┻━┻!它一直会了解为「Hello」。

不鉴别「Hullo」是一个有效的个人行为,但有时候你能遇到令人厌恶的状况:你的手机便是不可以了解你觉得的合理的句子。这就是为何这种语音识别实体模型一直处在再训炼情况的缘故,他们必须大量