A simple Python-based desktop assistant that can perform basic tasks like searching on Google, opening applications, telling the time, and more WITHOUT the use of Machine Learning (ML) or Artificial Intelligence (AI).
- The project is a simple Python-based desktop assistant that can perform basic tasks like searching on Google, opening applications, telling the time, and more.
- The assistant is always under the development phase waiting for more features to be added.
- It is built using Python and does not use any Machine Learning (ML) or Artificial Intelligence (AI) models.
- The assistant is built using the
pyttsx3library for text-to-speech conversion and thespeech_recognitionlibrary for speech recognition. - The project is open-source and contributions and/or feature requests are always welcome.
To get started with the project, follow the instructions below.
- The project is built using Python, so make sure you have Python installed on your system.
-
Download and extract the zip file or clone the repository using the following command.
git clone https://github.com/vihar-s1/Desktop-Assistant
-
In the project root directory run
setupProject.shscript to create a virtual environment, and setup the project.bash setupProject.sh
-
Once setup is complete, simply run the
assistant.pyfile to start using the Assistant.python3 assistant.py
If you encounter the following error on macOS:
File ".../.venv/lib/python3.12/site-packages/pyttsx3/drivers/nsss.py", line 27, in NSSpeechDriver
@objc.python_method
^^^^
NameError: name 'objc' is not defined. Did you mean: 'object'?
Then open the nsss.py library file and import objc at the top of the file.
import objcYou may need to install PyObjC using the following command:
pip3 install pyobjcIf you encounter the following error:
File "/Users/viharshah/Desktop/IdeaProjects/Desktop-Assistant/.venv/lib/python3.12/site-packages/pyttsx3/drivers/nsss.py", line 30, in initWithProxy
self = super(NSSpeechDriver, self).init()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'super' object has no attribute 'init'
sys:1: UninitializedDeallocWarning: leaking an uninitialized object of type NSSpeechDriver
Then replace the super(NSSpeechDriver, self).init() line with the following:
objc.super(NSSpeechDriver, self).init()- If you want to contribute, follow the contribution guidelines here: Contributing Guidelines.
- If you encounter an issue or want to report a bug, following is the Bug Report Template you will be asked to follow.
- Any new feature requests will also be appreciated if it follows the predefined Feature Request Template.
NOTE: The templates are predefined and integrated in the repository so you can go to the Issues Tab and start writing your bug report, or feature request without any problem.
To discuss the project in depth with the contributors of the project about new features, bug requests, or just suggestions, go to the Discussion Page of the repository.