Lattices

Overview

The RWTH ASR decoder can produce lattices (or word graphs). They are stored as finite state transducer (FSTs) together with a file containing the word boundary times.

Lattices can be post-processed using the FlfTool.

Producing lattices

For producing lattices the following lines needs to be added to any recognition config-file.

...
[*]
create-lattice                  = true
store-lattices                  = true
lattice-archive.path            = <lattice-archive>
lattice-archive.compress        = true
lattice-archive.type            = fsa
lattice-pruning                 = $(lm-pruning)
lattice-pruning-limit           = infinity
optimize-lattice                = true
time-conditioned-lattice        = false
...

The lattices are stored in an Archive. For each segment three files are stored:

  • an FST containing the acoustic score (*.binfsa.gz),

  • an FST containing the sum of scaled pronunciation- and LM-score (*-lm.binfsa.gz), and

  • a file containing the word boundary time information (*.binwb.gz).

The FSA format is compatible with the RWTH FSA Toolkit. The FSA toolkit can be used to manipulate the lattices or to convert them to plain text (AT&T or RWTH-XML transducer format).

Alternatively, lattices can be written in HTK lattice format, by setting lattice-archive.type = htk.

The optimize-lattice flag reduces the size of the lattice by collapsing subsequent silence arcs.

If the time-conditioned-lattice flag is set, then the language model history is not preserved. The resulting lattice is much smaller and contains more paths than the standard, word-conditioned(i.e. with language model history) lattice. A composition of the time-conditioned lattice with the language model transducer yields a word-conditioned lattice again.

References