
A voice, like a fingerprint or iris, can be used to verify or identify a person. Gaussian Mixture Models can be used to model a person’s voice.
A person starts with enrollment to create a GMM. The person reads aloud a few sentences from a book or magazine, or responds to a bunch of prompts by speaking. The speech is used to train their model.
Features are extracted from frames into feature vectors. The features are MFCCs and their deltas. They’re derived from frequencies and energies in the audio spectrum of voice. Feature vectors are like points in space forming clusters or clouds. It’s a 38 dimensional space from 19 MFCCs and 19 deltas.
A model contains a mixture of hundreds of Gaussians. For each vector, each Gaussian decides how likely the vector could be generated from it. A normalized score is computed for each Gaussian. Those normalized scores for all vectors are used to adapt the means, variances, covariances, and weights of the Gaussians. This changes the influence and shape of each Gaussian slightly. This cycle repeats until Gaussians parameters converge, where the shapes and weights no longer change.
Once the model is trained, it’s ready to be used for verification or identification. A person speaks, their feature vectors are extracted and compared to a model, and a score is generated. Scoring uses a log-likelihood ratio.
log ( P(voice | user model) / P(voice | universal model) )
The higher the score, the more likely the person and model are a match.