Use-case descriptions
Use Case 1 - Voice Recognition
Actor: Suzy (player / AAC device user)
Triggering event: Suzy opens a supported game and taps the in-game microphone icon (or activates mic).
Preconditions: Game is running and in a state that accepts the Start command; microphone access is granted; network (if required) is available.
Normal flow (happy path):
- Suzy taps the microphone icon.
- System checks microphone level and readiness.
- System begins listening and records the utterance.
- ASR (speech→text) transcribes the audio.
- The transcribed text is normalized and matched to the command set; the text maps to the StartGame command.
- If the command confidence is high, the API sends the StartGame command to the game.
- The game changes to the playing state and the UI shows confirmation (visual cue like “Game started”).
- The event is logged in command history.
Alternate flows / exceptions:
- Low mic level: show prompt “Please increase mic volume / move closer to the device”
- Low confidence: show prompt “Could you say that again?” → re-listen one retry; if still low, show “Try again later” or offer manual control.
- Network error: show “Unable to process voice now” and fallback to manual start.
Postconditions: Game has started (or appropriate error/feedback displayed); command logged.
Use Case 2 - Filter Out Filler Words
Actor: Suzy (player)
Triggering event: Suzy speaks while playing, e.g., “uh jump now.”
Preconditions: Game is in a state that accepts gameplay commands; microphone is active.
Normal flow:
- The system captures Suzy’s voice.
- ASR transcribes the audio into text (e.g., “uh jump now”).
- The pipeline runs a filler-word filter and removes tokens like “uh”, “um”, “now”.
- Remaining tokens are tokenized and mapped to command(s) (e.g., “jump” → Jump).
- If mapping confidence is high, the API issues the Jump action to the game immediately.
- UI gives immediate feedback (visual cue + animation) and logs the command.
Alternate flows / exceptions:
- Filter removes all meaningful words (e.g., utterance was “uh now”): ask the player to repeat.
- Multiple possible commands: request quick confirmation (“Did you mean JUMP?”) or choose highest-confidence and log uncertainty.
- Low confidence: prompt for repeat.
Postconditions: Jump action executed (or user prompted to repeat); command history updated.
Use Case 3 - Speaker Seperation
Actor: Suzy (primary player) and nearby non-player speakers (e.g., parent)
Triggering event: Suzy speaks a command while other people speak at the same time.
Preconditions: Enrolled player voice profile exists; speaker-separation model is enabled.
Normal flow:
- System captures mixed audio with multiple speakers.
- The speaker-separation model isolates the enrolled player’s audio stream (prefer enrolled stream).
- ASR runs on the isolated player stream and transcribes the utterance.
- Transcription is normalized and mapped to a game command (e.g., PauseGame).
- If confidence is high, API sends PauseGame to the game; UI confirms action.
- Log command and speaker attribution.
Alternate flows / exceptions:
- No enrolled profile available
- Separation uncertain / low confidence: show a quick confirmation prompt (“Did you say ‘pause’?”). If the player confirms, proceed; otherwise ignore.
- Overlapping identical words from multiple speakers: use confidence + enrolled preference; if unresolved, request confirmation.
Postconditions: Game paused (if confirmed); system records speaker attribution and confidence.
Use Case 4 - Background Noise Filtering
Actor: Suzy (player)
Triggering event: Suzy issues a command in a noisy environment (e.g., TV).
Preconditions: Noise-robust ASR / denoising pipeline active; microphone picks up signal.
Normal flow:
- System captures the noisy audio.
- Noise suppression/denoising module processes the audio to reduce background interference.
- ASR transcribes the cleaned audio.
- Transcription is matched to a command (e.g., “left” → MoveLeft).
- If confidence is high, API sends MoveLeft to the game and UI shows visual confirmation.
- Command and environment metadata (noise level) are logged.
Alternate flows / exceptions:
- Noise overwhelms voice: prompt the user to repeat or show a “can’t hear” note.
- Misrecognized phrase due to residual noise: if confidence low, ask for repeat or confirmation.
- Adaptive fallback: optionally switch to a push-to-talk or require closer mic.
Postconditions: Movement executed (or prompt shown); noise metrics recorded for debugging.
Use Case 5 - Interpret Synonyms of Commands
Actor: Suzy (player); Developer (configures mapping)
Triggering event: Suzy uses a synonym (e.g., “go” for Move, “hop” for Jump).
Preconditions: Synonym mapping table exists (configured by developer or default set); ASR and command mapper active.
Normal flow:
- System captures the utterance and ASR produces text (e.g., “hop”).
- The command-mapping module looks up the token in the synonym table.
- “hop” is mapped to canonical command Jump.
- If confidence is high, API issues Jump to the game.
- Provide visual confirmation and log synonym used and mapping confidence.
Alternate flows / exceptions:
- Unknown synonym: present developer UI option to register this phrase as a synonym, or prompt the player: “Did you mean JUMP?”
- Multiple possible canonical matches: prompt for confirmation or use highest confidence mapping.
- Developer disabled synonym mapping: treat unknown words as unrecognized and prompt to repeat or register command.
Postconditions: Correct canonical command executed or developer/user receives a prompt to resolve ambiguity.
Use Case 6 - Support Commmon Game Inputs (Incomplete)
Actor: Steven (developer)
Triggering Event: Steven uses the API toolkit to set up the basic commands the game will understand.
Preconditions: Game API has empty command library.
Normal flow:
- Steven, a game developer, uses the API toolkit, like Start Game, Move Left, Move Right, Jump, Pause, and Shield.
- They tell the API what each command means and connect those commands to the game’s actions. When a player speaks, the API listens, figures out the right command, and sends it back to the game in a clear format.
Postconditions: System contains common commands in a command library.
Use Case 7 - Previous Game Integration
Actor: Steven (developer)
Triggering Event: Suzy wants to play an AAC game she used last semester.
Preconditions: System supports current AAC games.
Normal flow:
- The developer adds a small connector that uses the API’s standard commands.
- Suzy’s voice inputs still work in the old game without needing to rewrite the code.
Alternate flows / exceptions:
- The old game is set up in a way that is not compatible with the API.
- The old game's code needs to be directly modified.
Postconditions: Suzy is able to play the old AAC games using the API.
Use Case 8 - Register New Commands
Actor: Steven (developer)
Triggering Event: Steven adds new commands to command library through the API to support new game.
Preconditions: System command library has common commands in command library.
Normal flow:
- System has the ability to register new commands through the API.
- Steven enters new commands in command library using the API toolkit.
- This will allow the API to remain flexible to any future games that require more complex commands that are not currently supported.
Alternate flows / exceptions:
- The system command log already contains all the needed commands for the game.
Postconditions: All commands for the AAC game are entered in the command library, and can be used by players through the API.
Use Case 9 - Toggle Input History
Actor: Steven (developer); Stan (player)
Triggering Event: Stan is overstimulated by the AAC game.
Preconditions: AAC game is running API and game command history is visible to players.
Normal flow:
- Stan's caretaker uses the API window and goes to settings.
- The system has toggleable settings for input history.
- The caretaker toggles off the input history.
- Stan receives reduced visual stimuli and can comfortably enjoy playing the AAC game.
Alternate flows / exceptions:
- Steven has registered a new command and uses the command history to troubleshoot the new command.
- He has confidence that it was registered correctly and working once he is able to see it in the command history.
Postconditions: AAC game is playable without a visible command history.
Use Case 10 - Confidence Level of Interpreted Game Input
Actor: Steven (developer):
Triggering Event: Steven is experimenting with API speech input.
Preconditions: Game is in a state that accepts gameplay commands; microphone is active.
Normal flow:
- Steven speaks game commands into the microphone.
- The game command is interpreted and inputed to the game.
- Steven receives a confidence level from the API that determines how confident the API was in choosing that command based on synonyms to a known command.
- This allows him to have control over which commands are recognized as valid game inputs. ensuring that only reliable commands can affect the gameplay.
Alternate flows / exceptions:
- The game incorrectly interprets the voice input.
- Steven adjusts the code accordingly.
Postconditions: Game accurately interprets gameplay commands.