1
帮助计算/理解MFCC:梅尔频率倒谱系数
我一直在网上阅读点点滴滴,但我无法将它们拼凑在一起。我对信号/ DSP有一定的背景知识,应该足以满足此要求。我有兴趣最终使用Java对该算法进行编码,但是我还不完全了解它,这就是为什么我在这里(它算作数学,对吗?)。 我认为这与我的知识差距一起起作用。 从您的音频语音样本开始,比如说一个.wav文件,您可以将其读入数组。把这种阵列,其中Ñ范围为0 ,1 ,... ,ñ - 1(所以Ñ样品)。这些值对应于我猜想的音频强度-振幅。x[n]x[n]x[n]nnn0,1,…,N−10,1,…,N−10, 1, \ldots ,N-1NNN 将音频信号分成10ms左右的不同“帧”,假设语音信号是“固定的”。这是量化的一种形式。因此,如果您的采样率为44.1KHz,则10ms等于441个采样或值。x[n]x[n]x[n] 进行傅立叶变换(为计算起见,使用FFT)。现在,这是在整个信号上还是在每个单独帧上完成的?我认为这是有区别的,因为一般来说,傅立叶变换会查看信号的所有元素,因此F(x [ n ] )≠ F(x 1 [ n ] )与F(x 2 [ n ] )与... F结合(x N [ n ] )其中xx[n]x[n]x[n]F(x[n])≠F(x1[n])F(x[n])≠F(x1[n])\mathcal F(x[n]) \neq \mathcal F(x_1[n])F(x2[n])F(x2[n])\mathcal F(x_2[n])…F(xN[n])…F(xN[n])\ldots \mathcal F(x_N[n])是较小的帧。无论如何,假设我们进行了一些FFT,最后剩下 X [ k ]。xi[n]xi[n]x_i[n]X[k]X[k]X[k] 映射到梅尔刻度,并进行记录。我知道如何将常规频率数字转换为梅尔刻度。对于每个的X [ ķ ]:(以下简称“x轴”如果你让我),你可以在这里做公式http://en.wikipedia.org/wiki/Mel_scale。但是,“ …