我有几千个声音的语料库。现在我选择一个声音样本S,我想在我的语料库中找到与 S 最相似的声音S '。该应用程序适用于音乐,适用于我正在创作的作品:) 我发现了很多与语音识别相关的问题。这里的问题不同,因为节奏对我来说是最重要的信息,甚至在音色之前。如果S'的长度与S不同,则它一定是它的拉伸版本。
样本在 0.5 秒到 2 秒之间(大约)。我试图计算MFCCs,应用DTW,但我没有得到令人信服的结果。我仍然相信 MFCC 是要走的路,但是我开始认为 DTW 不适合我的目的,因为它删除了节奏信息。例如(如果我理解得很好),DTW 会识别出声音"Puuuum pum tchak"
和"Pum pum tchaaaak"
是相同的。但显然,在音乐方面,它们不是,因为时机至关重要。
那么,如何比较 2 个 MFCC 矩阵,同时保留时间信息?还是我的方法完全错误?
我目前正在研究 procrustes 分析,因为我读到它比较了 2 个形状,消除了缩放,……这对我来说听起来不错。
编辑
使用 DTW,我可能会:
distance("Pum pum tchak", "Pum pum tchaaaak") < distance("Pum pum tchak", "Puuum puuum tchaaak")
换句话说,时间换行并不关心与它"Puuum puuum tchaaak"
完全相同"Pum pum tchak"
但速度较慢的事实。