Mel滤波器横向对比学习笔记

March 17, 2020, 10:05 p.m.

read: 3957

0x00

本节主要讲相关的理论基础

最近学习LPC特征提取时候看到

BFCC 和 语音识别常用的 MFCC 类似,都是利用人类听觉特性,尽管 Bark scale 是根据人耳对响度感知实验确定的刻度,而 Mel scale 是根据人耳对音高感知实验确定的刻度,二者最终分的频带很类似,都是低频分辨率高,高频分辨率低,和线性频率对应关系都近似对数关系,因此我觉得这个工作中 BFCC 替换成 MFCC 特征应该也可以。该工作并没有严格使用 Bark Frequency, 而是使用了和 Opus 编码器一样的频带转换,作者称 Bark Frequency 低频带宽太窄,会导致样本太少参数估计不准。下图中共用了 22 个频带,最高频到 20KHz, 对于 16KHz 采样的语音,最高频只需到 8KHz 即可,因此去掉高频段的 4 个频带,剩下 18 个频带。【2】

看到上图说人耳对低频和高频的敏感度不一致,对于低频更加敏感,对于高频不敏感,根据这个特性,因此提取出的MFCC,BFCC等特征的在频率上分布就如上图所示了,低频的分辨率较高,高频的分辨率叫低(在较大的频率范围内之取了一个特征点),这个特性存在于语音信号处理的方方面面,跟pcm-16bit编码相对应的μ-law 8bit(与之相似的A-law)等都应用了这个特性。

根据清华大学的王东教授再一次分享会上面的分享,在说话人任务中,高频信号也非常重要,那么是不是也意味着在提取Mel特征时,应该做一些改变也去关注一下高频部分的信息呢?

等面积mel滤波器
等高mel滤波器

上图来自于 【1】,分别是等面积梅尔滤波器和等高梅尔滤波器。
由上图可知:
1、不管是等面积梅尔滤波器还是等高梅尔滤波器,低频分辨率高,高频分辨率低。
2、三角滤波会对高频信息的幅度进行一个衰减。
至于三角滤波还是等高梅尔滤波,看实际研究的需要,如果需要子带之间的相对值大小,则衰减有意义,如果不需要子带间的相对大小,则衰减影响不大。【1】

mel域按照设置就是按照人的听觉的特征设计的划分范围, 因此就是按照人的听觉划分的不同的分辨率。



在matlab的文档【3】里面也有相关的讲解,而且讲解的更加清楚。

The mel filterbank linearly spaces the first 10 triangular filters and logarithmically spaces the remaining filters. The individual bands are weighted for even energy. Below is a visualization of a typical mel filterbank.【3】

matlab文档的第一个图通俗易懂的说明了MFCC中Mel滤波器的运行原理,以及如果求得MFCC特征。
每个三角滤波对fft谱进行一次滤波后求sum为一个点,有多少个三角滤波器就能求出多少个点,因此Mel滤波的过程可以一个矩阵相乘来做。常用的40个梅尔滤波器就有40个三角滤波器组成,三角滤波器如上面的插图所示。

0x01

结论
设计一个非Mel域的滤波器可以按照增加在高频的分辨率。设计方案待更新。

参考

【1】语音信号处理(二)—— MFCC详解 - 知乎
【2】LPCNet: Realtime Neural Vocoder - 知乎
【3】Speaker Identification Using Pitch and MFCC - MATLAB & Simulink




Kaldi里面各种窗函数的实现

里面的M_2PI为2π的常数, 直接代入即可值得注意的是里面有一个叫做povey的窗(kaldi作者自己命名的窗),且计算mfcc,fbank等特征的时候默认用的就是这个窗。指定其他窗如hammin…

音频信号的三次样条插值学习笔记

文章标题:音频信号的三次样条插值学习笔记文章内容:对音频信号进行三次样条插值(Cubic Spline Interpolation)以8k插值为16k信号为例,下方为matlab代码 [y, fs]…

此站点由 ASP.NETIIS 驱动 | © 2018-2023 hupeng.me. All Rights Reserved.