{"id":20778848,"url":"https://github.com/tim-gromeyer/voiceassistant","last_synced_at":"2025-07-27T19:37:59.431Z","repository":{"id":153468067,"uuid":"575890835","full_name":"tim-gromeyer/VoiceAssistant","owner":"tim-gromeyer","description":"Empower Your Voice, Secure Your Privacy - Experience VoiceAssistant, Your Customizable Offline Voice Assistant!","archived":false,"fork":false,"pushed_at":"2025-03-23T20:19:51.000Z","size":1860,"stargazers_count":13,"open_issues_count":8,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T19:13:09.698Z","etag":null,"topics":["android","offline-first","qt","raspberry-pi","rule-based","speech-recognition","voice-assistant","vosk-api"],"latest_commit_sha":null,"homepage":"https://tim-gromeyer.github.io/VoiceAssistant/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tim-gromeyer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-08T14:30:04.000Z","updated_at":"2025-03-29T19:53:57.000Z","dependencies_parsed_at":"2023-06-09T10:15:37.333Z","dependency_job_id":"72d3d9f7-5749-4915-be8d-fbaf29aa97ce","html_url":"https://github.com/tim-gromeyer/VoiceAssistant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-gromeyer%2FVoiceAssistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-gromeyer%2FVoiceAssistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-gromeyer%2FVoiceAssistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-gromeyer%2FVoiceAssistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tim-gromeyer","download_url":"https://codeload.github.com/tim-gromeyer/VoiceAssistant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251769415,"owners_count":21640895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","offline-first","qt","raspberry-pi","rule-based","speech-recognition","voice-assistant","vosk-api"],"created_at":"2024-11-17T13:24:31.047Z","updated_at":"2025-04-30T19:32:52.697Z","avatar_url":"https://github.com/tim-gromeyer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NOTE: I will continue developing this when I have some time. I use MarkdownEdit for school and need to improve it\n\n# VoiceAssistant 🎙️\n\n[![Build Status](https://github.com/tim-gromeyer/VoiceAssistant/actions/workflows/build.yml/badge.svg)](https://github.com/tim-gromeyer/VoiceAssistant/actions/workflows/build.yml)\n[![Translated using Weblate](https://img.shields.io/badge/Translated%20using%20Weblate-✅-green)](https://weblate.org/en/)\n\nVoiceAssistant is a resource-efficient and customizable voice assistant that is still in the early stages of development but already functional. 🚀\n\nPrivacy is our top priority, and VoiceAssistant ensures that all operations are performed offline on your local device, keeping your data secure and protected. 🔒\n\n## Goal 🎯\n\nThe main goal of VoiceAssistant is to provide a fully customizable and extendable voice assistant that can be controlled entirely using voice commands. 🌟\n\n## Features ✨\n\n- Fully customizable and extendable (I'm still working on this) ✏️\n- Offline functionality for enhanced privacy and security 🔐\n- Voice recognition for executing predefined commands 🗣️\n- Privacy-first approach with everything offline and local on the device 🏡\n\n## Supported Platforms 🖥️\n\nThe project has been tested on x86_64 Linux, but it should theoretically work on the following platforms:\n\n- [x] Aarch64/Arm64 Linux/Android/Raspberry Pi\n- [x] Armv7l Linux/Android\n- [x] Riscv64 Linux\n- [x] x86 Linux/Android\n- [x] x86_64 Linux/Android\n- [x] 32-bit Windows (not suggested and untested)\n- [x] 64-bit Windows\n- [x] macOS (Intel)\n- [ ] macOS (M1)\n- [ ] iOS\n- [ ] WebAssembly\n\nNote: The Android build works and starts, but I can't load the speech-to-text plugin.\n\n## To-Do's 📝\n\n- [ ] Full customizability\n- [ ] Implement Whisper.cpp backend (this will add WebAssembly, iOS, and M1 macOS support)\n\n## Customization 🎛️\n\n**In the near future, I'll add settings to the app!**\n\nTo customize the commands, edit the `commands/\u003cyour_language\u003e/default.json` file.\n\nThere are some default commands. See [Add Commands](#add-commands).\n\n## Add Commands ➕\n\nTo add your command, edit the `commands/\u003cyour_language\u003e/default.json` file. The supported values are:\n\n| Name        | Type             | Description                                                 | Notes                                             |\n|-------------|------------------|-------------------------------------------------------------|---------------------------------------------------|\n| `commands`  | Array of strings | All commands that the voice assistant should react to       | Required                                          |\n| `funcName`  | String           | The name of the function to call (`MainWindow::\u003cfuncName\u003e`) |                                                   |\n| `responses` | Array of strings | It selects a random response from the array                 | Use `[wait \u003cnumber of ms\u003e]` to wait between words |\n| `program`   | String           | A program to execute                                        |                                                   |\n| `args`      | Array of strings | Arguments passed to `program`                               | `${TEXT}` will be replaced with the voice input   |\n| `sound`     | String           | Path to local or remote file that gets played               | Volume can be controlled via voice/GUI            |\n\n## Build 🛠️\n\nSee the build section in [INSTALL.md](INSTALL.md) ([direct link](INSTALL.md#build)).\n\n## Translation Status 🌍\n\nYou can check the translation status of VoiceAssistant on Weblate (click the image below):\n\n[![Translation Status](https://hosted.weblate.org/widgets/voiceassistant/-/multi-auto.svg)](https://hosted.weblate.org/engage/voiceassistant/)\n\n## Creating a plugin 🧩\n\nSee [plugins/README.md](plugins/README.md)\n\n## Credits 💙\n\nVoiceAssistant uses the following open-source projects:\n\n- [Vosk](https://github.com/alphacep/vosk-api) for voice recognition\n- [11Zip](https://github.com/Sygmei/11Zip) for unzipping voice models\n- [JokeAPI](https://jokeapi.dev) for telling jokes\n\nThank you to these amazing projects and their contributors for making VoiceAssistant possible! 🙏\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-gromeyer%2Fvoiceassistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftim-gromeyer%2Fvoiceassistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-gromeyer%2Fvoiceassistant/lists"}