【发布时间】:2014-11-14 23:29:31
【问题描述】:
我提取了两个话语的 13 个 MFCC 特征。第一个话语的特征集大小为 11*13,其他为 18*13。那么,如何比较两个特征集来找出这两个词的相似度呢?
如果有人知道,我没有使用任何分类器,标准工具遵循哪种算法来比较 MFCC 特征向量。请建议我,以便我可以实施它。
【问题讨论】:
-
你做到了吗?
标签: speech-recognition text-to-speech mfcc
我提取了两个话语的 13 个 MFCC 特征。第一个话语的特征集大小为 11*13,其他为 18*13。那么,如何比较两个特征集来找出这两个词的相似度呢?
如果有人知道,我没有使用任何分类器,标准工具遵循哪种算法来比较 MFCC 特征向量。请建议我,以便我可以实施它。
【问题讨论】:
标签: speech-recognition text-to-speech mfcc
比较两个不同长度的序列的算法称为“动态时间扭曲”,您可以在 Wikipedia 中找到详尽的描述:
http://en.wikipedia.org/wiki/Dynamic_time_warping
还有许多不同语言的参考实现。
【讨论】:
您可以在 matlab 中尝试以下代码。 在将 mfcc 用于 2 波之后,让我们假设第一波是 mfcc1,第二波是 mfcc2。 代码是:
mfcc1=mfcc1';
mfcc2=mfcc2';
M=simmx(mfcc1,mfcc2);
[p,q,c]=dp(1-M);
v=c(size(c,1),size(c,2))
复制过去的代码并运行 mfcc 值为 mfcc1 和 mfcc2,
我使用了 dtw 逻辑,我取了 mfcc 的逆,然后我取了相似矩阵,我找到了成本最低的路径。 如果完全匹配,则值为 0 如果它接近匹配,你将获得接近零的值 。我希望这个能帮上忙 。 谢谢……
【讨论】:
1-M?你为什么要取c的最后一个元素?