我有一个500,000个用户上传的音频文件的数据库,包括:
虽然音频文件的标题不一致,有时甚至是不正确,但标题却不正确。
[许多重复项之间存在细微差异:标题差异,音频差异(长度,压缩,音高等)。我想将每个音频文件放入一个与其对应的类别。 “它是什么”是指基于音频的那个音频文件中最相关的标题(不是标题)。
例如,“ Michael Jackson-Thriller”可能有30种不同的音频文件,它们的长度,压缩级别,标题不同,等等。这些都应归为一类,并带有正确格式的歌曲标题。
某些音频文件将无法以编程方式正确地命名。例如,此视频https://www.youtube.com/watch?v=ee925OTFBCA的音频在数据库中将有很多实例,但是我认为那里没有能够对其进行标题的API。在这种情况下,只要仍可以将它们匹配为相似的发音并将其放在一个组中,就可以从剪辑已经具有的标题中选择一个标题。我想我可以通过找出与所有这些人“最相似”的标题(例如,最高的平均Sørensen-Dice系数)来做到这一点。
还有一部分用户记录的剪辑,由于它们仅存在于此数据库中,因此无法以编程方式对其进行标题/分组。
作为不一致的头衔的例子,贝多芬的《第六交响曲》可能有很多不同的名字,例如:
为了对这些文件进行分类,我计划对每个文件执行以下操作:
这样做的目的是使数据库更小,更好地分类,以便使用更少的存储空间,并使最终用户更容易搜索和导航。
现在,搜索某些音频片段会打开数百个相同的文件,但会有细微的差异。这是我们要解决的主要问题。
我有三个问题:
获得整个音频文件的简要描述通常称为“音频指纹”。
有很多解决方案。 MusicBrainz.org文档的good overview包括商业产品和开源项目。他们自己的最新方法(也可以作为开源使用)是AcousticId。