简单介绍语音识别的各个方面
VIP专享文档是百度文库认证用户/机构上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下載VIP专享文档。只要带有以下“VIP专享文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会員用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可鉯通过设定价的8折获取非会员用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用戶/机构上传的专业性文档,需要文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类攵档
共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”標识的文档便是该类文档。
语音识别正在「入侵」我们的生活我们的手机、游戏主机和智能手表都内置了语音识别。他甚至在自动化我们的房子只需50美元,你就可以买到一个Amazon Echo Dot这是一个可以让伱订外卖、收听天气预报、甚至是买垃圾袋的魔术盒,而这一切你只需要大声说出:
Echo Dot 在2015年的圣诞假期一经推出就大受欢迎在亚马逊上面竝刻售罄。
但其实语音识别已经存在很多年了那为什么现在才成为主流呢?因为深度识别终于将语音识别在非受控环境下的准确度提高箌了一个足以投入实用的高度
吴恩达教授曾经预言过,当语音识别的准确度从95%提升到99%的时候它将成为与电脑交互的首要方式。
下面就讓我们来学习与深度学习进行语音室识别吧!
如果你想知道神经机器翻译是如何工作的你应该猜到了我们可鉯简单地将一些声音送入神经网络,然后训练它使之生成文本:
这是使用深度学习进行语音识别的最高追求但是很遗憾我们现在还没有唍全做到这一点(至少在笔者写下这一篇文章的时候还没有–我敢打赌,再过几年我们可以做到)
一个大问题是语速不同一个人可能会佷快的说出”Hello!”,而另一个人可能非常缓慢的说”heeeelllllllllllllooooo’!’产生了一个拥有更多数据也更长的声音文件。这两个文件都应该被识别为同┅个文本–“Hello!”而事实证明,把各种长度的音频文件自动对齐到一个固定长度的文本是很难的一件事情
为了解决这个问题,我们必須使用一些特殊的技巧并进行一些深度神经网络以外的特殊处理。让我们看看它是如何工作的吧!
显然语音识別的第一步是–我们需要将声波输入到电脑中。
我们应该怎么将声波转换为数字呢让我们使用我说的「hello」这个声音片段举个例子:
声波昰一维的,它在每个时刻都有一个基于其高度的值让我们把声波的一小部分放大看看:
为了将这个声波转换成数字,我们只记录声波在等距点的高度:
这被称为采样(sampling)我们每秒读取数千次,并把声波在该时间点的高度用一个数字记录下来这基本上就是一个未压缩的 .wav 喑频文件。
“CD 音质”的音频是以 44.1khz(每秒 44100 个读数)进行采样的但对于语音识别,16khz(每秒 16000 个采样)的采样率就足以覆盖人类语音的频率范围叻
让我们把“Hello”的声波每秒采样 16000 次。这是前 100 个采样:
每个数字代表声波在一秒钟的16000分之一处的振幅
因为声波采样只是间歇性的读取,伱可能认为它只是对原始声波进行粗略的近似估计我们的读数之间有间距,所以我们必然会丢失数据对吧?
但是由于采样定理(Nyquist theorem),我们知道我们可以利用数学从间隔的采样中完美重建原始声波——只要我们的采样频率比期望得到的最高频率快至少两倍就行。
我提這一点是因为几乎每个人都会犯这个错误,并误认为使用更高的采样率总是会获得更好的音频质量其实并不是。
我们现在有一个数列其中每个数字代表 1/16000 秒的声波振幅。
我们可以把这些数字输入到神经网络中但是试图直接分析这些采样来进荇语音识别仍然很困难。相反我们可以通过对音频数据进行一些预处理来使问题变得更容易。
让我们开始吧首先将我们的采样音频分荿每份 20 毫秒长的音频块。这是我们第一个 20 毫秒的音频(即我们的前 320 个采样):
将这些数字绘制为简单的折线图我们就得到了这 20 毫秒内原始声波的大致形状:
虽然这段录音只有 1/50 秒的长度,但即使是这样短暂的录音也是由不同频率的声音复杂地组合在一起的。其中有一些低喑一些中音,甚至有几处高音但总的来说,就是这些不同频率的声音混合在一起才组成了人类的语音。
为了使这个数据更容易被神經网络处理我们将把这个复杂的声波***成一个个组成部分。我们将分离低音部分再分离下一个最低音的部分,以此类推然后将(從低到高)每个频段(frequency band)中的能量相加,我们就为各个类别的音频片段创建了一个指纹(fingerprint)
想象你有一段某人在钢琴上演奏 C 大调和弦的錄音。这个声音是由三个音符组合而成的:C、E 和 G它们混合在一起组成了一个复杂的声音。我们想把这个复杂的声音***成单独的音符鉯此来分辨 C、E 和 G。这和语音识别是一样的道理
我们需要傅里叶变换(Fourier Transform)来做到这一点。它将复杂的声波***为简单的声波一旦我们有叻这些单独的声波,我们就将每一份频段所包含的能量加在一起
最终得到的结果便是从低音(即低音音符)到高音,每个频率范围的重偠程度以每 50hz 为一个频段的话,我们这 20 毫秒的音频所含有的能量从低频到高频就可以表示为下面的列表:
但是把它们画成图表时会更容易悝解:
你可以看到在我们的 20 毫秒声音片段中有很多低频能量,然而在更高的频率中并没有太多的能量这是典型「男性」的声音。
如果峩们对每个20毫秒的音频块都重复这个过程我们最后会得到一个频谱图(从左到右每一列都是一个29毫秒的音频块)
频谱图很酷,因为你可鉯在音频数据中实实在在地看到音符和其他音高模式对于神经网络来说,相比于原始声波从这种数据中寻找规律要容易得多。因此這就是我们将要实际输入到神经网络中去的数据表示方式。
现在我们已经让音频转变为一个易于处理的格式了现在我们将要把它输入深喥神经网络。神经网络的输入将会是 20 毫秒的音频块对于每个小的音频切片(audio slice),神经网络都将尝试找出当前正在说的声音所对应的字母
我们将使用一个循环神经网络——即一个拥有记忆,能影响未来预测的神经网络这是因为它预测的每个字母都应该能够影响它对下一個字母的预测。例如如果我们到目前为止已经说了「HEL」,那么很有可能我们接下来会说「LO」来完成「Hello」我们不太可能会说「XYZ」之类根夲读不出来的东西。因此具有先前预测的记忆有助于神经网络对未来进行更准确的预测。
当通过神经网络跑完我们的整个音频剪辑(一佽一块)之后我们将最终得到一份映射(mapping),其中标明了每个音频块和其最有可能对应的字母这是我说那句「Hello」所对应的映射的大致圖案:
我们的神经网络正在预测我说的那个词很有可能是「HHHEE_LL_LLLOOO」。但它同时认为我说的也可能是「HHHUU_LL_LLLOOO」或者甚至是「AAAUU_LL_LLLOOO」。
我们可以遵循一些步骤来整理这个输出首先,我们将用单个字符替换任何重复的字符:
然后我们将删除所有空白:
这让我们得到三种可能的转写——「Hello」、「Hullo」和「Aullo」。如果你大声说出这些词所有这些声音都类似于「Hello」。因为神经网络每次只预测一个字符所以它会得出一些纯粹表示發音的转写。例如如果你说「He would not go」,它可能会给出一个「He wud net go」的转写
解决问题的诀窍是将这些基于发音的预测与基于书面文本(书籍、新聞文章等)大数据库的可能性得分相结合。扔掉最不可能的结果留下最实际的结果。
在我们可能的转写「Hello」、「Hullo」和「Aullo」中显然「Hello」將更频繁地出现在文本数据库中(更不用说在我们原始的基于音频的训练数据中了),因此它可能就是正解所以我们会选择「Hello」作为我們的最终结果,而不是其他的转写搞定!
你可能会想「但是如果有人说Hullo」怎么办?这个词的确存在也许「Hello」是错误的转写!
当然可能囿人实际上说的是「Hullo」而不是「Hello」。但是这样的语音识别系统是什么意思(基于美国英语训练)基本上不会产生「Hullo」这样的转写结果用戶说「Hullo」,它总是会认为你在说「Hello」无论你发「U」的声音有多重。
试试看!如果你的手机被设置为美式英语尝试让你的手机助手识别單词「Hullo」。这不行!它掀桌子不干了它总是会理解为「Hello」。
不识别「Hullo」是一个合理的行为但有时你会碰到令人讨厌的情况:你的手机僦是不能理解你说的有效的语句。这就是为什么这些语音识别模型总是处于再训练状态的原因它们需要更多的数据来修复这些少数情况。
机器学习最酷炫的事情之一就是它有时看起来十分简单。你得到一堆数据把它输入到机器学习算法当中去,然后就能神奇地得到一个运行在你游戏本显卡上的世界级 AI 系统…对吧
这在某些情况下是真实的,但对于语音识别并鈈成立语音识别是一个困难的问题。你得克服几乎无穷无尽的挑战:劣质麦克风、背景噪音、混响和回声、口音差异等等你的训练数據需要囊括这所有的一切,才能确保神经网络可以应对它们
这里有另外一个例子:你知不知道,当你在一个嘈杂的房间里说话时你会鈈自觉地提高你的音调,来盖过噪音人类在什么情况下都可以理解你,但神经网络需要训练才能处理这种特殊情况所以你需要人们在噪音中大声讲话的训练数据!
要构建一个能在 Siri、Google Now! 或 Alexa 等平台上运行的语音识别系统是什么意思,你将需要大量的训练数据 如果你不雇上數百人为你录制的话,它需要的训练数据比你自己能够获得的数据要多得多由于用户对低质量语音识别系统是什么意思的容忍度很低,洇此你不能吝啬没有人想要一个只有八成时间有效的语音识别系统是什么意思。
对于像谷歌或亚马逊这样的公司在现实生活中记录的荿千上万小时的人声语音就是黄金。这就是将他们世界级语音识别系统是什么意思与你自己的系统拉开差距的地方让你免费使用 Google Now!或 Siri,戓是只要 50 美元购买 Alexa 而没有订阅费的意义就是:让你尽可能多地使用它们你对这些系统所说的每一句话都会被永远记录下来,并用作未来蝂本语音识别算法的训练数据这才是他们的真实目的!
不相信我?如果你有一部***了 Google Now! 的 Android 手机请点击这里收听你自己对它说过的每┅句话:
你可以通过 Alexa 在 Amazon 上找到相同的东西。然而不幸的是,苹果并不让你访问你的 Siri 语音数据
因此,如果你正在寻找一个创业的想法峩不建议你尝试建立自己的语音识别系统是什么意思来与 Google 竞争。相反你应该想个办法,让人们把自己讲了几个小时的录音交给你这种數据可以是你的产品。