语音信号预处理原理介绍

语音信号的预处理是语音信号进行后续处理的关键步骤,这里简单介绍下有关预处理的一些方法。语音信号的预处理一般包括:预加重、分帧、加窗等。

预加重

语音信号在经过声门激励和口鼻辐射影响时,其功率会有大幅度的衰减,而且语音信号的频谱中高频对应的能量的较小、低频对应的能量较大,所以未经处理的语音信号的高频部分更加难求,预加重的目的就是为了提高高频部分,使得语音信号的频谱变得平坦,进而在整个频带内可以用相同的信噪比求得频谱,便于频谱分析。预加重一般采用的是一阶高通滤波器
H ( z ) = 1 − μ z − 1 H\left( z \right)=1-\mu {{z}^{-1}} H(z)=1μz1
其中, μ \mu μ的取值一般接近于1.

分帧

一般来说语音信号都是非平稳的,而分帧处理使得信号在帧内处于平稳状态便于后续处理。同时,为了使得帧与帧之间过渡平滑,前一帧与后一帧之间会有重叠的部分,称为帧移。帧移与帧长的比值一般取50%。

加窗

语音信号处理中常用的窗为矩形窗和汉明窗,其中矩形窗的表达式为
w ( n ) = { 1 ,        0 ≤ n ≤ N − 1 0 ,            e l s e w\left( n \right)=\left\{ \begin{aligned} & 1,\ \ \ \ \ \ 0\le n\le N-1 \\ & 0,\ \ \ \ \ \ \ \ \ \ else \\ \end{aligned} \right. w(n)={1,      0nN10,          else
汉明窗的表达式为
w ( n ) = { 0.54 − 0.46 cos ⁡ [ 2 π n / ( N − 1 ) ]       0 ≤ n ≤ N − 1 0 ,                                              e l s e w\left( n \right)=\left\{ \begin{aligned} & 0.54-0.46\cos \left[ 2\pi n/\left( N-1 \right) \right]\ \ \ \ \ 0\le n\le N-1 \\ & 0,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ else \\ \end{aligned} \right. w(n)={0.540.46cos[2πn/(N1)]     0nN10,                                            else
基于上述表达式可以得到它们的形状为
在这里插入图片描述

类型主瓣宽度旁瓣峰值最小阻带衰减
矩形窗 4 π / N 4\pi /N 4π/N-13dB-21dB
汉明窗 8 π / N 8\pi /N 8π/N-41dB-53dB

一般来说,窗的形状和大小对后续的分析会有较大的影响。

窗的形状的影响

窗的形状在时域上减小窗口的坡度,使得窗口两端能够平滑过渡到零,进一步减小语音帧的截断效应;在频域上要具有较宽的带宽以及较小的边带。对于矩形窗来说,其在频域上的表达式为
H ( e j ω T ) = sin ⁡ ( N ω T / 2 ) sin ⁡ ( ω T / 2 ) e − j ω T ( N − 1 ) / 2 H\left( {{e}^{j\omega T}} \right)=\frac{\sin \left( N\omega T/2 \right)}{\sin \left( \omega T/2 \right)}{{e}^{-j\omega T\left( N-1 \right)/2}} H(ejωT)=sin(ωT/2)sin(NωT/2)ejωT(N1)/2
第一零点频率为
f 01 = f s / N = 1 / N T s {{f}_{01}}={{f}_{s}}/N=1/N{{T}_{s}} f01=fs/N=1/NTs
其中, f s {{f}_{s}} fs对应的为采样频率, T s {{T}_{s}} Ts对应的为采样周期。而汉明窗的第一零点频率比矩形窗要大很多,但是其在阻带内的衰减相应也要大上很多。
矩形窗以及汉明窗的傅氏变换如下
在这里插入图片描述

未取对数时,也可以看出两种窗的特性,比如矩形窗的主瓣较窄,旁瓣较高;而汉明窗的主瓣较宽,旁瓣较低,这也与上面的分析一致。为了明显地看出两者的区别,将其取对数后可以得到如下结果
在这里插入图片描述
从图中可以看出,汉明窗的主瓣宽度要比矩形窗的主瓣宽度要宽很多,但是汉明窗的旁瓣要比矩形窗低很多。矩形窗的平滑性能较高,但是损失了高频成分,使得波形的细节方面丢失;汉明窗则与之相反。

窗的大小的影响

频率分辨率
Δ f = f s N = 1 N T s \Delta f=\frac{{{f}_{s}}}{N}=\frac{1}{N{{T}_{s}}} Δf=Nfs=NTs1
当采样周期确定时,可以看出,频率分辨率 Δ f \Delta f Δf随着窗口大小 N N N的增加而逐渐减小,也就是说窗口越大,其频率分辨率越高,但是相应地时间分辨率就会降低;同样地,窗口大小减小时,频率分辨率下降,而时间分辨率提高,即时间分辨率和频率分辨率存在着矛盾的关系。另外,对于高斯窗函数来说,其时间分辨率和频率分辨率能取得较好的平衡。
进一步地,如果窗口大小 N N N很大,那么其等效为一个很窄的低通滤波器,当语音信号通过时,高频信息就会被滤除,短时能量随时间变化较小;而 N N N过小时,滤波器的带宽就会增加,短时的能量就会急剧变化,得不到平滑的能量的函数,因此在实际的问题的处理过程中,应当选取合适的窗函数。

代码如下

clear;
close all;
clc;
N=100;
n=(0:N-1);
w_rect = boxcar(N);
w_ham = hamming(N);
figure(1);
stem(n,w_rect);
hold on;
stem(n,w_ham);
xlabel('n');
ylabel('Amplitude');
axis([-10 110 -0.2 1.4]);
grid on;
legend('矩形窗','汉明窗');
N=1024;
w1_fft=fftshift(fft(w_rect,N));
w2_fft=fftshift(fft(w_ham,N));
figure(2);
plot(20*log10(abs(w1_fft)/max(abs(w1_fft))),'linewidth', 2);
hold on;
plot(20*log10(abs(w2_fft)/max(abs(w2_fft))),'linewidth', 2)
grid on;
legend('矩形窗','汉明窗');
xlim([400 624])

参考文献:
[1]赵力. 语音信号处理: 机械工业出版社 2016.

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值