视频类
【人工智能】Speech Recognition 语音识别 篇 (附源码)
汇总/博客
【语音识别】从入门到精通——最全干货大合集!—提供了人工智能对于语音处理不同方向的论文等
不同特征提取方法(MFCC、IMFCC、CQCC、LFCC)的一些简单比较
基于MFCC的语音数据特征提取概述–对于MFCC讲得挺详细的
语音识别是怎么实现的?
基本做法
- 预处理:
-
首尾端的静音切除,降低对后续步骤造成的干扰,静音切除的操作一般称为VAD。
-
声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧,使用移动窗函数来实现,不是简单的切开,各帧之间一般是有交叠的。
- 特征提取:主要算法有线性预测倒谱系数(LPCC)和Mel 倒谱系数(MFCC),目的是把每一帧波形变成一个包含声音信息的多维向量;
- 声学模型(AM):通过对语音数据进行训练获得,输入是特征向量,输出为音素信息;
-
音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing Dictionary。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
-
状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个状态。
-
语音识别是怎么工作的呢?实际上一点都不神秘,无非是: 第一步,把帧识别成状态(难点); 第二步,把状态组合成音素; 第三步,把音素组合成单词。
-
字典:字或者词与音素的对应, 简单来说, 中文就是拼音和汉字的对应,英文就是音标与单词的对应;
-
语言模型(LM):通过对大量文本信息进行训练,得到单个字或者词相互关联的概率;
-
解码:就是通过声学模型,字典,语言模型对提取特征后的音频数据进行文字输出(搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”)
参考:https://blog.youkuaiyun.com/joycesunny/article/details/79294239
https://blog.youkuaiyun.com/nsh119/article/details/79360778
HMM: 通俗的HMM
常用声学模型简介
- CNN模型,即卷积神经网络,最开始应用于图像处理。而语音识别中的频谱图,应用于CNN模型,可以克服传统语音识别中采用时间、频率而导致的不稳定问题。DBN和CNN模型没有考虑语音之间的关联信息。而RNN模型,充分考虑了语音之间的相互关系,因此取得更加好的效果。现有的最好的基于深度学习的语音识别一般是基于DBN+CNN+RNN模型的。
- 混合声学模型:好像就是和隐马尔可夫模型(HMM)做结合,如GMM-HMM、DNN-HMM、RNN-HMM等等。
-
基于DNN-HMM模型
优点: DNN能利用帧的上下文信息,比如前后个扩展5帧
DNN能学习深层非线性特征变换,表现优于GMM
缺点: 不能利用历史信息来辅助当前任务
- 基于RNN-HMM模型:
优点: RNN能有效利用历史信息,将历史消息持久化
在很多任务上,RNN性能变现优于DNN
缺点: RNN随着层数的增加,会导致梯度爆炸或者梯度消失
- 基于CNN-HMM声学模型
优点:CNN对于语音信号,采用时间延迟卷积神经网络可以很好地对信号进行描述学习
CNN比其他神经网络更能捕捉到特征的不变形。
-
End to End实现方法
end to end的语音识别主要有两种方法来实现- 基于CTC的训练准则
CTC训练准则的引入抛弃了传统的HMM框架,输出的粒度可以到phone/charactor/word等。但是仍然有输出独立性的假设,使用的时候对于语言模型的依赖性比较强。 - 基于sequence to sequence和attention
虽然这种方式可以学习到word之间的关系,但是毕竟训练语料的transcription有限,所以额外的语言模型使用还是比较有必要。
end to end的语音识别框架在一定程度上减少了传统方法不合实际的假设,但是也存在训练困难的问题,为了取得比较好的效果,需要的训练语料也更多;而基于传统的DNN-HMM hybrid系统的方法可以得到更稳定的性能。
- 基于CTC的训练准则
Deep Learning for Audio Signal Processing的一些讲解
参考:Deep speaker之ResCNN Input结构
深度学习在音频信号处理领域中的进展(截止至2019年5月)
声音识别教程–博客
[https://blog.youkuaiyun.com/zzc15806/category_9282263.html](