语音信号是一种非平稳的时变信号,它携带着各种信息。一般而言语音处理目的有两种,一种是对语音信号进行分析,提取特征参数,用于后续处理;一种是加工语音信号,如在语音增强中对含噪语音进行背景噪声抑制,以获得相对“干净”的语音。
根据分析参数不同,可分为时域分析和变换域(频域、倒谱域)分析,其中时域分析是最简单、最直观的方法,它直接对语音信号的时域波形进行分析提取主要有语音短时能量和平均幅度、短时平均过零率、短时自相关函数和短时平均幅度差函数等。
实际的语音信号是模拟信号,因此在对语音信号进行数字处理之前,首先要将模拟语音信号是s(t)以采样周期T采样,将其离散化为s(n),采样周期的选择应根据模拟语音信号的带宽来确定,以避免信号的频域混叠失真。
语音信号的预处理一般包括预加重处理和加窗处理
一 预加重处理
对输入的数字语音进行预加重,其目的是为了对语音的高频部分进行加重,去除口唇辐射的影响,增加语音的高频分辨率。一般通过传递函数为 的高通数字滤波器来实现预加重,其中a为预加重系数,一般为0.9<a<1。设n时刻语音采样值为x(n),经过预加重处理后的结果为y(n) = x(n) - ax(n-1),这里a=0.98。matlab代码如下,可以参考。
<span style="font-size:14px;">e=wavread('beijing.wav');
ee=e(200:455); %选取原始文件e的第200到455点的语音,也可选其他样点
r=fft(ee,1024); %对信号ee进行1024点傅立叶变换
r1=abs(r); %对r取绝对值 r1表示频谱的幅度值
pinlv=(0:1:255)*8000/512; %点和频率的对应关系
yuanlai=20*log10(r1); %对幅值取对数
signal(1:256)=yuanlai(1:256);%取256个点,目的是画图的时候,维数一致
[h1,f1]=freqz([1,-0.98],[1],256,4000);%高通滤波器
pha=angle(h1); %高通滤波器的相位
H1=abs(h1); %高通滤波器的幅值
r2(1:256)=r(1:256);
u=r2.*h1';