语音信号特征提取<一>预处理

语音信号是一种常见的时间序列,它以离散信号的形式被编码,然后使用一定的文件格式来存储,例如”.wav”。在当前与语音有关的应用中,出了单纯的录制、不做任何处理之后播放之外,几乎所有的应用都要涉及到语音特征的提取,例如语音文本转换、说话人识别、语音情感识别等等。此外,在进行音乐信息检索(MIR)的时候,也需要类似的处理。
语音特征提取就是从数字信号中提取出与我们所要得到的主要信息相关的内容,一般会从视域和频域两个不同的角度去进行。这些特征可以从不同的角度去分类。

通常,在进行特征提取之前,都要对原始序列做一系列的预处理。哪些预处理是必需的呢?常用的有以下几个:
  1. 声道转换(channel conversion)
  2. 预加重(pre-emphasis)
  3. 重采样(resample)
  4. 组帧(framing)
  5. 加窗(windowing)
    ……
    可以完全按照上述的先后顺序进行这五种预处理方法。下面是详细内容:

1.声道转换

如果所要提取的语音特征不区分声道,则必须将多声道的语音转换成单声道。假设一个多声道语音序列为x(n)有c个声道,c=1,..,C.则每个声道对应的序列分别为:

,要把它转换成单声道语音,只需要求得其算数平均值就行了。
是转换之后的单声道语音序列。
注:当n=1的时候,就是单声道的语音,不需要做转换。

2.预加重

预加重的目的就是只保留一定频率范围的信号。实际上这个过程起到了高通滤波器的作用。具体算法如下:

这里的k可以取0-1之间的任何数字,但是语音处理通常使用0.9-0.97。
当k=0.97的时候,这个过程的幅频特性如下所示:
这里写图片描述

显然,这个一阶高通滤波器对高频信号有着很好的放大作用,而且会大幅度压缩低频信号的幅度;同时,还会产生一个相位滞后的效应,这个对高频信号尤为明显。
一般认为,这个过程会在一定程度上消除"唇齿效应"。

3.重采样

实际中,我们遇到的语音信号可能来自不同的设备,它们在录制的时候所设置的参数也不尽相同,最重要的一个就是采样率。根据奈奎斯特采样定律,采样频率需要大于等于信号本身最大频率分量的2倍,才能保证能够拿采样之后的数据来恢复信号。即:


通常语音的频率范围是50Hz–6kHz,乐器声音的频率范围大概是50Hz–8kHz。因此,可以把语音信号按照16kHz的频率进行重新采样。这样既方便处理,也能在适当地提升后续的处理效率,因为现在的设备的采样率很多都高于16kHz。
怎么进行重采样呢?最简单的方法当然是抽值和插值。
要使采样率变小,就抽值,要增大采样率,就差值。
如对采样率为22050Hz的语音信号进行重采样将最终的采样率变成16000Hz,效果如下图所示。
这里写图片描述

4.组帧

虽然数字语音信号是一个随时间变化的随机序列,从全局来看它并不是一个平稳随机过程。但是,在较短的时间内,可以认为它是一个近似平稳的随机过程。而一般认为这段时间的的长度是25--32ms。也就是说,可以按照25--32ms的帧长,把一个离散序列进行分组,每一组就是一帧。联想一下视频里面的帧,就不难理解了。
此外,为了保证语音信号的连续性,一般不让相邻两帧之间还要有一定的重叠。重叠部分一般占帧长的1/3--1/2。
如下图所示,采样率为16000Hz的语音序列:

,按照帧长32ms,重叠率75%来进行组帧,得到了1128帧,如下图:
这里写图片描述

5.加窗

加窗与组帧一起使用。对每一帧,选择一个窗函数,窗函数的宽度就是帧长。常用的窗函数有矩形窗、汉明窗、汉宁窗、高斯窗等。
以宽度为512的汉明窗为例:


宽为512的汉明窗如下:
这里写图片描述
加窗就相当于把每一帧里面对应的元素变成它与窗序列对应元素的乘积。
以上就是在时间域对语音信号所进行的一些预处理。
如有不准确的地方,还请大家指出来。
下一篇:时域特征

参考文献:
[1]Eyben F. Real-time speech and music classification by large audio feature space extraction[M]. Springer, 2015.
[2]Alan V. Oppenheim, Ronald W. Schafer. Discrete-Time Signal Processing (3rd Edition)


版权声明:本文为u011108244原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。