Object Design Review

Speech Subsystem Concepts
Interpreter
Takes in spoken text and performs appropriate actions / API calls
Grammar
Set of valid words and phrases that the recognition engine is expecting at a particular point of time

Scenario: API Requirements
Mechanic Bob has a workorder with stickies.  A view of the model is displayed on his PEDD.
Bob says, “show IETM” in order to change the display from the model to the IETM.
speech.interpreter.GlobalInterpreter.interpret()
ui.UserInterfaceManager.displayUserInterface
 (int userInterfaceID,
  int displayStatus,
int panelID)

Scenario (cont.)
Bob says, “activate IETM” in order to switch grammars to the IETM grammar.
speech.interpreter.GlobalInterpreter.interpret()
speech.grammar.CentralGrammarHandler.
setActiveGrammarHandler(IETMGrammarHandler)
Bob says, “next step” and the speech system speaks the 1st step to him.
speech.CentralInterpreter.ActiveInterpreter. interpret()
speech.IETMInterpreter.interpret()
speech.Synthesis.speakStep()

Scenario (cont.)
Bob performs the step spoken to him and continues saying “next step” until he is done with the repair.
Bob says, “activate workorder” in order to switch the active grammar to the workorder grammar.
speech.interpreter.CentralInterpreter. GlobalInterpreter.interpret()
speech.grammar.CentralGrammarHandler.
setActiveGrammarHandler(WorkorderGrammarHandler)

Scenario (cont.)
Bob says  “submit” in order to automatically set the status to awaiting approval and submit the completed workorder to the database.
speech.CentralInterpreter.ActiveInterpreter.interpret()
speech.WorkorderInterpreter.interpret()
maintenance.submitWorkorder()

Scenario: Sequence Diagram

speech Package

speech.interpreter Package

speech.grammar Package

Javadoc
Javadoc:
http://www.contrib.andrew.cmu.edu/~rig/javadoc/index.html

Hardware/Software Allocation
The Speech subsystem will use IBM ViaVoice with JSAPI extensions as its speech engine.
ViaVoice needs a maximum 260 MB in disk space.
ViaVoice needs a maximum 48 MB RAM (including OS)

Services provided by Speech
void speech.Initialization.initialize()
Used by the UI subsystem to start the speech subsystem
The speech subsystem will be running as long as the STARS executable is running on the PEDD

Services needed by Speech
From Maintenance subsystem:
submit a workorder to the DB
void submitWorkorder()
advance the current sticky
void nextSticky()
set the current sticky back one
void previousSticky()
set the status of a workorder
void setStatus(int status)

Services needed by Speech (cont.)
From UI subsystem:
Switch displayed screen from model to IETM and vice versa
boolean displayUserInterface(int userInterfaceID,     int displayStatus,     int panelID)

Status of the Speech Subsystem
Requirements Analysis done
System Design done
Object Design done
Working on implementation
Looking into the API for WebManual IETM viewer
Formalizing all grammars: global, workorder, model, IETM

Future Schedule
Implementation
11/22 to 12/5
Unit Testing
12/1 to 12/5
Integration Testing
12/4 to 12/9
Dry Run
12/7
Client Acceptance Test
12/9

Open Issues
WebManual API à our creation of a dynamic IETM grammar depends on this