我收集了1000个音频文件。这些文件是以MP3格式存储的音乐文件,有些是10分钟长,有些是15秒长。
我也有一个音频文件,是1秒长,也在MP3。我想从我的集合中找到包含这个1秒音频文件的文件。这个1秒音频文件的音频质量可能比我的集合稍差一些,因为它被重新编码、重新压缩等等,所以我需要一些比简单的二进制搜索更智能的比较方法。
如果我想创建一个小程序来搜索这个1秒音频模式的音频文件集合,我应该读些什么呢?
编辑:换句话说,我收集的1000个文件中的每个文件都是一首歌。我正在寻找的这个1秒片段是这个收藏中一些歌曲的片段,我想知道它是从哪首歌中摘取的。
发布于 2018-10-24 19:24:01
这里有一种方法可以使用len(audioSegment)的比杜布羽毛来完成它。
“./so/*.mp3”保存您的音频文件。或者您可以使用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)) 结果
../so/Bubbles.mp3 : 10 sec
../so/Drone Dark Suspense 2.mp3 : 30 sec
../so/Sci-Fi Sweep.mp3 : 8 sec
../so/Pinball Machine.mp3 : 22 sec
../so/Title Flange Sweep Hit.mp3 : 3 sec
../so/Whale Sounds.mp3 : 6 sec
../so/Ambient Hit.mp3 : 2 sec
../so/Golf Hit 3.mp3 : 1 sechttps://stackoverflow.com/questions/52975766
复制相似问题