OpenFst is a library for constructing, combining, optimizing, and
searching weighted finite-state transducers (FSTs). Weighted
finite-state transducers are automata where each transition has an
input label, an output label, and a weight. The more familiar
finite-state acceptor is represented as a transducer with each
transition's input and output label equal. Finite-state acceptors
are used to represent sets of strings (specifically, regular or
rational sets); finite-state transducers are used to represent
binary relations between pairs of strings (specifically, rational
transductions). The weights can be used to represent the cost of
taking a particular transition.
This library was developed by contributors from Google Research
and NYU's Courant Institute. It is intended to be comprehensive,
flexible, efficient and scale well to large problems. it has been
extensively tested. It is an open source project distributed under
the Apache license.