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"
class AudioAnalyzer(): def __init__(self): """ Init voice model """ self._config = ConfigParser.ConfigParser() self._config.read("config.ini") dbPath = os.getcwd() + "/" + self._config.get("Paths", "voiceDir") self._db = GMMVoiceDB(dbPath) def addUser(self, user, audio): """ Add user to voice db """ return self._db.add_model(audio, user) def getUserList(self): """ Return users of voice db """ return self._db.get_speakers() def checkAudio(self, audio): """ Check voices inside audio file """ v = Voiceid(self._db, audio) v.extract_speakers(quiet=True) return v def getTotalSpeakers(self, voiceObj): """ List of all speakers in voice file """ return voiceObj.get_user() def getBestUser(self, voiceObj): """ Best near speaker in voice file """ userList = self.getTotalSpeakers(voiceObj) print "UserList: " + str(userList) return max(userList, key=userList.get) def getBestUsers(self, voiceObj): """ Best three near speakers in voice file """ userList = self.getTotalSpeakers(voiceObj) print "UserList: " + str(userList) if 'S0' in userList: del userList['S0'] return sorted(userList, key=userList.get)[-3:]
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 showsp(): db = GMMVoiceDB('models') spk= str(db.get_speakers()) out.insertHtml(QString("<font color=\"black\">%1</font>").arg(spk))
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()
def showsp(): db = GMMVoiceDB('models') spk = str(db.get_speakers()) out.insertHtml(QString("<font color=\"black\">%1</font>").arg(spk))
#Using voiceid(google opensource project) for voice recognisation using python from voiceid.sr import Voiceid from voiceid.db import GMMVoiceDB db = GMMVoiceDB('mydir') #creating database/directory of registered voices db.add_model('C:\Users\raman\Documents\raman.wma', 'Raman','M') db.add_model('C:\Users\raman\Documents\lalit.wma', 'Lalit','M') db.add_model('C:\Users\raman\Documents\aneesha.wma', 'Aneesha','F') db.add_model('C:\Users\raman\Documents\priyanka.wma', 'Priyanka','F') db.get_speakers() # this will get all the speakers in the database/directory if(db.matchvoice('C:\Users\raman\Documents\lalit.wma', 'Lalit')) #the matchvoice function will compare the voices { print "Lalit is present" } else print "Lalit is absent" v = Voiceid(db) v.extract_speakers() for c in v.get_clusters(): cluster = v.get_cluster(c) print cluster cluster.print_segments()