-
Notifications
You must be signed in to change notification settings - Fork 9
Initial Roadmap and Structure
Joey Kilgore edited this page Sep 3, 2019
·
1 revision
General Ideas For Each Part:
- Core API
- Speech Recognition
- Speech-to-text
- Text-to-speech
- Text-to-intent
- Extensions
- Mad Libs
- Mood Recognition
- Weather
- Talk to Bash Bot and plot world domination
- Send messages to people
- Open other apps ex spotify
- Interfaces
- App with GUI
- App with speech
- Discord chat
- Raspberry pi
- App with text/keyboard input
- Video input
Process of build and runtime
- Build
- Combine commands from extensions into global list
- Includes tracking which commands go with which extensions
- Combine test data
- Check for collisions in commands
- Combine commands from extensions into global list
- Runtime
- Command list
- Global list of commands to choose from
- OLGA Output Object Generator
- Command list
Interface Definitions
This is meant to be a sample of what each component (Core, extensions, front ends) might implement.
- Core API
- OLGA.run(string knownCommand)
- Input = string that is a known command from the global list
- Return = OLGA Output Object (ÖÖÖ)
- OLGA.parse(string unknownCommand)
- Input = string that is intended by the user to be a command but which is not a word-for-word duplicate of a command from the global list
- Return = string representation of a command from the global list which most closely matches the input string (arrived at most likely via neural network)
- OLGA.listen(audio voiceInput)
- Input = audio that needs to be interpreted
- Output = string representation of the voice input
- OLGA.output (OLGA Output Object)
- Text property
- Audio property
- Image property
- Video
- Link/URL
- Program to Open/Commands to execute
- OLGA.run(string knownCommand)
- Extension
- EXT.install()
- Sets commands in the global config
- Check for command conflicts
- Check for dependencies
- Sets commands in the global config
- EXT.init()
- Start the extension asynchronously
- EXT.listen(string commandID)
- Wait for commands from OLGA core
- Return = OLGA Output Object
- EXT.install()
- Front End
- FNT.processOutput(OLGA.output output)
- Handle the OLGA.output object returned from the Core API
- very dependent on the platform for handling input
- FNT.processOutput(OLGA.output output)