作家
登录

机器学习原来如此有趣:如何用深度学习进行语音识别

作者: 来源: 2017-09-18 10:09:30 阅读 我要评论

固然这段灌音只有 1/50 秒的长度,但即使是如许短暂的灌音,也是由不合频率的声音复杂地组合在一路的。个中有一些低音,一些中音,甚至有几处高音。但总的来说,就是这些不合频率的声音混淆在一路,才构成了仁攀类的语音。

为了使这个数据更轻易被神经收集处理,我们将把这个复杂的声波分化成一个个构成部分。我们将分别低音部分,再分别下一?最低音的部分,以词攀类推。然后将(大年夜低到高)每个频段(frequency band)中的能量相加,我们就为各个类其余音频片段创建了一个指纹(fingerprint)。

想象你有一段或人在钢琴上吹奏 C 大年夜调和弦的灌音。这个声所以由三个音符组合而成的:C、E 和 G。它们混淆在一路构成了一个复杂的声音。我们想把这个复杂的声音分化成零丁的音符,以词攀来分辨 C、E 和 G。这和语音辨认是一样的事理。

我们须要傅里叶变换(Fourier Transform)来做到这一点。它将复杂的声波分化为简单的声波。一旦我们有了这些零丁的声波,我们就将每一份频段所包含的能量加在一路。

尝尝看!如不雅你的手机被设置为美式英语,测验测验让你的手机助手辨认单词「Hullo」。这不可!它掀桌子不干了,它老是会懂得为「Hello」。

频谱图很酷,因为你可以在音频数据中实实袈内涵地看到音符和其他音高模式。对于神经收集来说,比拟于原始声波,大年夜这种数据中寻找规律要轻易得多。是以,这就是我们将要实际输入到神经收集中去的数据表示方法。

最终获得的结不雅就是大年夜低音(即低音音符)到高音,每个频率范围的重要程度。以每 50hz 为一个频段的话,我们这 20 毫秒的音频所含有的能量大年夜低频到高频就可以表示为下面的列表:

然则把它们画成图表时会更轻易懂得:

你可以看到,在我们的 20 毫闼轾音片段中有很多低频能量,然而在更高的频率中并没有太多的能量。这是典范「男性」的声音。

如不雅我们对每个20毫秒的音频块都反复这个过程,我们最后会获得一个频谱图(大年夜左到右每一列都是一个29毫秒的音频块)

大年夜短音频中辨认字符

如今我们已经让音频改变为一个易于处理的格局了,如今我们将要把它输入深度神经收集。神经收集的输入将会是 20 毫秒的音频块。对于每个小的音频切片(audio slice),神经收集都将测验测验找出当前正在说的声音所对应的字母。

我们将应用一个轮回神经收集——即一个拥有记忆,能影响将来猜测的神经收集。这是因为它猜测的每个字母都应当可以或许影响它对下一?字母的猜测。例如,如不雅我们到今朝为止已经说了「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」。因为神经收集每次只猜测一?字符,所以它会得出一些纯粹表示发音的转写。例如,如不雅你说「He would not go」,它可能会给出一个「He wud net go」的转写。

解决问题的诀窍是将这些基于发音的猜测与基于书面文本(书本、消息文┞仿等)大年夜数据库的可能性得分相结合。扔掉落最弗成能的结不雅,留下孜实际的结不雅。

在我们可能的转写「Hello」、「Hullo」和「Aullo」中,显然「Hello」将更频繁地涌如今文本数据库中(更不消说袈溱我们原始的基于音频的练习数据中了),是以它可能就是正解。所以我们会选择「Hello」作为我们的最终结不雅,而不是其他的转写。搞定!

稍等一下!

你可能会想「然则如不雅有人说Hullo」怎么办?这个词切实其实存在。也许「Hello」是缺点的转写!

当然可能有人实际上说的是「Hullo」而不是「Hello」。然则如许的语音辨认体系(基于美国英语练习)根本上不会产生「Hullo」如许的转写结不雅。用户说「Hullo」,它老是会认为你在说「Hello」,无论你发「U」的声音有多重。

不辨认「Hullo」是一个合理的行动,但有时你会碰着令人憎恶的情况:你的手机就是不克不及懂得你说的有效的语句。这就是为什么这些语音辨认模型老是处于再练习状况的原因,它们须要更多的数据来修复这些少数情况。


  推荐阅读

  数字企业的三个信息安全新工作

51CTO诚邀您9月23号和秒拍/国美/美团云专家一路聊智能CDN的优化之路,抓紧时光哦! 跟着企业慢慢实现数字化,其信息安然的义务正在敏捷变更。采取新技巧如今可以实现营业计谋,并正在改变产>>>详细阅读


本文标题:机器学习原来如此有趣:如何用深度学习进行语音识别

地址:http://www.17bianji.com/lsqh/37467.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)