将K-means应用于ASR的MFCC系数

时间:2017-03-11 17:37:22

标签: speech-recognition k-means speech mfcc

我将音频信号分成20ms帧,重叠10ms。结果我有500帧。我已经计算了每帧的MFCC系数。我想使用K-MEAN算法为每个帧进行矢量量化。

每帧有16个MFCC系数(矢量长度:16)。现在K-MEAN需要2个向量来形成聚类图(一个沿着X,一个沿着Y),但是我只有一个向量(每帧16个MFCC系数)。

那我该怎么办?我是否采用相邻帧并将K均值应用于相邻帧?

2 个答案:

答案 0 :(得分:0)

  

现在K-MEAN需要2个矢量来形成聚类图(一个沿着X,一个沿着Y)

事实并非如此,kmeans算法可以聚类任意数量的向量。

  

那我该怎么办?我是否采用相邻的框架并将K-mean应用于相邻的框架?

你有500个向量,你可以为所有这些向量应用kmeans。

  

例如,在MATLAB中,输入向量X必须是kmean函数的2xM矩阵;

没有这样的要求

  

我选择哪种载体在K-MEAN中形成簇?我如何对每个向量应用kmeans?

同样,您可以像documentation中一样采用所有向量。

     [idx,C] = kmeans(X,num_clusters);

X是500x13的矩阵。

  

在看了一堆教程之后,通常i / p是2-D Kmeans空间的两个数据集(X1,X2)。

如果您是上述文档,则x1和x2是群集的示例。还有一个集群x3。

  

我怀疑MFCC的情况,我的X1,X2应该是什么?

例如,将存在与音素相对应的群集。如果您有20个音素,则会在20个质心上聚类,每个音素对应于音素。如果你有足够的数据,你也可以在256个质心上聚类,然后聚类将对应于语音中的抽象共同特征值。

答案 1 :(得分:0)

我在这里看到两种可能性: 1)您想要量化您的mfcc特征(例如,将特征分成强,中,小的振幅组)。在这种情况下,您希望每帧运行并插入要素向量,因为每个要素都是k-means算法的单个点。如果您绝对必须(并且您没有)拥有mx2输入向量,则只需为每个要素添加1(MFCC = [MFCCS,1(大小(MFCC,1),1)];)

2)您想要找到彼此相似的帧组。在这种情况下,kmeans算法的每个“点”都是单帧的所有MFCC特征。这就是尼古拉所说的。

干杯, 丹