Open-source desktop application for real-time voice-to-voice translation
Features • Installation • API Keys • Usage • Contributing • License
Features
- Real-time Speech-to-Text - Powered by Deepgram's advanced speech recognition
- AI Translation - Uses Google Gemini for context-aware translation
- Text-to-Speech - Natural voice synthesis with Piper TTS
- Multi-language Support - Supports 20+ languages
- Privacy-First - All API keys stored locally, no data sent to third parties
- Cross-Platform - Works on Windows, macOS, and Linux
Prerequisites
- Virtual Audio Device - Required for routing audio
- macOS: BlackHole or Loopback
- Windows: VB-Cable or Virtual Audio Cable
- Linux: PulseAudio/PipeWire virtual sinks
Installation
Pre-built Downloads (Recommended)
Download the latest version for your platform from ztalk.ai - no build required!
From GitHub Releases
Download from the Releases page.
From Source
# Clone the repository git clone https://github.com/kshitijdixit/ztalk-realtime-voice-translator.git cd ztalk-electron-app # Install dependencies npm install # Start in development mode npm start # Build for production npm run package
API Keys
ZTalk requires you to bring your own API keys. Your keys are stored locally and never transmitted to any server.
Required Keys
| Service | Purpose | Get Your Key |
|---|---|---|
| Deepgram | Speech-to-Text | console.deepgram.com |
| Google Gemini | AI Translation | makersuite.google.com |
Optional Keys
| Service | Purpose | Get Your Key |
|---|---|---|
| Google Translate | Fallback translation | Google Cloud Console |
| ElevenLabs | Premium voice synthesis | elevenlabs.io |
| Azure Speech | Alternative STT/TTS | Azure Portal |
Configuring Keys
- Launch the application
- Click the menu icon (⋮) in the top right
- Select Settings
- Enter your API keys
- Click Save Settings
Usage
Basic Setup
- Install a virtual audio device (see Prerequisites)
- Launch ZTalk and enter your API keys in Settings
- Select your devices:
- Input Device: Your microphone
- Output Device: Your speakers/headphones
- Virtual Mic: Virtual audio output (for apps like Zoom/Discord)
- Virtual Speaker: Virtual audio input
- Select languages:
- Input Language: The language you speak
- Output Language: The language to translate to
- Click the microphone button to start translating
Use Cases
- Video Calls - Route audio through virtual devices for real-time translated calls
- Live Streaming - Translate your speech in real-time for international audiences
- Language Learning - Practice speaking and hear translations instantly
- Accessibility - Bridge communication gaps in multilingual environments
Tech Stack
- Electron - Cross-platform desktop framework
- React - User interface
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Styling
- Deepgram SDK - Speech recognition
- Google Generative AI - Translation
- Piper TTS - Voice synthesis
Project Structure
ztalk-electron-app/
├── src/
│ ├── main/ # Electron main process
│ ├── renderer/ # React frontend
│ │ ├── components/ # UI components
│ │ ├── utils/ # Utilities and constants
│ │ └── Deepgram/ # Translation logic
│ └── __tests__/ # Tests
├── assets/ # Icons and images
└── release/ # Build output
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Quick Start
# Fork and clone the repo git clone https://github.com/kshitijdixit/ztalk-realtime-voice-translator.git # Create a branch git checkout -b feature/amazing-feature # Make your changes and commit git commit -m "feat: add amazing feature" # Push and create a PR git push origin feature/amazing-feature
Security
- API keys are stored locally using electron-store
- No telemetry or analytics
- All API communications use HTTPS
- See SECURITY.md for our security policy
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Electron React Boilerplate - Project foundation
- Deepgram - Speech recognition
- Google Gemini - AI translation
- Piper TTS - Voice synthesis
Made with ❤️ by the ZTalk community