Tutorial 1: OpenFst: a General and Efficient Weighted Finite-State Transducer Library
Cyril Allauzen and Michael D. Riley
Finite state methods are well established in language and speech processing. OpenFst is a free and open-source software library for building and using finite automata, in particular, weighted finite state transducers (FSTs). This tutorial starts with an introduction to weighted finite state transducers and their uses in speech and language processing. The first part of the tutorial will introduce operations on weighted automata such as determinization and intersection/composition as well as the corresponding OpenFst binaries and library-level APIs that implement those operations. We will describe how to read FSTs from simple textual descriptions and combine them into larger and more complex machines, and optimize them using simple command-line and library calls. While there are other weighted finite state transducer libraries (some previously written by these authors), OpenFst (a) offers, we believe, the most comprehensive, general and efficient set of operations, (b) makes available full source code, (c) exposes high- and low-level C++ APIs that make it easy to embed and extend; and (d) is a platform for active research and use among many colleagues.
The second part of the tutorial focuses on several application areas of interest to the SLT audience, including speech recognition, speech synthesis, and general text processing. In each application area we will discuss a straightforward example in detail, encouraging attendees to try these on their own computer during (or after) the tutorial. We will then delve into an advanced example that highlights important features of OpenFst, common pitfalls, efficiency considerations, new research directions, etc. These examples are drawn from our extensive experience in applying OpenFst to problems in speech and language processing.
This tutorial is intended for students, researchers, and practitioners interested in applying finite state methods. It is suitable for participants of a variety of backgrounds, including those without any background in finite state techniques as well as advanced users of existing software packages. For those unfamiliar with finite state transducers, the first portion of the tutorial provides an introduction to the theory and application areas. Users of other finite state libraries will particularly benefit from the contrastive description of the unique features of OpenFst, its C++ API, and the examples drawn from real-world applications.
Further information and a download of the OpenFst library can be obtained from http://www.openfst.org.
Joint work with: Johan Schalkwyk, Wojtek Skut and Mehryar Mohri.
Michael Riley has a B.S., M.S., and Ph.D. from MIT, all in computer science. He began his career at Bell Labs and AT&T Labs where he, together with Mehryar Mohri and Fernando Pereira, introduced and developed the theory and use of weighted finite-state transducers (WFSTs) in speech and language. He is currently a research scientist at Google, Inc. His interests include speech and natural language processing, machine learning, and information retrieval. He is a principal author of the OpenFst library and the AT&T FSM Library (TM).
Cyril Allauzen is a research scientist at Google. His main research interests are in finite-state methods and their applications to text, speech and natural language processing and machine learning. Before joining Google, he worked as a researcher at AT&T Labs – Research and at NYU’s Courant Institute of Mathematical Sciences. Cyril received his Ph.D. in computer science from the Université de Marne-la-Vallée in 2001. Cyril is an author of the OpenFst Library, the OpenKernel Library and the GRM Library.