Five Steps to Developing Speech-Based Applications

Creating a natural language application can be challenging; World Bench is a new application development tool that can simplify that process. It includes speech engines and a basic lexicon that allow the developer to interactively create and test natural language applications using high-level rules which can be debugged from within the application. Since the tool supports the Scalable Language API, it is an ideal way to develop speech-based applications for new handheld systems such as those running Microsoft’s WinCE. It can also be used to develop desktop applications under Windows. World Bench also addresses the challenge of localizing natural language applications for the global market. Several language versions can be created and tested together as a single project.

Creating a speech-based application using World Bench involves five steps 1) Creating a test corpus 2) Selecting the vocabulary 3) Writing InterLingTM rules 4) Writing developer functions and 5) Testing. Although the tasks are ordered, the entire process is iterative; you can move between tasks at any time. For the purpose of discussion it is assumed we are developing a calendar application.

Creating a test corpus

This is a very creative part of the process. Here, you would enter various sentences that your application would be expected to handle. The corpus of sentences can be entered as text, or as audio recordings or both. You would enter every way that you could imagine a user may ask a question or give a command. For example, we would envision the forms of asking about an appointment or creating an appointment - anything that the user might say that should be handled.

“Do I have any meetings tomorrow?”
“When am I supposed to meet with __?”
“Are there any appointments scheduled for Friday?”

During testing, the corpus is used to validate the rules and assure that the system is performing as expected. The more systematic and exhaustive the test corpus is, the more confidence you will have that the application is complete and error-free.

Later, World Bench can automatically run the test corpus questions andcommands against the application and compare the actual and expected responses.

Selecting the Vocabulary

World Bench includes a pre-tested, comprehensive natural language grammar, so you will not need to write your own grammar. It also includes a basic lexicon from which you may wish to remove or add words. A lexicon maintenance tool is built-in and allows you to create new entries, complete with part of speech, pronunciation and lexical features.

InterLing Rules

World Bench is based upon the Scalable Language API architecture. Under that architecture, natural language sentences from the user are translated into InterLing expressions. InterLing is a predicate logic notation which expresses the semantics of the sentence.

Developer Functions

Ultimately, the application will need to call some developer-written functions to lookup the answer to the user’s query. You may write these functions in C, C++, JAVA or any other linkable language. The developer-functions take parameters, perform some operation (often a lookup), and may return an answer. The answer is later used to create a natural language reply.

For example, our application could use two functions for appointments:

FindAppt and GetApptTime. FindAppt will take two parameters, “person” and “time”. It will return the appointment (or list of appointments) which meet both criteria (i.e. with that person and during that time). The “time” may be either a time-range such as “next week”, or a time-point such as “2:00 tomorrow afternoon”. GetApptTime will take an appointment (or list of appointments) and return their time (or list of times).

ApptNode FindAppt (PersonNode person, TimeNode time)

TimeNode GetApptTime (ApptNode appt)

World Bench facilitates the creation of these developer-functions.

InterLing is language-independent. The InterLing translation of an English query will be the same, or very nearly the same, for other languages. Thus the same rules will generally apply to several languages. Adding support for an additional language requires only supplying that natural language grammar and writing a few additional rules.


Testing can be carried out on the complete system level or on the specific component level. World Bench also allows the developer to interactively test the rules, and the developer-functions. You can run the test corpus sentences and compare the actual result against the expected result. This can be done in batch mode and World Bench will isolate the problem sentences. Then you can interactively single-step through the processing of those sentences that require a closer look. By single-stepping through the rules you can quickly pin-point any problems in the rules.

World Bench and the World Voice engines represent a new method for developing natural language applications. It is an interactive approach where the developer writes high-level semantic rules. Much of the testing is automated and source code is generated. The developer is not encumbered by rules of syntax and morphology since these are pre-written; and your application can become fluently multilingual.

Kurt Fuqua can be reached at worldvoice@compuserve.com. For a free copy of the SLAPI specification see Motorola’s web site at http://www.mot.com/slapi . WorldVoice and WorldBench are trademarks of Cambridge Group Technologies.

SpeechTek Covers
for qualified subscribers
Subscribe Now Current Issue Past Issues