Есть ли у кого-нибудь опыт работы с библиотекой Dejavu для снятия отпечатков пальцев и распознавания звука в Python? Он работает нормально, но меня интересует то, что пока я могу просто распознавать один файл за раз, используя:
print djv.recognize(FileRecognizer, 'path/song_name.mp3')
У кого-нибудь есть идея, как и где создать цикл, который будет выполнять эту команду печати сверху для всех файлов в папке? Я думаю, что цикл должен быть создан где-то здесь:
https://github.com/worldveil/dejavu/blob/master/dejavu/recognize.py
import dejavu.fingerprint as fingerprint
import dejavu.decoder as decoder
import numpy as np
import pyaudio
import time
class BaseRecognizer(object):
def __init__(self, dejavu):
self.dejavu = dejavu
self.Fs = fingerprint.DEFAULT_FS
def _recognize(self, *data):
matches = []
for d in data:
matches.extend(self.dejavu.find_matches(d, Fs=self.Fs))
return self.dejavu.align_matches(matches)
def recognize(self):
pass # base class does nothing
class FileRecognizer(BaseRecognizer):
def __init__(self, dejavu):
super(FileRecognizer, self).__init__(dejavu)
def recognize_file(self, filename):
frames, self.Fs = decoder.read(filename, self.dejavu.limit)
t = time.time()
match = self._recognize(*frames)
t = time.time() - t
if match:
match['match_time'] = t
return match
def recognize(self, filename):
return self.recognize_file(filename)
Я знаю, что это должно быть сделано с помощью модуля glob, но, поскольку я новичок, я не знаю, куда поместить его с этим циклом, поэтому мне не предлагается указать точный файл для распознавания!