- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我实现了MFCC算法,想实现BFCC。它们之间有什么区别?是否仅使用另一个函数就足够了而不是频率到 mel (2595 * Math.log10(1 + frequency/700) ) 和 mel 到频率函数 (700 * ( Math.pow(10, mel/2595) - 1) ) 我遵循该代码:MFCC
PS:是否需要更改三角过滤器的代码?
最佳答案
这些只是表示滤波器频率间隔的不同尺度。 MFCC
使用中心频率沿梅尔尺度分布的滤波器,而 BFCC
将使用中心频率沿树皮尺度分布的滤波器。
树皮比例可以简单地表示为:
Bark(f)=13*arctan(0.00076*f)+3.5*arctan((f/(7500))*(f/(7500)))
其中 f
是以赫兹为单位的频率。
尽管您可以使用树皮尺度来表示中心频率间隔,但研究表明,使用 mfcc 或 bfcc 来表示输入语音样本的特征向量对 ASR 系统性能的影响很小。行业标准仍然是 MFCC。事实上,我对 BFCC 的了解并不多。
如果用于计算滤波器系数的代码相对通用并且将中心频率作为输入参数,那么我会说你没问题。但是,最好仔细检查一下。使用 MATLAB 绘制频率响应并检查!您可以查看 [以下论文][1] 以比较 MFCC、BFCC 和均匀标度频率间隔。
更新 1:滤波器的中心频率是带通/带阻滤波器的上限和下限截止频率之间的算术/几何平均值。此外,在给定 Bark 频率的情况下求解 f
的逆方程并不简单。这将是一个需要求解的二次方程。一种方法是为 f 和 Bark 的不同值构建一个表,然后进行表查找。但是我找不到任何指向反向方程式的链接。
[1]: http://148.204.64.201/paginas%20anexas/voz/articulos%20interesantes/front%20end/MFCC/a-comparative-study-of.pdf
关于java - MFCC 和 BFCC 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216095/
我实现了MFCC算法,想实现BFCC。它们之间有什么区别?是否仅使用另一个函数就足够了而不是频率到 mel (2595 * Math.log10(1 + frequency/700) ) 和 mel
我是一名优秀的程序员,十分优秀!