"-ss", inicio, # incio "-t", duracion_corte, # duracion "-acodec", "copy", # mantener codec "-y", #yes to all "-f", "wav", "-"] # salida p = subprocess.Popen(ffmpeg, shell=False, stdout=subprocess.PIPE) audio = p.communicate()[0] audio = np.fromstring(audio, np.int8) print "hasta aqui" # nombre del archivo mr, el del segundo hilo nombre = audio_file + "_" + inicio + ".wav" song = djv.recognize(FileRecognizer, audio, 11098) #buscar el fingerprint siguiente a ver si coincide (busqueda de limite superior) try: if song["confidence"] > 45: djv2 = Dejavu(config) #sid = id del fingerprint (mw) del primer hilo reconocido print song sid = song["song_id"] #guardamos la informacion del fingerprint siguiente al reconocido djv2.songs = djv2.db.get_song_by_id(sid + 1) djv2.songnames_set = set() # to know which ones we've computed before for song2 in djv2.songs:
from dejavuCAPTOR.recognize import FileRecognizer """Un vector_audio de tantas posiciones como segundos tenga la cinta a analizar, en cada posicion una lista de posibles anuncios (objeto dejavu) vector_audio[lista_posibles_anuncios[anuncio,anuncio...],lista_posibles_anuncios[...],...]""" anuncio = Dejavu( config={ "database": {"host": "127.0.0.1", "user": "******", "passwd": "12345", "db": "captor2"}, "database_type": "mysql", } ) vector_audio = [] for audio in glob.glob("C:\Users\Mario\Desktop\hito2\cortes3/*.wav"): anuncio_reconocido = anuncio.recognize(FileRecognizer, audio) posicion = (audio.split("_")[1]).split(".")[0] vector_audio.append(anuncio_reconocido) print "{}\n".format(posicion) print "{}\n".format(audio) with open("C:\Users\Mario\Desktop\hito2/resultados3.txt", "a") as result: for segundo in vector_audio: result.write("{}\n".format(segundo)) """ lista = [0] * 10 vector = 'hola' print lista
def longRunning(self): """This runs in a different thread. Sleep is used to simulate a long running task.""" # sleep(3) # wx.CallAfter(self.gauge.SetValue, 20) # sleep(5) # wx.CallAfter(self.gauge.SetValue, 50) # sleep(1) # wx.CallAfter(self.gauge.SetValue, 70) # sleep(10) # wx.CallAfter(self.onLongRunDone) audio_file = 'C:\Users\Mario\Desktop\hito2\\15042015SER\prueba\\20150415060004.wav' config = { "database": { "host": "127.0.0.1", "user": "******", "passwd": "12345", "db": "captor4", }, "database_type": "mysql" } djv = Dejavu(config) lista_final_anuncios = [] wav = wave.open(audio_file, "r") (nchannels, sampwidth, framerate, nframes, comptype, compname) = wav.getparams() inicio_grabacion = extraer_tiempo_grabacion(audio_file) for i in np.arange(0, nframes, framerate * SOLAPE): lista = [] wav.setpos(i) frames = wav.readframes(TAMANHO_CORTE * framerate) s = np.fromstring(frames, np.int16) s = s[:] # try: anuncio = djv.recognize(AudioRecognizer, s) if anuncio["confidence"] > MEAN_5SECS_CONFIDENCE * 0.05: print anuncio longitud_anuncio = anuncio["len"] t = datetime.timedelta( seconds=int(i / 44100)) + inicio_grabacion # tiempo al inicio del trozo a analizar t2 = t - datetime.timedelta(seconds=np.ceil(anuncio["offset_seconds"] / 2)) # inicio del anuncio t3 = t2 + datetime.timedelta(seconds=longitud_anuncio) # final del anuncio if lista_final_anuncios: if abs(t2 - lista_final_anuncios[-1]["inicio"]) < datetime.timedelta(seconds=2) and anuncio[ "confidence"] > lista_final_anuncios[-1]["confidence"]: lista_final_anuncios.pop(len(lista_final_anuncios) - 1) lista.append(["id", anuncio["song_id"]]) lista.append(["nombre", anuncio["song_name"]]) lista.append(["inicio", t2]) lista.append(["fin", t3]) lista.append(["confidence", anuncio["confidence"]]) myDict = dict(lista) lista_final_anuncios.append(myDict) elif abs(t2 - lista_final_anuncios[-1]["inicio"]) > datetime.timedelta(seconds=2): lista.append(["id", anuncio["song_id"]]) lista.append(["nombre", anuncio["song_name"]]) lista.append(["inicio", t2]) lista.append(["fin", t3]) lista.append(["confidence", anuncio["confidence"]]) myDict = dict(lista) lista_final_anuncios.append(myDict) else: lista.append(["id", anuncio["song_id"]]) lista.append(["nombre", anuncio["song_name"]]) lista.append(["inicio", t2]) lista.append(["fin", t3]) lista.append(["confidence", anuncio["confidence"]]) myDict = dict(lista) lista_final_anuncios.append(myDict) # except Exception, e: # print Exception, e # pass # print myDict return lista_final_anuncios