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.0 or greater versions for a better experience.
  • 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) 2021 Nithin Balaji

GitHub

View Github