语音识别

 

我们的声音进入电脑后,变成了下面的结构

 

 

(上面这个图也叫声音的“时域”图,因为声音通过话筒进入计算机,是按时间上的先后顺序来的)

 

 

我们来“描述”一下,他有什么特征:

1.      中间区域内,“振荡”幅度特别大,而两边变化的比较小,(中间区域的内容是“yi”的发音的声音图

两边的地方是“静音区”,即在录音开始时,我们没有发出声音,但电脑已经开始录制了,但这部份,没有声音;

在声音这部份区域,我们录音时,有时会有外面的噪音,如车声等影响

电脑的处理速度有限,即使充足状态下,我们也可以用于其它处,而不是将资源用于非语音的识别,所以第一步,就是端点的检测,即哪一部份开始是语音;

语音与静音或是噪音的区别,在于他的幅度比较大,持续时间比较长,所以我们可以通过这些特征去划分出“语音区”

 

 

我们如何去“描述”上面的“语音”部分的“特征”

 

我们会有很多种方法;而现有的一种技术是我们通过将波型分解成由更简单,几种波形波形组成,将这个图进行如下的描述

 

 

 

然后我们再将组成图转化到坐标上去

 

这个坐标图,又号声音的“频域”图-“频普”(只要知道他是怎么来的就行)他是描述声音特征的一种方式,通过傅里叶变化(又叫fft函数就能实现这种变换)

 

 

2.      好了,有了上面的特征,我们就能对语音进行描述,区别不同语音之间的区别了,但是等一下,我们在实际中,会得到的图并不像上面那么简单,而是像下面这样的,这又给我们的识别增加了难度,数量太大了啊

 

但是人们发现,人对声音的辨别能力,尤其对于某些频率之间并不能很好的辨认,而超过一定频率后才能识别不同,而制作了一个模型

 

他由许多个“三角形”组成,每个三角形,我们叫一个过滤器

 

又叫“梅尔系数”

 

将上面两个图重叠,就变成了下面这种

 

 

然后我们将频谱图与每个滤波器进行叠加处理,如

 

 

并将所有结果相加起来,代表一个滤波器的值

 

这样,就将上面FFT转化后的数据,大量的减少了,便于我们处理,然后我们就使用上面所得的特征来进行来对比了

 

 

总结一下:

语音识别主要是三步

 

1.端点检测

2.特征提取

3.语音对比

 

比较好的参考资料:

https://my.oschina.net/zzw922cn/blog/533175  语音特征提取技术MFCC ( 外文翻译而成)

http://practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/#deltas-and-delta-deltas(原网址可能来源于此)

https://blog.csdn.net/zouxy09/article/details/9156785/ 语音信号处理之(四)梅尔频率倒谱系数(MFCC)

https://blog.csdn.net/xiao13yu14/article/details/46991581 (梅尔频率倒谱系数(MFCC)的提取过程与C++代码实现)

https://www.zhihu.com/question/20398418(语音识别的原理)

http://www.52nlp.cn/hmm-learn-best-practices-four-hidden-markov-models (Hmm 隐马尔可夫 HMM学习最佳范例) 或搜索史上最详细最容易理解的HMM文章

https://blog.csdn.net/raym0ndkwan/article/details/45614813  (DTW动态时间规整)

https://blog.csdn.net/App_12062011/article/details/53442506(系统学习机器学习之距离的度量(二))

数字信号处理(外文-中文版)-

 

转自:https://blog.csdn.net/qq_39239990/article/details/80208518

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐