示例#1
0
            "-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:
示例#2
0
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
示例#3
0
    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