/LTUAssistant

An AI assistant like Google Now, Siri, Cortana, etc. for an LTU senior project.

Primary LanguagePython

LTUAssistant

An AI assistant like Google Now, Siri, Cortana, etc. for an LTU senior project.

This project depends on the following:

  • espeak for audio output
  • stanford_corenlp_pywrapper for natural language processing
  • The Stanford CoreNLP jar files
  • Java (to run Stanford CoreNLP)
  • The Python SpeechRecognition module for voice input
    • This might also require that the PyAudio packages are installed. On Ubuntu, this can be done by running sudo apt-get install python-pyaudio python3-pyaudio.
    • It also may require flac command line tools. On Ubuntu, this can be done by running sudo apt-get install flac All of these are downloaded and installed by running setup.sh, as long as you have git installed.

It currently runs on Ubuntu-based Linux systems, though we would like to implement cross-platform functionality soon.

The main program is located in LTUAssistant.py. A string can be passed to it on the command line as an argument if you want to execute a specific command without speaking it.

Features

This AI assistant aims to be like other well-known AI assistants, but with a focus on being useful to students. Thus, the feature set will concentrate on this particular target user.

Some abilities the AI assistant will include are:

  • Ability to go to school websites via voice command
  • Ability to email professors and classmates using LTU webmail
  • Room locator for a given room number (i.e., building and floor)
  • Study assistant using user-defined "note cards" to help students prepare for exams and quizzes
  • Reminding the user of upcoming class times

This list may expand based on whatever we have time to implement.

How it works

This assistant is structured into three main parts:

  1. Speech-to-text module
  2. Natural language processing module
  3. Command execution and database module

Each part passes its results to the next, providing a logical program flow and making collaboration between our group members easier.