zoukankan      html  css  js  c++  java
  • 梅尔倒谱系数

    MFCC梅尔倒谱系数是说话人识别、语音识别中最为常用的特征。我曾经对这个特征困惑了很久,包括为什么步骤中要取对数,为什么要最后一步要做DCT等等,以下将把我的理解记录下来,我找到的参考文献中最有价值的要数【1】了。是CUM一个教授做的PPT。

    整个流程如下:

    时域的波形图如下

    图1. 时域波形图

    第一步

    获得语谱图,语谱图是一个非常有力的工具,因为人耳就是进行的频率分析。

    图2. 语谱图

    第二步

    经过梅尔滤波器组。为什么要经过梅尔滤波器组?答:上面的图需要降维。根据生理学的发现,上面的语谱图实际上可以用经过一系列的梅尔滤波器组来进行降维。

    图3. 梅尔滤波器组

    滤波后的图像如下,假如一共有24个滤波器组,那么在下图在纵向上就降成了24维。

    图4. 经过梅尔滤波器组后的频谱图

    第三步

    取对数。为什么要取对数?解答如下。

    人类的发声系统发出的信号是由基音信息与声道信息卷积而成。记作"s卷积v"

    经过语谱图FFT变换后,卷积变成了乘法。即"FFT(s)*FFT(v)"。

    取对数后,乘法变成了加法。即"Log(FFT(s))+Log(FFT(v))"

    把卷积信号转换成加性信号,这就是取FFT和对数的原因。

    图5. 取对数后

    第四步

    DCT(离散余弦变换)

    在上一步中,我们成功地把基音信息与声道信息变成了加性的。那么如何分离呢?它们有如下性质:

    频谱图中(注意是一帧FFT变换内)

    (1)基音信息在频域是快速变化的。

    (2)声道信息在频域是缓慢变化的。

    因此再做一次DCT可以将其分离。我们称之为"倒谱域"。因此倒谱域的低频部分刻画了声道信息,高频部分刻画了基音信息。为什么是DCT而不是FFT?因为DCT变换之后的值仍为实数,因此更方便。

    图6. DCT变换后

    第五步

    对DCT变换后的谱图进行降维。

    (1)去掉第0维,因为第0维只是图5的均值,并不包含任何信息。

    (2)去掉13-24维,因为DCT本身就是用来去相关的,而图5没有太高频的成分,因此可以去掉。

    图7. 降维后的MFCC谱图

    图7就是最终的MFCC特征了!

    小结

    1. MFCC特征适用于说话人分类、语音识别,并且已经有了较好的识别结果。

    2. 虽然MFCC是个不错的特征,但是同时也丢掉了很多细节(图2至图4的过程),因此并不是非常完美。

    参考资料

    【1】http://download.csdn.net/detail/richard2357/6664585 (CMU的PPT,写的非常详细,我看过这个之后才真正理解)
    ---------------------
    作者:richard2357
    来源:CSDN
    原文:https://blog.csdn.net/richard2357/article/details/17147249
    版权声明:本文为博主原创文章,转载请附上博文链接!

    萍水相逢逢萍水,浮萍之水水浮萍!
  • 相关阅读:
    Android中使用File文件进行数据存储
    Android 获取 json
    Android服务之Service
    php
    宝塔数据库连接不上
    idea中使用github
    elasticjob 当当的分布式定时任务管理
    定时任务规则生成器
    MySQL中group_concat()函数的排序方法
    mysql 中关于怎么写 row_number()over(order by) 类似的功能支持
  • 原文地址:https://www.cnblogs.com/AIBigTruth/p/10315044.html
Copyright © 2011-2022 走看看