def set_name(device_id, voice_path, new_name): print "set " + voice_path + " to: " + new_name new_name = new_name.replace(' ', '') if not new_name.isalnum(): print 'error: SPEAKER_ID must be alphanumeric' return if new_name in db.get_speakers()['U'] or new_name in db.get_speakers( )['M'] or new_name in db.get_speakers()['F']: voice = Voiceid(db, voice_path, single=True) voice.extract_speakers(quiet=True, thrd_n=3) cluster = voice.get_cluster('S0') cluster.set_speaker(new_name) voice.update_db() return try: # assume only one speaker in one sample ww = fm.file2wav(voice_path) file_basename, extension = os.path.splitext(ww) db.add_model(file_basename, new_name) os.remove(file_basename + ".seg") os.remove(file_basename + ".ident.seg") os.remove(file_basename + ".init.gmm") except IOError: print "voice file doesn't exist" except OSError: print "WARNING: error deleting some intermediate files" except TypeError: print "Type error"
from voiceid.sr import Voiceid from voiceid.db import GMMVoiceDB import sys # create voice db db = GMMVoiceDB('voiceDB') print "DB Models:" print db.get_speakers() v = Voiceid(db, sys.argv[1]) v.extract_speakers(False, True) # Set cluster speaker c = v.get_cluster('S1') c.set_speaker('derek') c = v.get_cluster('S6') c.set_speaker('derek') # update db v.update_db() print "DB Models:" print db.get_speakers()