NOTE: I will continue developing this when I have some time. I use MarkdownEdit for school and need to improve it
VoiceAssistant is a resource-efficient and customizable voice assistant that is still in the early stages of development but already functional. 🚀
Privacy is our top priority, and VoiceAssistant ensures that all operations are performed offline on your local device, keeping your data secure and protected. 🔒
The main goal of VoiceAssistant is to provide a fully customizable and extendable voice assistant that can be controlled entirely using voice commands. 🌟
- Fully customizable and extendable (I'm still working on this) ✏️
- Offline functionality for enhanced privacy and security 🔐
- Voice recognition for executing predefined commands 🗣️
- Privacy-first approach with everything offline and local on the device 🏡
The project has been tested on x86_64 Linux, but it should theoretically work on the following platforms:
- Aarch64/Arm64 Linux/Android/Raspberry Pi
- Armv7l Linux/Android
- Riscv64 Linux
- x86 Linux/Android
- x86_64 Linux/Android
- 32-bit Windows (not suggested and untested)
- 64-bit Windows
- macOS (Intel)
- macOS (M1)
- iOS
- WebAssembly
Note: The Android build works and starts, but I can't load the speech-to-text plugin.
- Full customizability
- Implement Whisper.cpp backend (this will add WebAssembly, iOS, and M1 macOS support)
In the near future, I'll add settings to the app!
To customize the commands, edit the commands/<your_language>/default.json
file.
There are some default commands. See Add Commands.
To add your command, edit the commands/<your_language>/default.json
file. The supported values are:
Name | Type | Description | Notes |
---|---|---|---|
commands |
Array of strings | All commands that the voice assistant should react to | Required |
funcName |
String | The name of the function to call (MainWindow::<funcName> ) |
|
responses |
Array of strings | It selects a random response from the array | Use [wait <number of ms>] to wait between words |
program |
String | A program to execute | |
args |
Array of strings | Arguments passed to program |
${TEXT} will be replaced with the voice input |
sound |
String | Path to local or remote file that gets played | Volume can be controlled via voice/GUI |
See the build section in INSTALL.md (direct link).
You can check the translation status of VoiceAssistant on Weblate (click the image below):
VoiceAssistant uses the following open-source projects:
Thank you to these amazing projects and their contributors for making VoiceAssistant possible! 🙏