zoukankan      html  css  js  c++  java
  • Mel-Frequency-Warping

    好记性,不如烂笔头!读源码,做总结。 http://kaldi-asr.org  http://kaldi-asr.org/doc/classkaldi_1_1MelBanks.html#a28c12e3d92fbb958fadef3b3688ac5be   

    本文重点总结一下,MelBanks()    VtlnWarpMelFreq() : 通过改变滤波器频率密度,实现对某个频段的信号加强。

    本文使用Mel频率计算公式 : mel_frequency = 1127.0 * ln(1.0 + frequency / 700.0)        (还有一个计算公式为 2595.0 * lg(1.0 + frequency / 700.0), 计算结果只有细微差别)

                                                       图一

    高低通截止频率:low_freq = 40, high_freq = 7800 ; 滤波器个数: num_mel_bins = 23 ; vtln_low = 1000, vtln_high = 5000,frame_length = 14 (ms), sample_frequency = 16000

    => fft_bin_width = 62.5, mel_freq_delta = 114.6333, window_length_padded = 256

    不做弯折(para_warp = 1.0)

    生成在梅尔频域等频带宽度的23个滤波器,相当于在在图一中y轴等距,那么在x轴上(现实频域)的效果就是越靠后的滤波器现实频带越宽,由于滤波器上点是根据现实频率等距跳动,所以最后效果就是约往后的滤波器上点越多,这些点的取值范围都是(0,1)

                                                     图二

    弯折(para_warp = 2.0 > 1.0)

    滤波器越往后,梅尔频域带宽越宽,那么现实频域这种带宽增长就更猛了,相较于para_warp=1.0,靠前滤波器,频带宽度变窄,点变少,靠后滤波器,频带宽度变宽,点变多。(应该具体值分的更细一些的。。。。。)

                                                   图三

    弯折(para_warp = 0.5 < 1.0)

    相较于para_warp=1.0,靠前滤波器,频带宽度变宽,点变多,靠后滤波器,频带宽度变窄,点变少。(应该具体值分的更细一些的。。。。。)

                                                   图四

    VtlnWarpMelFreq()功能

    参数列表:vtln_low_cutoff, vtln_high_cutoff, low_freq, high_freq, vtln_warp_factor, freq

    vtln_low_cutoff = 3000
    vtln_high_cutoff = 6000
    low_freq = 1000
    high_freq = 7000

    注:图五、图六,橘色的直线为 y = x
    para_warp > 1

     

                                                       图五

    拐点:low_freq、vtln_low(第二段,第三段的斜率有点接近,在这幅图里看不出区别,尴尬。。)、vtln_high、high_freq

    para_warp < 1

                                                     图六

    拐点:low_freq、vtln_low、vtln_high、high_freq(第三段,第四段的斜率有点接近,在这幅图里也看不出区别,尴尬。。)

    总结:当warp > 1 , 加强的实际是  vtln_high < freq < high_freq 部分,warp < 1 , 加强的是low_freq < freq < vtln_low 部分

  • 相关阅读:
    关于近期
    Tips on Importons and Irradiance Particles in mental ray
    给她的歌
    Fatal In Code Generation Of Visual C++
    kdtree vs octree
    疯子的胜利——记6.18毕业晚会
    转凉
    事件与委托的匿名方法使用方法示例
    VS2008使用技巧
    硬链接和软连接的区别
  • 原文地址:https://www.cnblogs.com/bingdongwuchi/p/7084151.html
Copyright © 2011-2022 走看看