Esempio n. 1
0
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"
Esempio n. 2
0
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()