基于MATLABSTM32的语音信号增强、系统建模与仿真优化
2018-09-21史晓兵尤凤翔黄克亚
史晓兵 尤凤翔 黄克亚
[摘 要] 传统的算法虽然能够抑制语音中的噪声,但易造成语音的失真。本文建立了一种改进的阈值法语音信号增强算法。通过MATLAB仿真平台的实验仿真和传统增强算法的比较,证明了本方法能有效去除信号中的噪声、改进语音质量、提高语音可懂度,达到增强语音信号的效果;在此基础上,利用STM32对系统在两种不同环境下进行了测试,然后根据测试结果进一步对系统进行了优化。优化内容集中在语音命令模式、增添命令列表和修改录音参数三个方面,最终对优化后的系统再次进行了相同的测试,取得了相较于之前更加满足要求的结果。
[关键词] 语音信号;语音净化;MATLAB; STM32;仿真优化
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 13. 068
[中图分类号] TN912.34 [文献标识码] A [文章编号] 1673 - 0194(2018)13- 0149- 05
0 引 言
语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。其目的是要通过处理得到一些能够反映语音信号的特征语音参数来高效率地传输或存储语音信号信息[1-3];同时进行一些运算来满足某些应用的要求,如人工合成出语音,识别讲话者、说话人性别鉴定等。特别是在高铁快速发展的关键时期,语音通信系统是保障铁路高效安全运行的关键技术之一[4];而物联网技术的广泛应用,智能社会的快速推广,为使用者提供了更加方便的方式来控制各种设备[5-6]。例如通过手机应用、红外遥控或者声控等方式来快捷地控制设备;另外,连入智能社会系统的设备之间通过统一的主机完成相互通信,不需要使用者刻意调控,也可以自行实时观察社会环境情况,调节各部分参数,以提供科学舒适节能的社会环境;而且,智能社会的实现可以为用户提供个性化的设定,满足不同人对社会环境不同的需求,而这些与语音信号处理和优化是分不开的。语音识别作为智能社会中一种重要的控制方式,可以毫不夸张地被形容为智能社会系统的“听觉系统”,所以,对语音信号系统建模与仿真研究具有重要的意义。
1 语音特性
语音是一时变的、非平稳的随机过程,但由于一段时间内(10-30ms )人的声带和声道形状的相对稳定性,可认为其特征是不变的,因而语音的短时谱具有相对稳定性。在语音分析中可利用短时谱的这种稳定性。
语音信号可以分为清音和浊音两大部分。浊音在时域上呈现出明显的周期性;在频域上有共振峰结构,而且能量大部分集中在较低频段内。而清音段没有明显的时域和频域特征,类似于白噪声(这就是很难将语音信号中的白噪声去除的主要原因之一)。清音的能量主要集中在比浊音更高的频率范围上,一般在2 500Hz以上[7-8] 。
采用常规阈值方法对含噪语音信号进行去噪处理,可以获得一定的增强效果,但仍存在一些问题需进一步解决。这主要是由于语音信号的特殊性,直接采用阈值处理效果不是很理想。这是因为语音中的清音包含了相对多的高频成分,在实行阈值处理时会被当成噪声去除掉。同时,考虑到随机噪声的小波变换在不同尺度上的不同特征表现,即:高频系数幅值随着尺度的增加而很快地衰减,而且,高频系数的方差也很快地衰减,所以,必须对常规阈值增强方法进行改进。
2 基于MATLAB的语音增强仿真实验
2.1 模型建立
(1)小波分解。选择合适的小波,并确定小波分解层次k,对f(t)做小波变换,则可得到不同尺度下的小波变换系数W2dkf和S2dkf;并计算每个尺度上的平均能量,进行能量的归一化。
(2)清浊音判别。在阈值处理之前先进行清浊音判别。鉴于语音信号的小波变换特性,对于低尺度参数,因包含许多高频成分的清音段与随机噪声混杂在一起,在进行阈值处理时会被当作噪声去掉,而严重影响重构语音的质量,因此,事先进行清浊音判别,可在抑制噪声的同时保持清音中的重要信息;同时,对不同尺度选取不同的阈值。
根据清音、浊音信号在不同尺度上的小波变换系数分布不同[9-10],清浊音判断方法可为:如果输入的语音段满足:① 最小尺度上的信号能量最高(即高频段信号能量最强);② 最大尺度上的信号能量与最小尺度上的信号能量之比小于0.9,則判断为清音,否则判断为浊音。
2.2 仿真实验
本文采用MATLAB仿真平台进行仿真实验。所用原始语音“高铁”是在安静的环境下,利用话筒录得的一段语音信号。噪声为含有白噪声和有色噪声的现场噪声。实验结果分别用信噪比、主观听觉和信号波形比较来评价。
本文通过对5个不同输入信噪比的含噪语音样本进行去噪增强的仿真实验,语音实验情况见图1(含噪语音信号SNR=5dB)和表1。图1 (a)为“高铁”原始语音信号波形,图1 (b)为“高铁”加噪语音信号波形,图1 (c)为改进阈值法“高铁”增强后语音信号波形,图1 (d)为软阈值法增强后语音信号波形。
(a) 原始语音信号,(b) 含噪语音信号(SNR=5dB),(c) 本文改进阈值法增强后语音信号,(d)软阈值法增强后语音信号。如图1 (c)所示,通过本方法去噪增强后,连续语音的轮廓平滑,基本上去除了噪音,接近原始信号,有声区由噪声引起的毛刺明显减弱,无声区的噪声消除效果更为明显,非常接近原始信号。由于在进行阈值处理以前加上了清浊音的判断,对语音的不同部分给予不同的阈值处理,所以对清音段和浊音段的噪声,本方法都能较好地去除。从听觉效果上来说,去噪后基本上听不出背景噪声,和原语音非常接近,语音增强效果显著。用软阈值法来做比较。图1(d)是样本“高铁”用软阈值法去噪增强后的实验结果。虽然看到经过去噪后波形相对平滑,但从听觉上来说,语音的可懂度和清晰度没有用本方法的效果好,仍会有残留噪音无法去除,语音增强效果有限。
对于5个不同输入信噪比的含噪语音样本,我们用本文算法和软阈值法分别进行实验,并把结果写入表1。
从表1实验结果中,我们可以看到,用本文算法和软阈值算法增强语音,实验后输出信噪比都有所提高,而本文算法明显优于软阈值算法。
3 基于 STM32的语音信号性能测试及优化
3.1 优化前测试
为了让所涉及语音识别系统识别率、稳定性、灵敏度能够达到要求,本文分别在安静的家庭环境和嘈杂的食堂环境对所设计系统进行了测试。测试内容为针对语音列表2中的4条语音命令,3名使用者保证在2m的接收距离情况下分别进行10次测试,总计每人在某一环境下40次,总240次。测试结果如下表2。
从表2中可以看出,在较为安静的家庭环境中,对非特定人的识别率可以维持在70%以上,而在相对嘈杂的食堂环境下识别率在50%以上。由此可见,在识别准确性上,安静环境好于嘈杂环境,而至于稳定性,安静环境同样高于嘈杂环境。不过,在该次试验中,两种环境下都还存在误识别的情况。
为了进一步提高系统识别率,减少误识别,增加识别距离,本文对该系统进行了相应的优化和改善。
3.2 系统优化
3.2.1 语音命令模式优化
参考市面上常见的语音识别设备,例如苹果公司的人工智能Siri,除了通过home键唤醒外,还可以通过说出“hi,siri”口令来激活siri,还有亚马逊公司的智能家居系统Echo只有在听到“Alexa”这个单词时才会被唤醒并等待其他有关操作的语音命令。这些例子中的语音识别系统都通过增加一个固定命令激活系统的方式来降低系统误识别/误触发的可能性。
这种模式的原理就是在平常状态下语音识别系统仅在听到一个设定好的固定命令词才会进入接收命令状态,通过增加了一层命令确认流程来提高语音识别准确性。
虽然也可以在语音命令结束后再增加一个固定命令词来进一步约束对命令的识别,以达到三级识别过程,来提高准确性,但考虑到这样会相应增加使用难度,所以本文选择只在具体命令前增加一级固定识别命令。本文给系统加入的固定识别词是“鼠标鼠标”,也即使用者在说出“鼠标鼠标”后再說出相应命令即可。
3.2.2 增加命令列表
本文所使用的语音模块可以录入多达2 000条指令,虽然家用环境中并不会有2 000种功能相对应,但是可以通过录入垃圾关键词、同类词、同音方言来提高系统准确性。
(1)录入垃圾关键词。在正常使用情境中,很可能出现用户说错命令,系统误识别的情况。鉴于本系统采用的语音识别方式是将录入的信号特征提取后与芯片内命令列表进行比对打分,将打分最高且满足最低要求的选项作为识别结果,所以可以将日常生活中可能出现的错误命令增加到命令列表中,将该类词的返回值设定为同一个值,同时设定控制器对该返回值不做回应,并提示用户重新说出命令即可。
在本系统的实际使用情况中可能存在并已录入的错误命令有:“开灯”“关灯”“客厅灯”“卧室灯”“嗯嗯”等。
(2)录入同类词。对于同一个命令,用户可能有其他多种表达方式,比如“打开客厅灯”这一命令,就可能被说成“把客厅灯打开”“客厅灯打开”“开客厅灯”等。充分利用2 000条的可录入命令空间,将同一含义的命令都统一录入,并设置为相同返回值,这样系统在识别到此类词时就可以做出相应的操作,从而提高使用者操作该系统的便捷性,不必纠结于某一准确的命令。
(3)录入方言。考虑到用户说出的命令带有一定的方言口音,而本文中的语音识别系统命令词的录入是依据英文单词和汉字,所以与(2)类似,针对一定的方言命令可以考虑录入谐音的命令作为同类词来适当解决这一问题。例如,在晋南地区,“开灯”可能会发音为“凯等”,所以在有“开灯”这一命令词的情况下,可以录入“凯等”这一同类词。
3.2.3 修改录音参数
(1)降低录音时间。在用户激活系统后,系统会设定一段固定时间进行录音并识别。可以根据实际情况降低这一时间来减少系统可能录入的命令外的无用信息。本文所用系统的所有录入命令正常情况下表达时间不会超过4秒,所以可以将初始默认的6秒等待时间改为4秒,进而避免在说完命令后系统还继续录入过多其他信息。
(2)修改麦克风相关寄存器。LD3320的麦克风增益寄存器地址是“0x35”,对于该寄存器,在例如家庭环境的室内或者是比较安静的室外环境,一般可以设定在0x40-0x53的范围内。设定过高的数值,会产生类似极近距离对麦克风说话的效果,即出现语音采样录入过激,严重影响识别率。为了适当提高识别距离,将初始设定的0x42改为0x50。但这一改变主要针对的是相对安静的家庭环境,对于嘈杂的环境,调高增益会放大杂音,影响识别效果。
LD3320的麦克风灵敏度寄存器地址是“0xb3”,为了提高识别率,适当增加识别距离,将初始设定的“0x13”改为“0x0e”。
另外需要说明的是对于语音识别系统中麦克风的优劣对系统的识别效果有较大的影响。首先质量上,好的麦克风录音频响曲线相对平整,电噪声小,能够将较远距离的语音信号更加清晰地录入系统。而在种类上,目前有很多麦克风零件是针对手机设计和生产的,该类产品特点在于近距离录音,从而抑制远处环境噪音。但对于家居语音识别系统而言,此类麦克风识别距离过短,不宜使用。本文中使用麦克风为较远距离识别类型,识别距离大概稳定在3m左右,质量中等,未做多种类麦克风录音效果对比试验。
3.2.4 优化后结果
在对系统进行了以上优化后,再一次针对系统语音识别做出了与之前相同的测试。测试结果如表3。
不难看出,相比优化之前的识别结果,因为适当地提高了麦克风增益和灵敏度,所以使得在嘈杂环境中的识别率有所降低,但是在家庭环境中的识别率则大大提升,考虑到本系统的目标使用环境就是家庭环境,所以这样的改进对系统的功能是利大于弊的。
在考虑到所有这些情况下,本系统尽可能满足在正常情况下于家庭环境中对语音识别系统的使用效果,至于测试结果所显示的对于嘈杂环境的低识别率情况,因为该测试都是保持说话人与麦克风2m的距离进行的测试,在实际使用中,如果家庭环境下相对吵闹时,可以适当靠近语音模块麦克风进行语音控制,相对识别率会大大提高。
4 结 语
本文在传统软阈值法增强的基础上,采用基于小波变换的改进阈值法进行语音去噪增强的实验,并和软阈值法做了比较。实验证明,本文所用方法很好地抑制了语音中的噪声,信噪比提高显著,完整地保留了语音中清音的重要信息,是一种有效的语音信号增强方法。在此基础上,利用STM32对系统在两种不同环境下进行了测试,然后根据测试结果进一步对系统进行了优化。优化内容集中在语音命令模式、增添命令列表和修改录音参数三个方面,最终对优化后的系统再次进行了相同的测试,取得了相较于之前更加满足要求的结果。由于存在环境噪声的影响,本系统尽可能满足在正常情况下社会环境中对语音识别系统的使用效果,至于测试结果所显示的对于嘈杂环境的低识别率情况,因为该测试都是保持说话人与麦克风2m的距离进行的测试,在实际使用中,如果社会环境下相对吵闹时,可以适当靠近语音模块麦克风进行语音控制,相对识别率会大大提高。
主要参考文献
[1]Mallat S,HwangWL.Singularity Detection and Processing with Wavelets[J].IEEE Transaction on Information Theory,1992,38(2):617-643.
[2]Donoho D L, Johnstone I M. Ideal Spatial Adaption via Wavelet Shrinkage [J]. Biometrika,1994,81(3):425-455.
[3]Donoho D L. Denoising by Soft-thresholding [J]. IEEE Transaction on Information,1995,41(3):613 -627.
[4]尤一龍,张飞,尤凤翔. 基于MATLAB仿真平台语音信号增强的研究[C]//中国人类工效学学会第八次学术交流会,2012.
[5]宁焕生,徐群玉. 全球物联网发展及中国物联网建设若干思考[J].电子学报,2010,38(11):2590-2599.
[6]孙其博,刘杰,黎羴,等. 物联网:概念、架构与关键技术研究综述[J].北京邮电大学学报,2010,33(3):1-9.
[7] 马晓红,宋辉,殷福亮. 自适应小波阈值语音增强新方法[J].大连理工大学学报,2006,46(4):561-566.
[8]张昊. 语音数字信号增强处理及其Matlab实现[J].通信技术, 2009, 42 (1):280-281.
[9]李玉,于凤芹,范树凯. 基于改进噪声方差估计的小波阈值语音增强[J].电声技术,2008,32(3):56-58.
[10]苏秦. 基于小波变换的多尺度多阈值语音信号去噪[J].苏州大学学报:工科版,2003,23(6):18-22.