{"id":30853515,"url":"https://github.com/jamro/yova","last_synced_at":"2025-10-23T17:51:05.207Z","repository":{"id":308591533,"uuid":"1033202921","full_name":"jamro/yova","owner":"jamro","description":"YOVA - Your Own Voice Assistant","archived":false,"fork":false,"pushed_at":"2025-09-07T15:42:01.000Z","size":5596,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-07T17:37:22.214Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-06T13:01:17.000Z","updated_at":"2025-09-07T15:42:04.000Z","dependencies_parsed_at":"2025-08-06T20:18:26.181Z","dependency_job_id":"82ab61b8-5753-4bdb-94c6-4527aacb1a60","html_url":"https://github.com/jamro/yova","commit_stats":null,"previous_names":["jamro/voice-command-station","jamro/yova"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jamro/yova","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamro%2Fyova","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamro%2Fyova/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamro%2Fyova/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamro%2Fyova/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamro","download_url":"https://codeload.github.com/jamro/yova/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamro%2Fyova/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276945662,"owners_count":25733087,"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","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-09-07T09:33:50.760Z","updated_at":"2025-09-25T15:59:12.565Z","avatar_url":"https://github.com/jamro.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YOVA - Your Own Voice Assistant\n\nYOVA is an open-source voice interface you can connect to any AI backend. It listens to speech, turns it into text, sends it to your API (ChatGPT, custom agents, n8n, or anything else), and then speaks back the response.\n\nIt's Raspberry Pi–based and ships with 3D-printed case files so you can assemble a compact, standalone device.\n\n![YOVA](./docs/img/yova-simple.png)\n\nThe idea is simple: **you focus on building the brain**, YOVA handles the ears and mouth. It takes care of speech recognition, text-to-speech, and streaming so conversations feel natural and responsive.\n\nBy keeping latency low and supporting flexible endpoints (including REST and WebSockets), YOVA makes it easy to add real-time voice interaction to your applications without dealing with audio processing details.\n\n```mermaid\ngraph TD\n    subgraph Raspberry PI\n        S[Speaker] --- Y[YOVA Core]\n        M[Microphone] --- Y\n    end\n\n    Y \u003c--\u003e A[Your AI Assistant Backend API]\n```\n\n## What YOVA gives you:\n\n- **Compact Pi device**: lightweight enough for edge devices, always ready to listen - a small device you can keep on your desk, in your room, or integrate into other projects. Comes with customizable 3D models so you can print your own version or tweak the design\n- **Multi-language support**: supports multiple languages for speech recognition and text-to-speech, making it convenient for users worldwide\n- **Real-time audio processing**: optimized for low latency voice interactions with streaming architecture\n- **[Voice ID](docs/voice_id.md)**: biometric identification of users by voice for personalization and access control\n- **[Audio post-processing](docs/audio_processing.md)**: advanced signal processing techniques including noise reduction, echo cancellation, and acoustic echo processing to significantly improve speech recognition accuracy\n- **Budget management**: track and manage your costs and budgets\n- **[Modular architecture](docs/architecture.md)**: add plugins, extensions, or connect other hardware without rewriting the core (e.g. add a camera, a screen, a speaker, a button, etc.)\n\n## What YOVA doesn't provide:\n\n- **Not a complete voice assistant**: YOVA is a building block for creating voice assistants, not a ready-to-use solution. The included OpenAI integration is just a simple example to get you started. You need to build your own backend connections to ChatGPT, Claude, custom agents, n8n workflows, or any other API - see [integration guide](docs/integration.md) for details. The real power lies in building your own custom assistant backend that fits your specific needs\n\n## Efficient Processing Flow\n\nYOVA is designed for low-latency voice interactions. Current performance metrics show:\n- **Input latency**: ~60ms median from button press to recording start\n- **Question processing**: ~500ms median from speech end to API call\n- **Answer playback**: ~700ms median from API response to speech start (can be made to feel even better with proper UX strategies)\n\nFor detailed performance analysis, optimization strategies, and pro tips, see the [Performance Guide](docs/performance.md).\n\nThe following diagram illustrates how YOVA processes voice interactions from input to output, showing the streaming architecture that enables low-latency performance:\n\n```mermaid\n    graph LR\n        VC[Voice\u003cbr/\u003e Command] --\u003e|stream| RS[Recording]\n        RS --\u003e|stream| AC[Audio\u003cbr/\u003eClean-Up]\n        AC --\u003e|stream| ASR[Speech\u003cbr/\u003eRecognition]\n        AC --\u003e|audio| VID[Voice ID\u003cbr/\u003eIdentification]\n        ASR --\u003e|text| API[API\u003cbr/\u003eConnector]\n        VID --\u003e|user| API\n\n        API --\u003e|text| B[Backend API]\n        B[Backend API] --\u003e|stream| API\n\n        API --\u003e|stream| TTS[Text-to-Speech]  \n```\n\n\n## Getting Started\n\nTo get started with YOVA, you'll need a Raspberry Pi 5 and a ReSpeaker 2-Mic HAT. The installation process involves:\n\n1. **[Hardware Assembly](docs/install.md)** - 3D print the case and assemble the components\n2. **[Software Installation](docs/install.md)** - Run the automated install script on your Raspberry Pi\n3. **[Configuration](docs/config.md)** - Connect to built-in ChatGPT backend for testing\n4. **[Integration](docs/integration.md)** - Connect to your custom backend API\n\nFor detailed step-by-step instructions, see the [Installation Guide](docs/install.md).\n\n## Development\n\nFor development instructions, see the [Development Guide](docs/develompment.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamro%2Fyova","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamro%2Fyova","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamro%2Fyova/lists"}