自动语音辨认技术(ASR,Automatic Speech Recognition)是一种经过让机器经过辨认和了解的过程,把人类的语音信号转变为相应文本的技术。我们先来看看语音辨认的历史
其实早在计算机创造之前,有关ASR技术的理念就曾经降生了,而早期的声码器就能够被视为是语音辨认及合成的雏形。而1920年代消费的"Radio Rex"玩具狗,可能是最早的语音辨认器,当这只狗的名字被召唤的时分,它可以从底座上弹出来。这么看来论辈分它是阿尔法狗的爷爷……
但毫无疑问60年代计算机的开展推进了语音辨认技术技术,这其中最重要的一个里程碑就是动态规划技术(DP)和线性预测剖析技术(LP),后者又开展出了更成熟的动态时间归正技术(DTW),包括矢量量化(VQ)和隐马尔可夫模型(HMM)理论。但这些还都只是单调又晦涩的算法,换句话说,工程师看到这些玩意也一头雾水,基本没方法疾速在应用到理论里。
所以在80年代时,著名的AT&T Bell实验室经过努力,把本来深奥无比的HMM纯数学模型工程化,为应用开发打下了重要的基石。到90年代时,深度神经网络技术的打破性开展,终于把语音辨认技术本来的难关攻破了。所以在我们会发现,从21世纪后语音辨认技术的开展就疾速加快了。
其实看起来高大上的语音辨认技术,原理并没有多么复杂。
不管是微软家的Cortana、三星家的S-voice苹果家的Siri,还是国内一些独立做语音辨认的比方讯飞、Rokid,在原理在实质上没有几差别:就是语音输入后,停止特征提取,将提取的特征值放进模型库里,再不时地停止锻炼和匹配,最终解码得到结果。
假如要细说的话就比拟复杂了,比方模型库中又分为声学模型和言语模型。其中言语模型是依据不同品种的言语,对词串停止统计建模,目前普遍采用的是基于(n-1)阶马尔可夫链统计的n元语法模型。
这里细致说下声学建模吧。首先经过前端特征提取取得声学特征,再进一步对声学特征停止统计建模。建模运用到的贝叶斯统计建模框架,也就是最大后验概率决策原则。这里算法这种深奥的东西就不说了,除非深度开发,否则直接套用就行了,我本人也是博古通今,还是念书的时分学的。
说说提取声学特征该如何完成:当语音输入之后,首先停止模电转换,将模仿信号转变为数字信号,再停止静音切除去掉无关噪音,然后停止分帧。将此时的信号分红一帧一帧之后(每一帧并不是独立存在的而是相互关联的),还要停止一系列的信号处置,包括预加重、加窗之后,再停止FFT变换之后,再经过Mel参数的滤波和取对数、离散余弦变换等一系列算法处置后,能够停止用梅尔频率倒谱系数(MFCC)停止特征提取,得到声学特征。
觉得越说越复杂了……后面简单点说吧。前面说了言语模型,而声学模型就是将声学特征统计建模后得到的。得到了模型库之后就能够停止模型锻炼和形式匹配了。
所谓模型锻炼就是指依照一定的原则,从大量已知语音形式中获取一个最具特征的模型参数。而形式匹配则相反,是依据一定原则,将未知语音形式与模型库中的某一个模型取得最佳匹配。
最后的解码过程又能够分红动态解码网络和静态解码网络两种:动态网络会编译一个状态网络并构成搜索空间,把单词转换成一个个的音素后将其依照语序拆分红状态序列,再依据音素上下文分歧性准绳将状态序列停止衔接。
而静态网络普通是针对一些特殊词(孤立词)的辨认网络,它的构造就简单多了:先将每条特殊词扩展成HMM状态序列,然后再计算得分,选择得分最大的作为辨认输出结果。由于静态网络是依据声学概率计算权重,不需求查询言语模型概率,因而解码速度很快。
这样的一个流程大致上就是语音辨认技术的主要原理。
最后再说点题外话吧,语音辨认技术其实应用以及很普遍了,比方在北美很多企业的电话自动效劳都会用到,只需用户直接说出想要的命令,就能够自动查询到需求的效劳,不需求像过去那样按键。手机应用里运用语音辨认技术比方微信的声音锁,讯飞、搜狗语音输入等等很多就不说了,而个人最看好的是声控语音拨号系统、家用机器人、智能家电等范畴,以语音交流的方式取代过去的传统人机互动。国内在这个范畴的语音辨认尝试也是相当多的,比方Rokid这样能够语音辨认命令还具有深度学习才能的家用机器人,能够自动播放视频、音乐,以至以后能够语音对话机器人叫个饿了么外卖,叫个滴滴出行等等。我今年夏天去参观过他们的语音辨认开发部门,他们用的是本人独立开发的一套流程在跑,整个语音模型库也是依据中国人发音习气(连读、口音)做的。当时测试的产品辨认度挺冷艳的,有种真正在人机交互的觉得,等于经过这个机器人接入口来控制其他电子产品,令人耳目一新。