Automated speech recognition systems achieve high performance by using language models to constrain the search space. The most common approaches are data-driven and based on N-grams models, computed on the basis of large corpora. The drawback of this method is the need for a relatively large training corpus; it also faces difficulties in capturing non-local linguistic constraints. The book by Rayner, Hockey and Bouillon introduces and advocates a radically different approach: rule-based language modelling, employing a linguistically motivated grammar to produce accurate models based on context-free grammars. This has some obvious advantages: it is less dependent on large quantities of training data, and can deal with non-local constraints. The book illustrates how to do this successfully with the Regulus grammar compiler (a software package developed by the authors), using a domain-independent grammar for English that can be specialised for particular application domains. But it does more than that: it also demonstrates how to apply the resulting language models in practical work such as spoken dialogue systems and speech translation tools. Finally, the authors argue that grammar-based language models are serious challengers for corpus-based models.
The book comprises thirteen chapters, arranged in two parts. Part I (Chapter 2–7) is the practical, hands-on part of the book—it shows what grammar-based language modelling involves, and how to use it in practical applications. Part II (Chapter 8–12) presents the theoretical background and motivation—it illustrates how the compiler works, how the English grammar is organised, and evaluates the approach.
Chapter 1 is a gentle introduction to speech recognition and the Regulus system. It explains the difference between the corpus-based approach and the grammar-based approach to language modelling. The major shortcoming of the latter is that, even with linguistic expertise, hand-crafted grammars are tedious to code and hard to maintain, because of the restricted formalism (a subset of context-free grammars) that is used by current speech recognition systems such as Nuance. The Regulus grammar compiler does away with this using a principled way of compiling a general, linguistically motivated unification grammar into specialised context-free grammars that can be used directly by speech recognisers as language models. Two interesting applications are introduced that are used as show-cases throughout the book: a spoken dialogue system used by NASA astronauts on the International Space Station, and a speech translation system for emergency medical diagnosis.
Chapter 2 shows how to download and install the Regulus software. Since the Regulus compiler produces language models that are tailored to the Nuance speech processing software components, it also explains how to install and set up the Nuance environment. Finally, a toy application illustrates the Nuance tools and the advantages of working with the Regulus compiler to create a language model from a unification grammar. Chapter 3 goes a step further towards practical applications by demonstrating how to build a simple spoken dialogue system and a speech translation system around Nuance and Regulus, both using Prolog and Java as glue languages. Chapter 4 is getting serious about using linguistically principled grammars, and introduces standard techniques such as unification and macros to gain expressive power. It also advocates the use of test suites for testing language models, a good engineering practice used also in later chapters of the book.
The following two chapters put Regulus and Nuance in a wider context by employing them in real applications. In Chapter 5 we are given a complete spoken dialogue system based on the recently popular information-state update technology, and Chapter 6 gives us a speech translation system. These chapters go clearly beyond grammar compilation and speech recognition by covering other aspects of natural language engineering such as dialogue management, machine translation, and generation. Moreover, they also discuss phenomena pervasive in dialogue, such as ellipsis and corrections. The final chapter of Part I, Chapter 7, covers grammar specialisation (i.e., building domain-specific recognisers), and also illustrates how to incorporate semantics in the grammar. Regulus supports two kinds of semantic representations: a rather simple linear representation, and a more expressive structure preserving dependencies, somehow resembling the quasi-logical forms of the Core Language Engine. It finishes with techniques for making the translation of the unification grammar more efficient by filtering out redundant rules.
Part II explains us in detail how Regulus works. A simple exhaustive expansion of the unification grammar into a speech recognition grammar will most likely result in a combinatorial explosion (and in inefficient language models). So Chapter 8 develops methods to filter out superfluous rules in the domain-specific grammar, and suggests various strategies to do this efficiently. Chapter 9 is linguistically oriented, and gives us an in-depth overview of the core grammar formalism that comes with Regulus. Although the unification grammar itself has limited expressive power compared to say HPSG or LFG (for instance, the feature-values are finite, it can't have nested feature structures, left-recursive rules are not supported), it covers an impressive range of linguistic phenomena, and is not shy of dealing with more complicated constructs such as inversion, movement, and coordination. Chapter 10 introduces Explanation Based Learning (EBL), an interesting technique borrowed from logic programming, which is central to grammar specialisation in Regulus. EBL is essentially a method for combining several rules into a set of simpler ones, thereby making the recognition grammar more efficient. Of course, this comes with a cost, as the resulting grammar will have less coverage, but the Regulus system has means to experiment with different cut-off points in the grammar and allows developers to maximise the accuracy of a grammar for a given application.
The last two chapters of Part II are devoted to evaluation. In Chapter 11 performance of speech recognition grammars generated by Regulus are compared under the variation of a number of different parameters, such as vocabulary size (which has little impact), and linguistic coverage (specialised grammars seem robust to increases in grammar coverage). It also shows the usefulness of using probabilistic context free grammars (which improves recognition accuracy considerably). Chapter 12 compares the grammar-based approach with the “rival” statistical approach, and although there are some methodological difficulties to allow for a straightforward comparison, the grammar-based language model clearly outperforms a class N-gram based model, at least on in-coverage data. The book closes with Chapter 13, which contains a summary of conclusions and future directions. The latter is partly composed of open issues in Regulus, such as extending the grammar, extending the formalism to languages other than English, and some unresolved engineering problems.
What are the strengths of this book? One of the things that stroke me is that Putting Linguistics into Speech Recognition is like three books for the price of one: It is first of all an excellent introductory textbook to language modelling and speech applications, which can be used in the classroom. Secondly, with its patient step-by-step procedures and running examples, it establishes proper documentation and almost functions as a user manual for the Regulus system. Third, it is a welcome state-of-the-art description of the grammar-based modelling paradigm, filling a gap in the existing literature on speech recognition. Overall, the book is written in an easy-going, friendly style (despite the different authors, it is remarkably consistent in style throughout the entire volume), it uses pedagogically strong techniques to explain ideas, often starting with simple (but interesting) examples that are incrementally extended to deal with the problem. Although most of the code is in Prolog (some of it is in Java), this shouldn't be a serious obstacle for the less Prolog minded. The texts contain pointers to relevant work where required, and the source code discussed in the book is clearly identified with the original files. Each chapter ends with a useful bullet-point summary and a series of exercises. And obviously, in this day and age, there is a website supporting the book.
Are there any clouds on the horizon? If at all, they are rather small clouds. The software is depending on Nuance's speech recognition software (free for academic research purposes), and requires (the non-free) Sicstus Prolog. The authors motivate theses choices by arguing that there are no proper alternatives with the same industrial strength; that might be true for Nuance, but there are serious (free) contenders for Prolog, such as SWI Prolog. Another topic I would have expected to find more discussion about is the presence of recursion in the grammar. The authors carefully ignore the subject of left-recursive rules and left-recursive grammars (the Regulus compiler can't handle these). This is not necessarily a major shortcoming, since there are well-known algorithms that convert left-recursive grammars into right-recursive ones. However, it would have been more than appropriate to have an exchange of views on this topic. Finally, in the later chapters some speech recognition terminology (such as WER and RT) is left unexplained, which is out of style compared with the careful approach in the rest of the book, targeted at the novice reader. All in all, these are rather small deficiencies that do not affect the overall quality of the book.
In conclusion, it is not an exaggeration to say that this book represents a showcase for computational linguistics. It demonstrates that linguistic theory can be useful in practical applications and does so in an area where insiders would perhaps have it least expected: speech recognition. But it offers more than just language modelling: it shows how to build spoken dialogue applications from scratch using off-the-shelf software (and moreover, in a principled way), and it gives a lot of interesting insights and techniques in converting grammars from one formalism into another. The book can be used in the classroom for teaching, and is at the same time useful for developers of spoken dialogue systems and grammar engineers. It is a must for people aiming to write their own grammar compiler for speech applications, for it contains a goldmine of experience in grammar compilation. It is just a matter of time to see the techniques presented in this book being refined and applied to other linguistic grammar formalisms such as HPSG, CCG and LFG.