Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tim-gromeyer/voiceassistant
Empower Your Voice, Secure Your Privacy - Experience VoiceAssistant, Your Customizable Offline Voice Assistant!
https://github.com/tim-gromeyer/voiceassistant
android offline-first qt raspberry-pi rule-based speech-recognition voice-assistant vosk-api
Last synced: 3 months ago
JSON representation
Empower Your Voice, Secure Your Privacy - Experience VoiceAssistant, Your Customizable Offline Voice Assistant!
- Host: GitHub
- URL: https://github.com/tim-gromeyer/voiceassistant
- Owner: tim-gromeyer
- License: gpl-3.0
- Created: 2022-12-08T14:30:04.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-24T07:17:16.000Z (6 months ago)
- Last Synced: 2024-08-24T10:57:09.500Z (6 months ago)
- Topics: android, offline-first, qt, raspberry-pi, rule-based, speech-recognition, voice-assistant, vosk-api
- Language: C++
- Homepage: https://tim-gromeyer.github.io/VoiceAssistant/
- Size: 1.71 MB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: COPYING
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# NOTE: I will continue developing this when I have some time. I use MarkdownEdit for school and need to improve it
# VoiceAssistant 🎙️
[![Build Status](https://github.com/tim-gromeyer/VoiceAssistant/actions/workflows/build.yml/badge.svg)](https://github.com/tim-gromeyer/VoiceAssistant/actions/workflows/build.yml)
[![Translated using Weblate](https://img.shields.io/badge/Translated%20using%20Weblate-✅-green)](https://weblate.org/en/)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. 🔒
## Goal 🎯
The main goal of VoiceAssistant is to provide a fully customizable and extendable voice assistant that can be controlled entirely using voice commands. 🌟
## Features ✨
- 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 🏡## Supported Platforms 🖥️
The project has been tested on x86_64 Linux, but it should theoretically work on the following platforms:
- [x] Aarch64/Arm64 Linux/Android/Raspberry Pi
- [x] Armv7l Linux/Android
- [x] Riscv64 Linux
- [x] x86 Linux/Android
- [x] x86_64 Linux/Android
- [x] 32-bit Windows (not suggested and untested)
- [x] 64-bit Windows
- [x] macOS (Intel)
- [ ] macOS (M1)
- [ ] iOS
- [ ] WebAssemblyNote: The Android build works and starts, but I can't load the speech-to-text plugin.
## To-Do's 📝
- [ ] Full customizability
- [ ] Implement Whisper.cpp backend (this will add WebAssembly, iOS, and M1 macOS support)## Customization 🎛️
**In the near future, I'll add settings to the app!**
To customize the commands, edit the `commands//default.json` file.
There are some default commands. See [Add Commands](#add-commands).
## Add Commands ➕
To add your command, edit the `commands//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::`) | |
| `responses` | Array of strings | It selects a random response from the array | Use `[wait ]` 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 |## Build 🛠️
See the build section in [INSTALL.md](INSTALL.md) ([direct link](INSTALL.md#build)).
## Translation Status 🌍
You can check the translation status of VoiceAssistant on Weblate (click the image below):
[![Translation Status](https://hosted.weblate.org/widgets/voiceassistant/-/multi-auto.svg)](https://hosted.weblate.org/engage/voiceassistant/)
## Creating a plugin 🧩
See [plugins/README.md](plugins/README.md)
## Credits 💙
VoiceAssistant uses the following open-source projects:
- [Vosk](https://github.com/alphacep/vosk-api) for voice recognition
- [11Zip](https://github.com/Sygmei/11Zip) for unzipping voice models
- [JokeAPI](https://jokeapi.dev) for telling jokesThank you to these amazing projects and their contributors for making VoiceAssistant possible! 🙏