.... .... .... .... .... .... .... .... ....

Carmel is a finite-state transducer package written by Jonathan Graehl at USC/ISI.

Carmel's new download location is here.

Carmel includes code for handling finite-state acceptors and transducers, weighted transitions, empty transitions on input and output, composition, k-most likely input/output strings, and both Bayesian (Gibbs sampling) and EM (forward-backward) training.

Carmel has been used in many research projects and source code can be downloaded here for non-commercial use. (Please read the license and scroll to bottom of this page).

Here is a general tutorial on Carmel and finite-state language processing.

Here is a tutorial on training FST cascades (both Bayesian and EM optimization) in Carmel.

Carmel is standard C++, requiring only the headers from Boost (untar and use make CPPFLAGS=-Idir/boost-source-dir). The Makefile requires GNU Make (at least version 3.8), or Microsoft Visual C++ .NET, but cygwin and linux binaries are included. Carmel does build on Mac OS X.

Please address inquiries about this software to Jonathan Graehl (, Michael Pust (, or Kevin Knight (

Carmel's new download location is here.