ZLG深度解析语音识别技术
扫描二维码
随时随地手机看文章
语音识别已成为人与机器通过自然语言交互重要方式之一,本文将从语音识别的原理以及语音识别算法的角度出发为大家介绍语音识别的方案及详细设计过程。
语言作为人类的一种基本交流方式,在数千年历史中得到持续传承。近年来,语音识别技术的不断成熟,已广泛应用于我们的生活当中。语音识别技术是如何让机器“听懂”人类语言?本文将为大家从语音前端处理、基于统计学语音识别和基于深度学习语音识别等方面阐述语音识别的原理。
随着计算机技术的飞速发展,人们对机器的依赖已经达到一个极高的程度。语音识别技术使得人与机器通过自然语言交互成为可能。最常见的情形是通过语音控制房间灯光、空调温度和电视的相关操作等。并且,移动互联网、智能家居、汽车、医疗和教育等领域的应用带动智能语音产业规模持续快速增长, 2018年全球智能语音市场规模将达到141.1亿美元。
目前,在全球智能语音市场占比情况中,各巨头市场占有率由大到小依次为:Nuance、谷歌、苹果、微软和科大讯飞等。
语音识别的本质就是将语音序列转换为文本序列,其常用的系统框架如下:
接下来对语音识别相关技术进行介绍,为了便于整体理解,首先,介绍语音前端信号处理的相关技术,然后,解释语音识别基本原理,并展开到声学模型和语言模型的叙述,最后,展示我司当前研发的离线语音识别demo。
1.前端信号处理
前端的信号处理是对原始语音信号进行的相关处理,使得处理后的信号更能代表语音的本质特征,相关技术点如下表所述:
1)语音活动检测
语音活动检测(Voice Activity Detection, VAD)用于检测出语音信号的起始位置,分离出语音段和非语音(静音或噪声)段。VAD算法大致分为三类:基于阈值的VAD、基于分类器的VAD和基于模型的VAD。
基于阈值的VAD是通过提取时域(短时能量、短时过零率等)或频域(MFCC、谱熵等)特征,通过合理的设置门限,达到区分语音和非语音的目的。
基于分类的VAD是将语音活动检测作为(语音和非语音)二分类,可以通过机器学习的方法训练分类器,达到语音活动检测的目的。
基于模型的VAD是构建一套完整的语音识别模型用于区分语音段和非语音段,考虑到实时性的要求,并未得到实际的应用。
2)降噪
在生活环境中通常会存在例如空调、风扇等各种噪声,降噪算法目的在于降低环境中存在的噪声,提高信噪比,进一步提升识别效果。
常用降噪算法包括自适应LMS和维纳滤波等。
3)回声消除
回声存在于双工模式时,麦克风收集到扬声器的信号,比如在设备播放音乐时,需要用语音控制该设备的场景。
回声消除通常使用自适应滤波器实现的,即设计一个参数可调的滤波器,通过自适应算法(LMS、NLMS等)调整滤波器参数,模拟回声产生的信道环境,进而估计回声信号进行消除。
4)混响消除
语音信号在室内经过多次反射之后,被麦克风采集,得到的混响信号容易产生掩蔽效应,会导致识别率急剧恶化,需要在前端处理。
混响消除方法主要包括:基于逆滤波方法、基于波束形成方法和基于深度学习方法等。
5)声源定位
麦克风阵列已经广泛应用于语音识别领域,声源定位是阵列信号处理的主要任务之一,使用麦克风阵列确定说话人位置,为识别阶段的波束形成处理做准备。
声源定位常用算法包括:基于高分辨率谱估计算法(如MUSIC算法),基于声达时间差(TDOA)算法,基于波束形成的最小方差无失真响应(MVDR)算法等。
6)波束形成
波束形成是指将一定几何结构排列的麦克风阵列的各个麦克风输出信号,经过处理(如加权、时延、求和等)形成空间指向性的方法,可用于声源定位和混响消除等。
波束形成主要分为:固定波束形成、自适应波束形成和后置滤波波束形成等。
2.语音识别的基本原理
3.声学模型
传统的语音识别系统普遍采用基于GMM-HMM的声学模型,示意图如下:
基于GMM-HMM的语音识别只能学习到语音的浅层特征,不能获取到数据特征间的高阶相关性,DNN-HMM利用DNN较强的学习能力,能够提升识别性能,其声学模型示意图如下:
GMM-HMM和DNN-HMM的区别在于用DNN替换GMM来求解发射概率,GMM- HMM模型优势在于计算量较小且效果不俗。DNN-HMM模型提升了识别率,但对于硬件的计算能力要求较高。因此,模型的选择可以结合实际的应用调整。
5.语音识别效果展示
基于PC的语音识别展示demo如下视频所示:
此处插入视频zal_asr_demo_video.mp4
视频包括使用“小致同学”唤醒设备,设备唤醒之后有12秒时间进行语音识别控制,空闲时间超过了12秒将再次休眠。
我们的语音识别算法已经部分移植到了基于AWorks的cortex-m7系列M1052-M16F12 8AWI -T平台。语音识别的声学模型和语言模型是我司训练的用于测试智能家居控制的相关模型demo,在支持65个常用命令词的离线识别测试中(数量越大识别所需时间越长),使用读取本地音频文件的方式进行语音识别“打开空调”所需时间0.46s左右。下面是在M1052-M16F128AWI- T的实测效果:
最后附上M1052-M16F128AWI-T产品图片:
6.关于算法库获取
目前语音识别系统处于研发阶段,广大客户可将自身需求反馈给广州立功科技股份有限公司与立功科技·致远电子相关市场人员,我们会以最快速度研发客户需要的产品。