一种语音端点检测算法及其在DSP上的实现
2012-03-16张梅
张 梅
(安徽理工大学,安徽 淮南232001)
语音端点检测是语音信号处理中一个至关重要的环节,只有准确地确定出语音信号的起止点,才能顺利进行语音的后续处理。语音端点检测算法很多,通常根据噪音和语音的统计特征来判别。这些算法在高信噪比时有较好的检测效果,但在低信噪比时常产生误判现象,存在明显不足[1]。
本文介绍了一种基于小波分析和模糊RBF神经网络的语音端点检测算法,该算法采用以TMS320VC5416 DSP为核心的处理电路来实现,具有检测正确率高、快速及时等优点。
1 算法描述
基于模糊RBF神经网络的语音端点检测算法的基本思想是:首先利用小波分析对语音信号进行特征量提取,再将这些特征量作为模糊RBF神经网络的输入对其进行运算,最后判别出是语音信号还是噪声信号。
小波分析具有良好的时域和频域局部特性,可对信号进行精细分析,因此采用小波分析进行语音信号特征量提取[2]。模糊RBF神经网络是一种品质优良的前馈型神经网络,它结合了模糊函数与神经网络的优点,可以以任意精度逼进任意非线性函数,具有结构紧凑、容错能力强、自学习能力强等优点[3]。本文利用模糊RBF神经网络对经小波分析处理后的信号进行运算,从而检测出语音信号的端点。
1.1 利用小波分析提取语音特征量
首先将采集到的语音数据进行分帧处理,得到一组帧数据。再对每帧信号x(n)进行多次小波变换,将其分解为 N 个不同频段的子带信号:x1(n)、x2(n)、…、xN(n)。计算每个子带的平均能量:
其中,Ni为第 i个子带 xi(n)的长度,i=1,2,…,N。将得到的 E1、E2、…、EN子带平均能量进行均值和方差计算:
将所得到的能量均值和能量方差作为语音信号的特征量,送入模糊RBF神经网络进行运算。
1.2 模糊RBF神经网络结构
用于语音端点检测的模糊RBF神经网络结构如图1所示。
模糊RBF神经网络由4层构成:
第一层为输入层。该层有两个结点,以能量均值和能量方差为输入,将其传递到下一层。
第二层为模糊化层。该层对第一层的输入量进行模糊化。将输入量分成{VL(非常低),L(低),M(中),H(高),VH(非常高)}5个论域,故模糊化层有10个结点,隶属度函数采用高斯径向基函数[4]。第i个输入量第j个模糊集的隶属度函数为:
式中,cj和δj分别表示隶属度的中心值和基宽,j=1,2,…,10。
第三层为模糊规则层,该层每个结点代表一条模糊规则。共有5×5个结点,用来匹配模糊规则的前件,计算每条规则的合适度。该层每个结点的输出为:
其中,ωjk为第二层与第三层的连接权,k=1,2,…,25。
第四层为输出层,用于去模糊。设置一个节点,选用logsig()函数作为传递函数,输出结果为(0,1)之间。该层输出为:
其中,ωkl为第三层与第四层的连接权。
该网络采用误差反传(BP)学习算法进行训练。定义目标函数为:
式中,di为期望输出,yi为实际输出。
2 算法实现
2.1 硬件系统设计
以TMS320VC5416 DSP为核心,并扩展相应的外围电路来实现该算法,系统的硬件结构如图2所示。
系统主要由处理器模块、语音编解码模块、存储模块和串行通信模块组成。
(1)处理器模块:选用 TI公司的 TMS320VC5416 DSP作为系统的核心处理单元,完成语音信号的采集、端点的检测以及与PC机的通信等工作。TMS320VC5416是TI公司生产的一种低功耗高性能定点DSP,适用于语音处理、有线和无线通信、便携式信息系统等方面[5]。
(2)语音编解码模块:选用TI公司开发的TLV320AIC23芯片作为语音信号的编解码模块,将外部模拟语音转化成数字信号输入DSP,同时完成内部数字语音的模拟语音输出工作。TLV320AIC23芯片与TMS320VC5416 DSP的连接电路如图3所示。
(3)存储模块:由于语音信号处理需较大的存储空间,系统外扩了一片SRAM和一片Flash存储器。SRAM用来存储语音数据,Flash用来存储脱机运行程序[6]。SRAM芯片选择ICS公司的IS61LV6416,容量为64 KB×16 bit;Flash芯片选择SST公司的SST39VF400A,容量为256 KB×16 bit。
(4)串行通信模块:由于TMS320VC5416没有异步串口(UART),系统利用异步串口收发器TL16C550和MAX232实现TMS320VC5416与PC机之间的通信。其中TL16C550完成数据的并/串转换以及串行传输的波特率设定等工作,MAX232完成电平转换。
系统通过TLV320AIC23采集由MIC或LINE IN输入的语音信号,将其转化为数字信号后送入DSP进行端点检测,主要是提取特征量和完成模糊RBF神经网络运算,并将DSP处理好的数据通过TL16C550和MAX232与PC机进行串行通信。
2.2 软件系统设计
系统的软件分为初始化、模糊RBF神经网络的训练、训练好的网络的检验和语音信号端点检测四个部分。系统上电后,首先初始化程序,主要有CPU、外部时钟、外部设备以及设置中断等。
模糊RBF神经网络的训练非常重要,这一过程是告知网络:输入为某种形态时是语音信号,为其他形态时是噪声信号[7]。采用上述学习算法不断调整隶属度函数的中心值与基宽以及第二层与第三层、第三层与第四层之间的连接权。设置训练次数为1 500,最小误差绝对值为0.001,训练流程如图4所示。
检验训练好的模糊RBF神经网络,仍以训练样本为输入。门限值选为0.5,大于0.5则认为是语音,输出为1;小于0.5则为噪声,输出为0。若正确识别率较低,则重新对网络进行训练。
经上述步骤后,模糊RBF神经网络即可以进行语音端点检测,语音信号的端点检测流程如图5所示。
3 实验与结果
本文在以TMS320VC5416 DSP为核心的电路板上进行语音端点检测实验。利用DSP与相关电路完成数据的采集和处理,并将处理好的数据送入PC机,在PC机上利用Matlab控制串口接收数据,完成识别、仿真等处理。
系统利用TIMIT语音库中语音作实验语音,选取200条连续语音,其中100条用于训练,100条用于测试。训练用语音为纯净语音,测试用语音为加噪语音,噪声来自标准噪声库,信噪比为 0 dB、5 dB、15 dB、20 dB及25 dB。测试的识别结果见表1。
表1 语音端点检测的正确率
上述实验表明,本文所提出的方法检测正确率很高,即使在信噪比较低时,其检测正确率也较为理想。
本文提出了一种语音端点检测算法,它将模糊RBF神经网络应用于语音端点检测,提高了检测的正确率。采用以TMS320VC5416 DSP为核心的电路实现了语音信号的采集、处理及与PC机通信等功能,大大加快了处理速度。实验结果表明,本文所提出的方案有较高的检测正确率,具有简便、可靠、稳定、快速等优点,实用可行。
[1]董力,陈宏钦,马争鸣,等.基于小波变换的语音段起止端点检测算法[J].中山大学学报,2005(5):116-118.
[2]张铁威.基于小波分析与神经网络的语音端点检测研究[D].大连:大连理工大学,2008.
[3]阮慧,党德鹏.基于RBF模糊神经网络的信息安全风险评估[J].计算机工程与设计,2011(6):2013-2018.
[4]张振红,张雪英.基于分形维数和模糊RBF神经网络的语音端点检测[J].电脑开发与应用,2008(7):37-39.
[5]任丽香,马淑芬,李方慧.TMS220600系列DSP的原理与应用[M].北京:电子工业出版社,2000.
[6]许瑞杰.强噪声环境下语音端点检测技术的研究及DSP实现[D].北京:北京工业大学,2010.