Skip to content

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
  • Runtime
    • Command list
      • Global list of commands to choose from
    • OLGA Output Object Generator

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
  • Extension
    • EXT.install()
      • Sets commands in the global config
        • Check for command conflicts
      • Check for dependencies
    • EXT.init()
      • Start the extension asynchronously
    • EXT.listen(string commandID)
      • Wait for commands from OLGA core
      • Return = OLGA Output Object
  • 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
Clone this wiki locally