我有很大的音频文件数据库,大约 1-2 秒长。不同的人说不同的话,但在这个过程中我做了一些重复的事情,我必须找到并删除(数据库大约有 100000 个声音,很难听,有一些噪音,或者与人类相似,但不同)。一些重复的音频文件在切割过程中不能移动半秒或更短的时间。
请帮忙。如何在我的音频数据库中找到真正的重复项?
我有很大的音频文件数据库,大约 1-2 秒长。不同的人说不同的话,但在这个过程中我做了一些重复的事情,我必须找到并删除(数据库大约有 100000 个声音,很难听,有一些噪音,或者与人类相似,但不同)。一些重复的音频文件在切割过程中不能移动半秒或更短的时间。
请帮忙。如何在我的音频数据库中找到真正的重复项?
我建议使用对齐算法,例如 DTW(动态时间扭曲)
你可以在这里检查一个好的 Matlab 实现:http ://www.ee.columbia.edu/ln/rosa/matlab/dtw/
然后,您可以对对齐路径求和,以获得两个文件之间的总体距离值。
您可以更改实现以使用不同的功能(但我相信 Dan Ellis 使用的余弦距离是一个很好的通用选项。)