引言
语音信号是人们进行沟通和交流的主要媒介。语音具有两重属性,一方面语音具有表义功能;另一方面语音毕竟是一种声音,它是由人的头脑中产生的意念通过一组神经信号去控制发音器官,变成空气的振动信号,然后由空气传递到人的耳朵或受话器中的信号。语音的基本作用是进行信息交换,构成语音通信。在语音通信系统中,语音信号的传输存储和处理的方式是各种各样的。大体上说话音处理的研究可以分为以下几个方面:语音分析、语音增强、语音编码、话音合成和语音识别与理解。单从记录声音的设备来看就有留声机、录音机到现在数字化的MP3播放器,这其中的记录技术也一直在飞速的变化中。因此,在信息社会高度发达的今天,用数字方法进行语音的传送、存储、识别、增强就显得尤为必要。
LabVIEW开发平台
LabVIEW是目前唯一的编译型图形化编程语言,使用“所见即所得”的可视化技术建立人机界面,用图标表示功能模块,用图标之间的连线来表示各模块间的数据传递。同时,LabVIEW继承了高级编程语言的结构化和模块化编程的优点,支持模块化与层次化设计,这种结构的设计增强了程序的可读性,其界面非常直观形象。
虚拟仪器是以计算机作为仪器的硬件支撑,充分利用计算机的运算、存储、调用、显示及文件管理等功能,把传统仪器的专业化功能软件化,使之与计算机结合起来融为一体,这样便构成了一台从外观到功能都完全与传统仪器相同,同时又充分享用了计算机资源的仪器系统。传统仪器通常由信号采集、信号分析、信号输出三部分组成;虚拟仪器同样可以划分为数据采集、数据分析处理、显示结果三大功能模块。
虚拟仪器的系统组成
虚拟仪器系统是由计算机、硬件平台和应用软件组成的。从构成方式,则有以数据采集卡(DAQ)和信号调理电路组成的PC-DAQ测试系统;以GPIB、VXI、串行总线和现场总线等标准总线仪器为硬件方式组成的GPIB系统、VXI系统、串行总线系统、现场总线系统等。目前通常采用的方法是在计算机上插入数据采集卡,用软件在屏幕上生成仪器面板,用软件进行信号分析处理等。这也正是本文设计的核心。我们采用PCI总线技术开发了虚拟仪器系统硬件平台,其基于PCI总线的数据采集卡包括信号调理和数据采集两部分,数据采集卡结合计算机数据处理软件可以构造各种虚拟仪器。图1为虚拟仪器系统构成框图。
图1 虚拟仪器系统构成框图
语音信号的时域处理方法
数字语音处理的方法常常分为时域方法、频域方法、同态方法、线性预测编码方法以及其他各种方法等。时域方法涉及到语音信号的波形,利用时域方法来分析的语音信号特征参数包括语音的短时平均幅度和能量,短时平均过零率,短时自相关函数以及短时平均幅度差函数等。利用这些特征参数可以分析或处理语音,如清浊音分类,基音周期检测等。限于篇幅,这里只对短时能量和短时平均幅度进行分析。语音信号的时域分析就是分析和提取语音信号的时域参数,其特点如下。
⑴表示语音信号较直观、物理意义明确;
⑵实现较简单、运算量少;
⑶可以得到语音的重要参数;
⑷使用示波器等通用设备可看到变化,使用方便。
考虑到上述优点,本文就语音信号的时域处理方法进行系统的分析。
● 短时能量分析
语音信号是一种随时间而变化的信号,是浊音激励还是清音激励,浊音的基音周期以及信号幅度等都随时间而变化,此变化又是缓慢的,可以认为在一小段时间里,例如10~20ms内语音信号近似不变。于是,可以把语音信号分成一些短段(或称为分析帧)来进行处理。这些短段具有固定的特性,短段间经常有一定的重叠组成一段语音。这种方法称为“短时”处理方法。这种短时处理方法可以用式1来表示。
(1)
式中T[]表示对话音进行变换,此变换不一定是线性的,也可以是非线性的。把变换后的序列乘以窗函数。这个窗序列位于与抽样标志n相一致的时间,窗函数的宽度是有限的,然后对乘积的所有非零值求和所得到的Qn,就是在n这个时刻的T[x(k)]的部分加权平均值。短时能量通常定义为:
(2)
这个表示式还可以表示成:
(3)
图2为相应的数学模型原理图。
图2 短时能量分析数学模型
综上所述,语音的短时能量表示取决于h(n)的选择或w(n)的选择,通常使用两种窗,其中一种为矩形窗,其窗函数如式4所示。
(4)
实验结果表明,En值明显小于浊音段的能量。因此,根据短时能量函数可以大致区分浊音和清音。在高En信噪比的情况下,利用短时能量函数也可以区分有声和无声。
● 短时平均幅度
由上式定义的短时能量函数由于需要计算,因此对于高电平信号,其值经过平方后则更大,而对于低电平信号其值为小于1的值,经过平方后则更小。以致短时能量E(n)对于信号电平值过于敏感。为了克服这个缺点,定义了一种短时平均幅度函数,见式5。平均能量的数学模型如图3所示。
图3 平均能量分析数学模型
(5)
式中用信号的绝对值代替信号的平方值。Mn能较好地反映Mn清音范围内的幅度变化。在这一方面,Mn要比En好,Mn所能反映幅度变化的动态范围也要比En好。所反映清音语音和浊音语音之间的电平差不如En那样明显。
短时能量与短时平均幅度的主要用途如下。
(1)可以从语音中区分出浊音来,因为浊音的能量要比清音大的多;
(2)可以用来区分声母与韵母的分界、无声与有声的分界、连字的分界等;
(3)作为一种语音段信息,用于语音识别。
LabVIEW软件设计
软件设计主要分为信号采集流程和处理处理流程。硬件的波形信号采集流程如图4所示,采集后对信号进行分析和处理的流程如图5所示,即进行平均能量和短时能量分析。
图4 波形采集流程
图5 声音能量分析流程图
实验结果
实验中,通过单线耳塞(耳塞一端要把线露出来,把信号接入)将电脑上正在播放的音乐作为输入信号,接入PCI-6025E数据采集卡中,设置数据采集卡通道为0,选择采样点为50,采样率为8000,得到的实验结果如图6所示。选择电脑中随机播放的音乐作为数据输入,而没有直接用函数信号发生器产生理想的正弦波波形,是因为理想的正弦波是周期规律性变化的,对于短时平均能量或者短时平均幅度,其效果并不会那么明显,从而更容易对数据进行分析。由图6可见,原始声音波形为-0.02~0.02之间,在0~100s的时间内,平均幅度比短时能量的坡度更大、更高,它们集中在0~0.3之间,比原始声音波形的幅度要大,而短时能量的最高点也是不到0.005的幅度,100s之后,短时能量和平均幅度的趋势基本相同,趋于0。
图6 实验结果的数据和曲线
结束语
本文用LabVIEW对声音进行短时能量和平均幅度分析。可以用数据采集卡对输入信号进行采集,将信号做为一种语音段信息,对语音进行识别,并可以从语音中区分出浊音来,还可以用来区分声母与韵母的分界、无声与有声的分界、连字的分界等。用LabVIEW来对声音进行处理,比C语言的编程更加简单,且其界面美观,处理结果也可以直接在前面板中进行描述。