Найти указанный аудио шаблон в коллекции аудио файлов - PullRequest
0 голосов
/ 24 октября 2018

У меня есть коллекция из 1000 аудио файлов.Эти файлы представляют собой музыкальные файлы, хранящиеся в формате MP3, некоторые из них имеют длину 10 минут, некоторые - 15 секунд.

У меня также есть один аудиофайл длиной 1 секунда, также в формате MP3.Я хотел бы узнать, какие файлы из моей коллекции содержат этот 1-секундный аудиофайл.Этот 1-секундный аудиофайл может иметь немного худшее качество звука, чем моя коллекция, потому что он был перекодирован, повторно сжат и т. Д., Поэтому мне потребуется более интеллектуальный метод сравнения, чем простой двоичный поиск по моей коллекции файлов.

Что мне следует прочитать, если я хотел бы создать небольшую программу для поиска в моей коллекции аудиофайлов по этой 1-секундной звуковой схеме?

Редактировать : Другими словами:Каждый файл в моей коллекции из 1000 файлов - это песня.Этот 1-секундный фрагмент, который я ищу, является фрагментом некоторой песни из этой коллекции, и я хотел бы знать, из какой песни она взята.

1 Ответ

0 голосов
/ 24 октября 2018

Вот один из способов сделать это, используя len(audioSegment) особенность pydub .

"../ 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 sec
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...