手机语音识别并且转化为文字的技术原理是什么,请简单说下?

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

如何解释语音识别的技术原理?

语音识别的第一个特点是要识别的语音的内容(比声韵母等)是不定长时序,也就是说,在识别以前你不可能知道当前的声韵母有多长,这样在构建统计模型输入语音特征的时候无法简单判定到底该输入0.0到0.5秒还是0.2到0.8秒进行识别,同时多数常见的模型都不方便处理维度不确定的输入特征(注意在一次处理的时候,时间长度转化成了当前的特征维度)。
一种简单的解决思路是对语音进行分帧,每一帧占有比较短固定的时长(比如25ms),再假设说这样的一帧既足够长(可以蕴含足以判断它属于哪个声韵母的信息),又很平稳(方便进行短时傅里叶分析),这样将每一帧转换为一个特征向量,(依次)分别识别它们属于哪个声韵母,就可以解决问题。
识别的结果可以是比如第100到第105帧是声母c,而第106帧到115帧是韵母eng等。
这种思路有点类似微积分中的『以直代曲』。
另外在实际的分帧过程中,还有很多常用技巧,比如相邻两帧之间有所重叠,或引入与临近帧之间的差分作为额外特征,乃至直接堆叠许多语音帧等等,这些都可以让前述的两个假设更可靠。
近年来,研究种也出现了一些更新颖的处理方式,比如用.wav文件的采样点取代分帧并处理后的语音帧,但这样的方法在处理速度及性能上暂时还没有优势。

语音识别的原理是什么?

语音识别是什么原理?为啥知道我们说的是什么?

最后修改日期: 2021年11月3日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。