Flylib.com

Books Software

 
 
 

7.4 Conclusion


7.4 Conclusion

This brings us to the end of the definition phase of the project. We have a detailed definition of requirements, driven by an understanding of the business, the users, and the application. We have made some important design decisions up-front in order to create a framework for detailed design and achieve unity and consistency throughout the application. We are now ready to move into the detailed design phase of the project.

The next part of the book covers the methodology for detailed design, discusses a set of design principles to use in making detailed design decisions, and presents the detailed design steps for the Lexington Brokerage project.


Part III: Design Phase: Detailed Design

Chapter 8.  Detailed Design Methodology

Chapter 9.  Minimizing Cognitive Load

Chapter 10.  Designing Prompts

Chapter 11.  Planning Prosody

Chapter 12.  Maximizing Efficiency and Clarity

Chapter 13.  Optimizing Accuracy and Recovering from Errors

Chapter 14.  Sample Application: Detailed Design


Chapter 8. Detailed Design Methodology

We are now ready for the detailed design, the stage when the designer (or design team) pulls together all the details into a coherent , cohesive design. Skilled practitioners are able to immerse themselves in the details, crafting stretches of dialog, while still keeping the larger context and goals in mind. The requirements and high-level design steps we have completed at this point facilitate this ability.

As we go through the detailed design steps, you will see many of the methodological principles, first presented in Chapter 3, applied. We place significant emphasis on end- user testing, although the goals and approaches here are different from those in the definition phase. In this phase, you will see a number of process steps that help focus your design decisions on conversational design and consideration of appropriate context.

In addition to the methodological principles described in Chapter 3, this chapter describes a set of design principles for VUIs. These guide you when crafting dialog strategies, call flows, and prompts. Some of these principles are common to all types of user interfaces, whereas others are specific to voice user interfaces.

Detailed design involves the creation of a complete description of the call flow and all the prompts played by the system. The outcome of this phase is a detailed design document, and possibly a prototype.

This chapter covers the following:

  • Anatomy of a dialog state

  • Call flow design

  • Prompt design

  • User testing

  • Design principles


8.1 Anatomy of a Dialog State

The smallest unit typically represented in a call flow diagram is a single dialog state. Most often, a dialog state involves a single interchange between the caller and the system. However, if the system handles unexpected input, it may reprompt the caller within the same dialog state. Here's an example:

S YSTEM:

How much do you want to transfer?

C ALLER:

<unrecognized speech—recognizer returns reject>

S YSTEM:

Sorry, how much do you want to transfer? [ rising intonation ]

In this case, the system is still in the same state, still trying to elicit the transfer amount, and using the same grammar to try to recognize the input.

For each dialog state, you must describe a number of components . A typical case includes the following:

  • Initial prompt(s): This is the prompt that is played when the conversation first reaches this dialog state. As you will see in section 8.3, it is often important to define more than one possible initial prompt, depending on recent history (e.g., which state preceded the current one). Section 8.3 describes the methodology for defining prompt wording.

  • Recognition grammar: Although the full development of the recognition grammar is saved for a later step, it is appropriate to create a high-level definition of the grammar as you define a dialog state. This definition will be used as a guide by the grammar developer. The high-level definition should describe the specific items of information to be returned from the grammar (e.g., the destination city for a travel application), possibly by specifying the names of slots the grammar can fill. Additionally, it is often useful to provide a number of sample expressions to give the grammar developer an idea of the range of expression expected. For example, if you provide sample expressions for a yes/no grammar such as "Yup," "Okay," and "Yeah, that's what I want," the grammar writer will be aware of the need to flesh out the grammar to cover the wide variety of ways callers may express themselves to indicate yes or no.

  • Error handling: Many things can go wrong during recognition. The caller may say something not covered by the grammar, or background noise may prevent accurate recognition. In both these cases, the recognizer is likely to return a reject. The caller may not respond at all, in which case the recognizer may return a no-speech timeout. For each type of error message that the recognizer may return, the designer must specify appropriate handling (such as the reprompt, "Sorry, how much do you want to transfer?" in the earlier example). Chapter 13 discusses error handling in detail.

  • Handling of universals: Chapter 5 describes universal commands. Occasionally, a universal must be overridden in a particular dialog state.

  • Action specification: There are a number of actions that may happen during execution of a dialog state that should be specified. For example, the application may access a backend database or other system. If so, you must specify handling for all possible failure modes as well as for success. Additionally, you should specify transitions to other dialog states along with any logic or conditions for the transfer (the call flow diagram, shown in a moment, is a convenient place to specify transitions).

These are the components of a typical dialog state. The next two sections cover the methodology for creating the two primary elements of a design: the call flow and the prompts.