def main(): parser = argparse.ArgumentParser(version="1.0", prog="Voice Recognition") parser.add_argument("-a", "--add", action="store_true", help="Add a new source") parser.add_argument("audio", type=str, help="Name of the audio file (*.wav)") args = parser.parse_args() audio = HOME_FOLDER + args.audio db = GMMVoiceDB(HOME_FOLDER) if args.add: name = str(time.strftime("%d%m%Y%H%M%S")) db.add_model(audio.split(".")[0], name) else: v = Voiceid(db, audio) v.diarization() dic = db.get_speakers() dist = [] d2u = {} for gender in dic: users = dic[gender] for u in users: dist.append(db.match_voice(audio, u, gender)[u]) d2u[dist[-1]] = u dist.sort(None, None, True) if (dist[0] - dist[1] + CEIL) > EPS: return d2u[dist[0]] else: return "unkonwn"
def main(): parser = argparse.ArgumentParser(version='1.0',prog='Voice Recognition') parser.add_argument("-a", "--add", action="store_true", help="Add a new source") parser.add_argument("audio", type=str, help="Name of the audio file (*.wav)") args = parser.parse_args() audio = HOME_FOLDER+args.audio db = GMMVoiceDB(HOME_FOLDER) if args.add: print('Adding User...') name = str(time.strftime("%d%m%Y%H%M%S")) db.add_model(audio.split('.')[0], name) print('User '+name+' Added!') else: print('Recognition...') v = Voiceid(db, audio) v.diarization() dic = db.get_speakers() dist = [] d2u = {} for gender in dic: users = dic[gender] #print('Gender: ',gender) for u in users: #print(db.match_voice(audio, u, gender)) dist.append(db.match_voice(audio, u, gender)[u]) d2u[dist[-1]]=u dist.sort(None, None, True) if (dist[0]-dist[1]+CEIL)>EPS : print(d2u[dist[0]]) else: print('unkonwn') print "Done!"
def recognition(): global audio, db, label if audio != None: print 'Comparing...' #dic = db.get_speakers() v = Voiceid(db, audio+'.wav') #v.extract_speakers() v.diarization() dic = db.get_speakers() dist = [] d2u = {} for gender in dic: users = dic[gender] print('Gender: ',gender) for u in users: print(db.match_voice(audio+'.wav', u, gender)) dist.append(db.match_voice(audio+'.wav', u, gender)[u]) d2u[dist[-1]]=u print('--------------') print("Best Speaker (Own)") dist.sort(None, None, True) print( (dist[0]-dist[1]+CEIL),EPS,dist ) if (dist[0]-dist[1]+CEIL)>EPS : print(d2u[dist[0]]) #print(dic) print('--------------') print("Best Speaker") print("Audio: ",audio.split('/')[-1]) v.extract_speakers(False, True) for c in v.get_clusters(): cluster = v.get_cluster(c) print(cluster.get_best_speaker() ) print('------------') ''' print 'Comparing...' v = Voiceid(db, audio+'.wav') #s = StringIO.StringIO() #with s as sys.stdout: v.extract_speakers(False, True) #with open('output.txt','w') as sys.stdout: for c in v.get_clusters(): cluster = v.get_cluster(c) user = cluster.get_best_speaker() print('------------') if user != "unknown": print("Best Speaker: %s" % (user) ) print("Speaker: %s" % (cluster.get_speaker()) ) print("Gender: %s" % (cluster.get_gender()) ) print("Distance: %s" % (cluster.get_distance()) ) print("Mean: %s" % (cluster.get_mean()) ) print("Dist. from mean: %s" % (cluster.get_m_distance()) ) print("Best five speakers: " % (cluster.get_best_five()) ) else: print("User Unknown") print("Gender: %s" % (cluster.get_gender()) ) print("Distance: %s" % (cluster.get_distance()) ) print("Best five speakers: " % (cluster.get_best_five()) ) print('------------') #sys.stdout = sys.__stdout__ #labelB["text"] = "Users: " + str(listName)''' print "Done!" else : print 'Record audio first!'
#v = Voiceid(db, '../Test_set_all/Monica-Bellucci-interview.mp3') #v = Voiceid(db, '../Test_set_all/Pasolini1971.mp3') #v = Voiceid(db, '/home/felix/Desktop/u/facciamoiconti.mp3') #v = Voiceid(db, '/home/felix/Desktop/u/facciamoiconti/S32.wav') #v = Voiceid(db, '/Users/labcontenuti/Desktop/voiceid/adaltavoce/voci/FabrizioGifuni-promessisposi-p1.wav') #v = Voiceid(db, '/Users/labcontenuti/Desktop/voiceid/adaltavoce/test/Piero_Baldini##mobyDick01_1sec.wav') #v = Voiceid(db, '/Users/labcontenuti/Desktop/voiceid/adaltavoce/test/Piero_Baldini##mobyDick01_3sec.wav') #v = Voiceid(db, '/Users/labcontenuti/Desktop/voiceid/DataSetVideolinaVoci/Giacomo_Mameli/2/Giacomo_Mameli##1-1.wav') v = Voiceid(db, '/Users/labcontenuti/Documents/workspace/activevoice/audio_test/2sec.wav') #v = Voiceid(db, '/Users/labcontenuti/Desktop/voiceid/DataSetVideolina_FIC02/Fadda_Paolo/Paolo_Fadda##6-30s.wav') #v = Voiceid(db, '//Users/labcontenuti/Music/facciamo_i_conti_internet.wav') v.diarization() print v v.extract_cluster() print v.get_clusters() exit() v.extract_speakers_without_diarization() #v.extract_speakers() for c in v.get_clusters(): #print "c ", c cluster = v.get_cluster(c) print "cluster.wave ", cluster.wave print "cluster.get_name ", cluster.get_name() print "\n\n\n\n\n\n" list_seg=cluster.get_segments() for seg in list_seg: