我将音频信号分成20ms帧,重叠10ms。结果我有500帧。我已经计算了每帧的MFCC系数。我想使用K-MEAN算法为每个帧进行矢量量化。
每帧有16个MFCC系数(矢量长度:16)。现在K-MEAN需要2个向量来形成聚类图(一个沿着X,一个沿着Y),但是我只有一个向量(每帧16个MFCC系数)。
那我该怎么办?我是否采用相邻帧并将K均值应用于相邻帧?
答案 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特征。这就是尼古拉所说的。
干杯, 丹