A speaker recognition/identification system written in Python, based on the LIUM Speaker Diarization framework.
VoiceID can process video or audio files to identify in which slices of time there is a person speaking (diarization); then it examines all those segments to identify who is speaking. To do so you must have a voice models database. To create the database you have to do a "train phase", in interactive mode, by assigning a label to the unknown speakers.
You can also build yourself the speaker models and put those in the db using the scripts to create the gmm files. It can run on Windows, Linux, Mac OS X.
Dependencies:
Python 2.7
Java >= 1.6
GStreamer (base, good, bad, tools)
SoX
For the GUI:
wxPython >= 2.8
mplayer
MplayerCtrl
Tested on Ubuntu 12.04/12.10
Setup in Ubuntu:
$ sudo apt-get install python2.7 python-wxgtk2.8 openjdk-7-jdk gstreamer0.10-plugins-base \
gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly \
gstreamer-tools sox mplayer python-setuptools
$ sudo easy_install MplayerCtrl
$ svn checkout http://voiceid.googlecode.com/svn/trunk voiceid
$ cd voiceid
$ sudo python setup.py install
Usage:
to analyze a video/audio file in interactive mode (the system ask you who is speaking if not yet present in db) just type (if you have /usr/local/bin in your path):
vid -i INPUT_FILE -u
to analyze a video/audio file in batch mode
vid -i INPUT_FILE
to build a voice model from a given wav file
vid -s SPEAKER_ID -g INPUT_FILE
to analyze a video/audio file in interactive mode, writing the output in json file
vid -i INPUT_FILE -f json -u
to analyze a noisy audio file in interactive mode, writing the output in json file
vid -i INPUT_FILE -f json -n -u
to see other options
vid -h
Output:
the output of the current svn release is available as json file, srt file and an experimental xmp sidecar file format
GUI:
voiceidplayer
to run voiceidplayer with a video/audio file and database path
voiceidplayer video_file database_path