Showing posts with label Universal Background Model. Show all posts
Showing posts with label Universal Background Model. Show all posts

Tuesday, April 1, 2014

HTK..again

So after now having read quite some papers about I-Vector, Eigenvoices, Cluster Adaptive Training and UBM , I finally started to do something at least.


I am training a UBM Model with HTK right now, I did that already for a different task last semester, but this time it's simpler ( UBM has just 1 HMM state, yet massive amount of Gaussians ).
Naturally this model should be initialized with every Gaussian mixture, but experiments show that an increase in mixtures during the training actually improve performance and reduce the training time.



There already did exist a script (of Phil Woodland), which does the job of initializing the first prototypes and parameters. Furthermore it can estimate a whole model by re-estimation during constant increase of mixture components.
To speed up the process ( and hopefully do not loose too much accuracy ) I need to implement a different step size.
The usual step size is 4, so the amount of mixtures go in the sequence of : 1,4,8,12....MIXTURES, where MIXTURES is the maximum amount of Mixtures ( in my case 512/1024).

I changed the step size to the following sequence: 1,4,8,12,16,32,48,64,128,256...MIXTURES. So I still do begin with little mixture counts at the beginning and double them when the count reaches 16 ( 48 is an empirical exception ).


Thursday, March 27, 2014

CAT approach

CAT

Intoduction

After reading the basic paper about Cluster Adaptive Training ( CAT ) , I got a good Idea about the I-Vector approach and the statistics behind it.

CAT did provide a method to reduce substantially the amount of Parameters for training, but increased the performance and accuracy of the system.

CAT does rely on GMM-HMM adaptation , and clusters similar speakers together, but ties the variances and prior probabilities together hence only the means vary between clusters.
component priors and variances are tied over all the speaker clusters. 

Definition

The challenge is to calculate the mean of the speakers , given a Gaussian component.


This results in the following Model:
To estimate these two unknown variables, EM is used. The Estimation formula is defined as:

Tuesday, March 18, 2014

Doing some progress :(

After some time, now I got into the basic structure of how to get along with the topic.

I talked with some guys which share some point of interest in speech science, but work on robust speech recognition systems. 
One of them, which already works 4 years in the field said that my approach is basically impossible to detect a speaker within less then 3 seconds of speech.

I was not shocked, because it seems for me also quite impossible to detect a speaker in a marginal time without in a text-independent environment.

But I looked for some papers and found one which wasn't recommended by the colleagues, which is A study on Universal Background Model training in Speaker Verification . This paper digs deep into GMM-UBM Models, which are the baseline of my implementation.
They show that UBM Models can achieve state-of-the-art performance without being fed by enormous amount of data. They achieve an error rate of about 11% with an input length of 2,7 seconds per speaker, which is already good.

But it doesnt apply for my case, since they didnt use the "total variability space" or "i-vector extraction", which probably will speed up the process and boost the computational performance.

So basically I get my input signal or speech from NIST SRE Corpus (2005 - 2008).  I process the signal into a (probably) vector of length 39 and log energy with MFCC. Finally I need to generate my model out of the generated vectors.
Cambridge's HTK is used for the UBM, which models every vector into a gaussian in a GMM, which itself is then just a one state HMM. Multiple HMM's are not necessary since the "i-vectors" try to map every information of the input into one space, not into multiple independent spaces.

When I am finished estimating my UBM Model, I can begin to use the output model to estimate my I-vector parameters (If i am correct so far).