Mel倒谱系数:MFCC

Mel频率倒谱系数(Mel Frequency Cepstrum Coefficient)的缩写是MFCC,Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征。

用录音设备录制一段模拟语音信号后,经由自定的取样频率(如8000 Hz、16000 Hz等)采样后转换(A/D)为数字语音信号。由于在时域(time domain)上语音信号的波形变化相当快速、不易观察,因此一般都会在频域(frequency domain)上来观察,其频谱是随着时间而缓慢变化的,因此通常可以假设在一较短时间中,其语音信号的特性是稳定的,通常我们定义这个较短时间为一帧(frame),根据人的语音的音调周期值的变化,一般取10~20ms。

Mel-frequency cepstrum coefficient

作用:和线性预测倒谱系数LPCC一起用于描述语音特征的参数:能量,基音频率,共振峰值等。

详解几个概念:

1.Mel频率:

是模拟人耳对不同频率语音的感知。

人类对不同频率语音有不同的感知能力:对1kHz以下,与频率成线性关系,对1kHz以上,与频率成对数关系。频率越高,感知能力就越差了。因此,在应用中常常只使用低频MFCC,而丢弃中高频MFCC。

在Mel频域内,人对音调的感知能力为线性关系,如果两段语音的Mel频率差两倍,则人在感知上也差两倍。 转换公式:B(f)=1125ln(1+f/700) 其中f为频率,B为Mel-频率。

2.倒谱:

同态处理的结果,分为复数和实数倒谱,常用实数倒谱,是语音识别中的重要系数。

具体过程:傅里叶变换----->对数运算----->傅里叶反变换。

语音的产生用源、滤波器模型来表示,即把声带振动看作激励源e(n),把声道看成一个滤波器h(n),两者在时域进行卷积,得到语音信号s(n)。为了更好地处理语音,则需要分析s(n)以分别得到e(n)和h(n),这个过程称为解卷过程。abs(DFT)、Log、IDFT三步为一个卷积同态信号处理系统,经过这三步之后,倒谱域上
s\'(n)=e\'(n)+h\'(n)
激励源和信道已经变成了相加的关系,这时候通过一个倒滤波器,即图中的Cepstral Liftering,就可以把激励源和信道分开了。

3.提取流程 (摘):

MFCC参数的提取包括以下几个步骤:

1. 预滤波:CODEC(所谓Codec,就是编码-解码器“Coder-Decoder”的缩写。说得通俗一点,对于音频就是A/D和D/A转换。)前端带宽为300-3400Hz(语音能量主要集中在250~4500Hz)。的抗混叠滤波器。

工程测量中采样频率不可能无限高也不需要无限高,因为一般只关心一定频率范围内的信号成份。为解决频率混叠,在对模拟信号进行离散化采集前,采用低通滤波器滤除高于1/2采样频率的频率成份。实际仪器设计中,这个低通滤波器的截止频率(fc) 为:

 

  截止频率(fc)= 采样频率(fs) / 2.56

2. A/D变换:8kHz的采样频率,12bit的线性量化精度。

3. 预加重:通过一个一阶有限激励响应高通滤波器,使信号的频谱变得平坦,不易受到有限字长效应的影响。

许多实际的消息信号,例如语言、音乐等,它们的功率谱随频率的增加而减小,其大部分能量集中在低频范围内。这就造成消息信号高频端的信噪比可能降到不能容许的程度。但是由于消息信号中较高频率分量的能量小,很少有足以产生最大频偏的幅度,因此产生最大频偏的信号幅度多数是由信号的低频分量引起。平均来说,幅度较小的高频分量产生的频偏小得多。所以调频信号并没有充分占用给予它的带宽。因为调频系统的传输带宽是由需要传送的消息信号(调制信号)的最高有效频率和最大频偏决定的。然而,接收端输入的噪声频谱却占据了整个调频带宽。这就是说,在鉴频器输出端噪声功率谱在较高频率上已被加重了。 为了抵消这种不希望有的现象,在调频系统中人们普遍采用了一种叫做预加重和去加重措施,其中心思想是利用信号特性和噪声特性的差别来有效地对信号进行处理。即在噪声引入之前采用适当的网络(预加重网络),人为地加重(提升)发射机输入调制信号的高频分量。然后在接收机鉴频器的输出端,再进行相反的处理,即采用去加重网络把高频分量去加重,恢复原来的信号功率分布。在去加重过程中,同时也减小了噪声的高频分量,但是预加重对噪声并没有影响,因此有效地提高了输出信噪比。

4. 分帧:根据语音的短时平稳特性,语音可以以帧为单位进行处理,实验中选取的语音帧长为32ms,帧叠为16ms。

5. 加窗:采用哈明窗对一帧语音加窗,以减小吉布斯效应的影响。

吉布斯现象Gibbs phenomenon(又叫吉布斯效应): 将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。这种现象称为吉布斯现象。

6. 快速傅立叶变换(Fast Fourier Transformation, FFT):将时域信号变换成为信号的功率谱。

7. 三角窗滤波:用一组Mel频标上线性分布的三角窗滤波器(共24个三角窗滤波器),对信号的功率谱滤波,每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来模拟人耳的掩蔽效应。

8. 求对数:三角窗滤波器组的输出求取对数,可以得到近似于同态变换的结果。

9. 离散余弦变换(Discrete Cosine Transformation, DCT):去除各维信号之间的相关性,将信号映射到低维空间。

10. 谱加权:由于倒谱的低阶参数易受说话人特性、信道特性等的影响,而高阶参数的分辨能力比较低,所以需要进行谱加权,抑制其低阶和高阶参数。

11. 倒谱均值减(Cepstrum Mean Subtraction, CMS):CMS可以有效地减小语音输入信道对特征参数的影响。 
12. 差分参数:大量实验表明,在语音特征中加入表征语音动态特性的差分参数,能够提高系统的识别性能。在本系统中,我们也用到了MFCC参数的一阶差分参数和二阶差分参数。 
13. 短时能量:语音的短时能量也是重要的特征参数,本系统中我们采用了语音的短时归一化对数能量及其一阶差分、二阶差分参数。

总结如下:

Mel频率倒谱系数(MFCC)参数的提取步骤

(1) 预加重(pre-emphasis)

将经采样后的数字语音信号s(n)通过一个高通滤波器(high pass filter): H(z)= 1 – a×z -1 , 0.9  a  1.0 (一般取0.95左右)。经过预加重后的信号为: (n)= s(n)– a×s(n-1)。 因为发声过程中声带和嘴唇的效应,使得高频共振峰的振幅低于低频共振峰的振幅,进行预加重的目的就是为了消除声带和嘴唇的效应,来补偿语音信号的高频部分。

(2) 分帧(frame blocking)

一般取10-20ms为一帧,为了避免窗边界对信号的遗漏,因此对帧做偏移时候,要有帧迭(帧与帧之间需要重叠一部分)。一般取帧长的一半作为帧移,也就是每次位移一帧的二分之一后再取下一帧,这样可以避免帧与帧之间的特性变化太大。

(3) 计算短时能量(energy)

短时能量代表着音量的高低,亦即声音振幅的大小,可以根据此能量的值来过滤掉语音信号中的一些细微噪声。当一帧的能量值低于我们定的门槛值(threshold)时,则将此帧作为静音段(silence)。

(4) 加窗(hamming window)

语音在长范围内是不停变动的,没有固定的特性无法做处理,所以将每一帧代入窗函数,窗外的值设定为0,其目的是消除各个帧两端可能会造成的信号不连续性。常用的窗函数有方窗、汉明窗和汉宁窗等,根据窗函数的频域特性,常采用汉明窗。公式是在加窗范围内,w(n)=0.54-0.46*cos(2*pi*n/(n-1))。

(5) 快速傅立叶变换(FFT transform)

由于语音信号在时域上的变化快速而不稳定,所以通常都将它转换到频域上来观察,此时它的频谱会随着时间作缓慢的变化。所以通常将加窗后的帧经过FFT (Fast Fourier Transform)求出每帧的频谱参数。

(6) 三角形带通滤波器(triangular band-pass filter)

将每帧的频谱参数通过一组N个三角形带通滤波器(N一般为20~30个)所组成的梅尔刻度滤波器,将每个频带的输出取对数,求出每一个输出的对数能量(log energy),k = 1,2,… N。 再将此N个参数进行余弦变换(cosine transform)求出L阶的Mel-scale cepstrum参数。

Mel倒谱系数的更多相关文章

  1. 语音频谱语音信号处理之(四)梅尔频率倒谱系数(MFCC)

    今天一直在查找语音频谱之类的问题,今天正好有机会和大家共享一下. 语音信号处置之(四)梅尔频率倒谱系数(MFCC) zouxy09@qq.com http://blog.csdn.net/zouxy0 ...

  2. 梅尔频率倒谱系数(MFCC) 学习笔记

    最近学习音乐自动标注的过程中,看到了有关使用MFCC提取音频特征的内容,特地在网上找到资料,学习了一下相关内容.此笔记大部分内容摘自博文 http://blog.csdn.net/zouxy09/ar ...

  3. 语音信号的梅尔频率倒谱系数(MFCC)的原理讲解及python实现

    梅尔倒谱系数(MFCC) 梅尔倒谱系数(Mel-scale FrequencyCepstral Coefficients,简称MFCC).依据人的听觉实验结果来分析语音的频谱, MFCC分析依据的听觉 ...

  4. 【VS开发】【智能语音处理】语音信号处理之(四)梅尔频率倒谱系数(MFCC)

    语音信号处理之(四)梅尔频率倒谱系数(MFCC) zouxy09@qq.com http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要 ...

  5. 倒谱(Cepstrum)和线性预测倒谱系数(LPCCs)

    倒谱是表示一帧语音数据特征的一个序列.从periodogram estimate of the power spectrum计算得到的倒谱系数,可以用于基音追踪(pitch tracking),然而, ...

  6. 梅尔倒谱系数特征(Mel-frequency cepstral coefficients,MFCC)

    引言 感知实验表明,人耳对于声音信号的感知聚焦于某一特定频率区域内,而非在整个频谱包络中. MFCC特征是应用非常广泛的语音特征. 语音的MFCC特征是基于人耳感知实验得到,将人耳当成特定的滤波器,只 ...

  7. Atitit 语音识别的技术原理

    Atitit 语音识别的技术原理 1.1. 语音识别技术,也被称为自动语音识别Automatic Speech Recognition,(ASR),2 1.2. 模型目前,主流的大词汇量语音识别系统多 ...

  8. 基于MFCC的语音数据特征提取概述

    1. 概述 语音是人类之间沟通交流的最直接也是最快捷方便的一种手段,而实现人类与计算机之间畅通无阻的语音交流,一直是人类追求的一个梦想. 伴随着移动智能设备的普及,各家移动设备的厂家也开始在自家的设备 ...

  9. 语音识别之梅尔频谱倒数MFCC(Mel Frequency Cepstrum Coefficient)

    语音识别之梅尔频谱倒数MFCC(Mel Frequency Cepstrum Coefficient) 原理 梅尔频率倒谱系数:一定程度上模拟了人耳对语音的处理特点 预加重:在语音信号中,高频部分的能 ...

随机推荐

  1. 【SQLAlchemy】SQLAlchemy修改查询字段列名

    SQLAlchemy问题记录 company price quantity Microsoft Google Google Google 要实现脚本 select price, sum(quantit ...

  2. BZOJ4310 跳蚤(后缀数组+二分答案)

    注意到答案一定是原串的子串,于是考虑造出SA,二分答案是第几小的子串.第k小子串很容易在SA上求出.之后计算使他成为最大子串至少要在几个位置切割,对每个字典序比答案大的后缀,找到所有合法切割位置(求l ...

  3. POJ2135:Farm Tour——题解

    http://poj.org/problem?id=2135 题目大意: 从1到n再回来,每条边只能走一次,问最短路. —————————————————— 如果不告诉我是费用流打死不会想这个…… 我 ...

  4. BZOJ3675 & 洛谷3648 & UOJ104:[Apio2014]序列分割——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3675 https://www.luogu.org/problemnew/show/P3648 ht ...

  5. HDU4757:Tree——题解

    http://acm.hdu.edu.cn/showproblem.php?pid=4757 给一棵有点值的树,每次询问u~v的最短路当中的一个点的点权异或z最大值. 前置技能:HDU4825 前置技 ...

  6. BZOJ1596 [Usaco2008 Jan]电话网络 【树形dp】

    题目链接 BZOJ1596 题解 先抽成有根树 设\(f[i][0|1][0|1]\)表示以\(i\)为根,儿子都覆盖了,父亲是否覆盖,父亲是否建塔的最少建塔数 转移一下即可 #include< ...

  7. Vue项目搭建过程

    环境搭建:mac+nodejs+npm #安装node.js : $ brew install node #安装vue-cil: $ npm install -g vue-cli 注:官网下载安装no ...

  8. Codeforces Round #343 (Div. 2) B

    B. Far Relative’s Problem time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  9. 牛客328B Rabbit的工作(1)

    传送门:https://ac.nowcoder.com/acm/contest/328/B 题意:给你n和k,和一个长度为n的字符串,字符串中的0表示休息,1表示工作,连续工作会损耗连续的体力值,从1 ...

  10. HDU5957 Query on a graph(拓扑找环,BFS序,线段树更新,分类讨论)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5957 题意:D(u,v)是节点u和节点v之间的距离,S(u,v)是一系列满足D(u,x)<=k的点 ...