Open-source. Opinionated. Welcoming.
Sync Speak is MIT-licensed and actively developed. The codebase is small, the pipeline is documented end-to-end, and the contribution workflow is boringly professional on purpose — branch protection, issue-driven branches, CI on every PR.
Three-tier architecture
Shell (Rust, Tauri v2)
Native window with transparency, IPC bridge to the UI, persistent history and
config storage. Code at src-tauri/.
UI (React 19, TypeScript, Zustand)
TranslatePage, HistoryPage, VoicesPage, GuidePage, Settings modal. Liquid Glass
CSS design system. No Tailwind. Code at src/renderer/.
Audio sidecar (Python)
Command loop, VAD, pipeline orchestration, Sarvam and Groq API wrappers. Code
at python/.
Tech stack
- Shell Tauri v2 (Rust) Native window, IPC bridge, history/config storage
- UI React 19 + TypeScript + Zustand Pages, state, Liquid Glass design system
- Build Vite 6 Frontend bundling, HMR, TS strict
- Sidecar Python 3.11 + sounddevice Audio capture, pipeline orchestration
- STT Sarvam Saarika v2.5 Hindi/Hinglish speech to text
- LLM Groq Llama 3.3 70B Translation with 5-utterance context
- TTS Sarvam Bulbul v3 English speech synthesis, sentence-pipelined
- VAD webrtcvad (Google Neural VAD) Speech/silence detection
Contribution workflow
- Open an issue first. Every branch is issue-driven. Use the bug report or feature request template.
- Branch from
develop. Naming is enforced by CI:<type>/issue-<n>-<desc>wheretype∈feat · fix · docs · refactor · chore · hotfix. - Commit in the project style.
<type>: <imperative subject>. One logical change per commit. - Open a PR against
develop. CI runs branch-name, Python, TypeScript, Rust, and website-build checks. - Maintainer reviews & merges. Production promotion happens
via a separate
develop → mainPR.
Good first issues
- Add a new Bulbul voice preset
- Refine a Hinglish correction in the table
- Improve a docs page for clarity
- Add a new language (Tamil, Bengali, Marathi) to the STT step
- Add a Lighthouse CI check for this website