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"
Ejemplo n.º 2
0
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!"
Ejemplo n.º 4
0
def showsp():
	db = GMMVoiceDB('models')
	spk= str(db.get_speakers())
	out.insertHtml(QString("<font color=\"black\">%1</font>").arg(spk))
Ejemplo n.º 5
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()
Ejemplo n.º 6
0
def showsp():
    db = GMMVoiceDB('models')
    spk = str(db.get_speakers())
    out.insertHtml(QString("<font color=\"black\">%1</font>").arg(spk))
Ejemplo n.º 7
0
#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()