在音频文件集合中查找指定的音频模式

时间:2018-10-24 18:30:03

标签: audio

我有1000个音频文件的集合。这些文件是以MP3格式存储的音乐文件,有些长10分钟,有些长15秒。

我在MP3中也有一个1秒长的音频文件。我想从我的收藏夹中找到哪些文件包含此1秒音频文件。这个1秒的音频文件的音频质量可能会比我的收藏品差一点,因为它经过了重新编码,重新压缩等操作,因此,与在我的文件收藏夹中进行简单的二进制搜索相比,我需要一种更智能的比较方法。

如果我想创建一个小程序来搜索我的音频文件集合中的1秒音频模式,我应该读些什么?

编辑:换句话说:我收藏的1000个文件中的每个文件都是一首歌。我正在搜索的这首1秒钟片段是该专辑中某首歌曲的片段,我想知道它取自哪首歌曲。

1 个答案:

答案 0 :(得分:0)

这是使用pydubselect c.id, nvl(tms,max_dt) tms, nvl(col1,mcol1) col1, nvl(col2,mcol2) col2, nvl(col3,mcol3) col3 from calc c inner join (select id, max(tms) max_Dt, max(col1) mcol1, max(col2) mcol2, max(col3) mcol3 from calc group by id) a on a.id = c.id and a.max_dt = tms; 功能来实现的一种方法。

“ ../ so / *。mp3”保存您的音频文件。或者,您可以使用len(audioSegment)遍历各个文件夹。

glob

结果

from glob import glob
from pydub import AudioSegment

for mp3_file in glob("../so/*.mp3"):
  tmpAudioSegment = AudioSegment.from_mp3(mp3_file)
   #Note: pydub len returns in milliseconds.
  print("{}  :  {}".format(mp3_file,len(tmpAudioSegment)/1000))