Next: Implementation issues Up: Models with multivariate Gaussian Previous: Another mixture example: ex_bic


A more advance example (sequence recognition with HMM): ex_sprec

The script ex_sprec.m contains a more elaborate example of the use of H2M functions for an isolated words speaker-dependent recognition task (with no recording variability). I included this example because it provided a simple way of answering most of the question I was asked concerning H2M (please, don't ask me about speech recognition anymore!). I do however insist on the following: (1) ex_sprec.m is not meant to be used for real-world speech recognition (see section 2.5.3 on computation time and memory usage), (2) I am not a speech recognition expert and thus cannot answer questions concerning this particular use of H2M functions.

This is a very simplistic example where basic models (left-right models with five states and a single shared covariance matrix) are sufficient to get rid of all errors on a small size training set (which is again not at all typical of real-world speech recognition applications). The code is commented so that it should not be too difficult to figure out what's going on.

If you run into trouble, it will probably happens when reading the signal file data/ digits.sig which is a binary file contains shorts (16 bits signed integers) recorded on a little-endian system (PCs running Windows or Linux are typically little-endian systems, most Unix workstations are big-endian). I have successfully run ex_sprec on various Unix systems (little and big-endian) using either MATLAB V5 or OCTAVE 2.0, so I hope to have cleared all the input/output problems. The script tries to determine which of MATLAB or OCTAVE is used so as to add the octave subdirectory to the search path if needed.

Running ex_sprec requires about 6 Mb of memory, or 15 Mb if you have to overwrite the signal file (which is my own stupid way of coping with old versions of MATLAB or OCTAVE running on big-endian systems). On my own Linux box (Pentium III - 1 GHz hardarwe), the computation time for ex_sprec (parameterization, training and recognition) ranges from 48.5 s under OCTAVE to 9.1 s using MATLAB with all computational routines compiled.


Next: Implementation issues Up: Models with multivariate Gaussian Previous: Another mixture example: ex_bic

Olivier Cappé, Aug 24 2001