Joint Factor Analysis Matlab Demo

This set of Matlab functions and data by Ondrej Glembek ( is a simple tutorial of Joint Factor Analysis (JFA), as it was investigated at the JHU 2008 workshop

The tutorial is based on Patrick Kenny's paper:
Kenny, P "Joint factor analysis of speaker and session variability: Theory and algorithms" - Technical report CRIM-06/08-13 Montreal, CRIM, 2005,

especially on the simplified version of the training in:
Kenny, P., Ouellet, P., Dehak, N., Gupta, V., and Dumouchel, P. "A Study of Inter-Speaker Variability in Speaker Verification", IEEE Transactions on Audio, Speech and Language Processing, July 2008.

Our approach to training is briefly described in our NIST 2008 SRE system description:
Burget Lukáš, Fapšo Michal, Hubeika Valiantsina, Glembek Ondřej, Karafiát Martin, Kockmann Marcel, Matějka Pavel, Schwarz Petr, Černocký Jan: BUT system description: NIST SRE 2008, In: Proc. 2008 NIST Speaker Recognition Evaluation Workshop, Montreal, CA, NIST, 2008,

And finally, the two scoring methods are described in:
Glembek, O., Burget, L., Dehak, N., Brummer, N., and Kenny, P., "Comparison of Scoring Methods used in Speaker Recognition with Joint Factor Analysis", to appear in Proc ICASSP 2009, Taipei, Taiwan, April 2009

The example data used in the Tutorial was collected by LDC for NIST speaker recognition evaluations in 2004 and 2006, see and The author thanks NIST and LDC for making the data available for this public demo.

Download the tutorial from (attention, the file has 317 MB).