Skip to content

September - an open source voice assistant for Windows. Uses Tkinter, Google Speech Recognition and Wolfram Alpha Engine.

License

Notifications You must be signed in to change notification settings

thenithinbalaji/September-Assistant

Repository files navigation

September - Windows Assistant

September is an open-source Windows personal assistant built-in python. Read How to Setup? for additional information on setting up the application.

🏆 Install

🔮 Features

  • Minimalistic UI
  • Lightweight
  • Customizable Wake Word
  • Type/Speak commands
  • Search Wiki, Google and YouTube
  • Open Windows Apps
  • Mathematical Calculations
  • Human-like Conversations

who.are.you.mp4

📚 Overview

September uses For
Google Speech Recognition Speech recognition
Pyttsx3 Text to Speech
Tkinter GUI
Wikipedia API Wiki related search
Wolfram Alpha Processing queries

💻 Code Walkthrough

  • main.py contains the functions for initializing Tkinter-based windows and converting speech to text.

    • The listening process and tkinter frame refresh process run concurrently using threads.
    • Each window is started as a separate thread for them to work parallelly.
    • Start and Stop Listening sounds are played using the playsound module.
    • The input from the user is taken either as a text from the command entry box or as audio from mic button entry place
    • The input is converted to text using SpeechRecognition module and passed to processtext function of processtext.py
  • processtext.py contains the function in which the command processing happens.

    • The input obtained from the user in the main function is passed to the processtext function. It has an if-else ladder to search for specific keywords in the input. If the query does not match with the keywords found in the ladder, it is passed to wolfresponse.py
    • Functions like opening apps, searching web happens here.
  • wikiresponse.py and wolfresponse.py are the places where the respective APIs are accessed to process the output of the unmatched queries from processtext.py

  • texttospeech.py uses the pyttsx3 module to convert speech to text.

    • After processing the query, text to speech function is called.
    • Esc Key is added as a keybind to stop text to speech for one iteration by calling texttospeech_stop function.
  • config_data.json contains the values that are displayed in the September app settings in JSON format. It is used for storing windows application paths, wake word and the API key.

  • requirements.txt contains the list of all the modules used in this program.

🌐 Dependencies

  • requirements.txt contains all the python modules required by the program.
  • All the assets used by the program are present in assets folder. The application won't function as intended without these assets.
  • Built in Python 3.10.1. Use python 3.3 or greater versions.
  • Requires active internet connection.
  • Make sure that your antivirus doesn't block the program from uploading or downloading audio stream data. (Disable antivirus :D)
  • Additionally, the Pyaudio module must be installed by following the below instructions.

Install Pyaudio

  • Find your Python version using in your terminal
python --version
  • Find the appropriate .whl (wheel) file at Pythonlibs and download it.
  • Go to the folder where it is downloaded and install the .whl file using pip,
    For example, if you download the wheel file for Python 3.7 64-bit, your pip command would be,
pip install PyAudio-0.2.11-cp37-cp37m-win_amd64.whl

📝 License

MIT License Copyright (c) 2022 Nithin Balaji