2.2.3 语音信号的效果显示
效果显示部分主要采用试听和观察图形。通过MATLAB的指令,将处理后的信号进行试听。通过滤波前后的波形图和频谱图观察滤波后的效果。对比比较强烈,显示效果比较好。
3. 语音信号处理的基本知识
3.1 语音信号处理理论依据
3.1.1 采样定理
在进行数模的转换过程中,需要满足公式(1)
(1)
经过采样之后的信号才能完好或者完整地保留原始采集到的语音信号中的信息,这样的采样定理又被称为奈奎斯特采样定理[7]。
3.1.2 采样频率
采样频率是指录音设备一秒钟的时间对对象进行抽样,是描述声音样本各项指标的参考标准。包括语音信号的语言,最好是普通话,确保播放的效果每个人都能听懂。采样频率越高,单位时间内录音设备得到的声音样本数据就越多,这样得到的效果能够对声音波形的表示更加的精确。采样和声音在频率之间也有一定的关系,根据奈奎斯特定理可知,只有采样的频率至少高于声音信号最高频率的两倍时,才可以保证采集到的数字信号失真较少,才能做到声音包含全部的语音信息。否则会出现采样信号频谱混叠的现象,不可能无失真地恢复原连续信号[8]。这就是说采样频率在录音设备采集、记录和还原声音文件的过程中都是很重要的一项技术指标。
3.1.3 采样位数
采样位数又叫采样值或取样值,它是用来衡量声音波动变化的参数。这个参数是指录音设备在采集和播放声音文件时需要使用的二进制位数。理论上来说,采样位数越多则获取的语音信号就会越精确,越完整。
3.2 语音的录入与打开
在MATLAB中,指令[x,fs,bits]=wavread(‘*.wav’);用于读取语音,采样值放在向量x中,fs表示采样频率(Hz),bits表示采样位数。sound(x,fs,bits)用于对声音的回放[9]。
打开MATLAB7.8.0(R2009a)软件,其输入界面如图2所示。
图2 输入界面
图2为输入界面,MATLAB中最主要的部分是指令输入窗口,是完成各种指令的输入的地方。右上角是工作区,里面包含着在输入指令过程中产生并保存在那里的工作对象。右下角是历史工作窗口,可以从中找到自己已经使用过的指令,方便再一次使用。左侧的窗口一般没用,仿真过程中可以将其放到最小,上面包括菜单栏,工具栏,其中最有用的是帮助键,可以来查询想要使用的指令的格式,因为在MATLAB中,每个指令的格式都是有严格要求的。
3.3 时域信号的FFT分析
FFT即快速傅立叶变换,是离散傅氏变换的升级算法。在MATLAB的信号处理工具箱中函数FFT用于此功能的实现。根据FFT可以知道信号序列中含有哪些频率成分以及各频率成分的振幅[8]。其调用格式为y=fft(x)。x是将要进行处理的语音信号,y是经过傅立叶变换的语音信号。同时必须保证x和y具有相同长度[10]。从而得到语音信号对频谱信息。
3.4 噪声的设计
噪声,就是能够使人们心情和身体不舒服的声音。噪声存在对范围很广泛。本文主要针对的是手机通话环境中的背景噪声来进行处理。通过randn指令添加随机噪声或者是其他的噪声,来模拟手机通话环境中的不同场景。然后将这些添加噪声的语音信号通过滤波器,得到滤除噪声的语音信号,这样就可以实现滤波的目的——去噪。
3.5 滤波器的比较及设计原理
滤波器分为模拟滤波器和数字滤波器两种。模拟滤波器有很多典型的滤波器,他们都各有特点。例如:巴特沃斯滤波器具有单调下降的幅频特性,切比雪夫滤波器的幅频特性在通带或者阻带有波纹特性,可以提高选择性[7]。同时,选取IIR还是FIR滤波器,也要根据实际情况来选定。本次论文主要应用的是数字滤波器的几种形式来对采集的信号进行滤波,优点是运算比较快速,程序比较简便,可以节省时间。FIR滤波器的设计方法有窗函数法,最优法等。窗函数法的重点就在于选择某种恰当的窗函数和一种合适的理想滤波器[11]。 基于MATLAB语音信号处理(语音信号处理的综合仿真)(3):http://www.751com.cn/tongxin/lunwen_331.html