phuc-nt/my-translator: Real-Time Speech Translation with Zero Server
phuc-nt/my-translator: Real-Time Speech Translation with Zero Server
Real-time speech translation usually means routing your audio through cloud pipelines you don't control—paying for compute you can't audit, trusting servers you can't inspect. phuc-nt/my-translator takes a different path: a Tauri-based desktop app that captures system or microphone audio, streams it directly to translation APIs you configure, and renders translated text in a minimal floating overlay. No intermediary server. No telemetry. Your keys, your audio, your machine.
Built in Python↗ Bright Coding Blog and Rust via Tauri 2, the project has attracted 1,205 GitHub stars and 389 forks since its launch, with steady development through its most recent commit on July 11, 2026. It ships under the MIT License and supports macOS (Apple Silicon and Intel) and Windows 10/11. This article breaks down how it works, what it actually delivers, and where it fits in a developer's toolkit.
What is phuc-nt/my-translator?
phuc-nt/my-translator is an open-source desktop application for real-time speech-to-text translation, maintained by phuc-nt on GitHub. It sits at the intersection of audio capture, machine translation, and desktop GUI development—a category that includes commercial tools like Otter.ai or Zoom's live transcription, but with a critical architectural difference: zero server-side processing by the application itself.
The app is built on Tauri 2, which pairs a Rust backend with a WebView frontend. This choice matters for two reasons. First, Tauri produces smaller, faster binaries than Electron while maintaining native OS integration. Second, Rust's memory safety and performance characteristics make it suitable for real-time audio pipelines. The frontend handles overlay rendering; the backend manages audio capture, WebSocket streams to translation providers, and local file I/O for transcript storage.
Audio capture uses platform-native APIs: ScreenCaptureKit on macOS for system audio, WASAPI on Windows, and cpal cross-platform for microphone input. The 16kHz PCM stream fans out to one of four translation engines:
| Engine | Output | Latency | Cost |
|---|---|---|---|
| Soniox | Text | ~2s | ~$0.12/hr |
| OpenAI Realtime | Text + native voice | ~2s | ~$4/hr |
| Qwen LiveTranslate Flash | Text only | ~4s | Free preview |
| Local MLX | Text | ~10s | Free (Apple Silicon only) |
The project is relevant now because real-time translation is moving from batch/cloud to streaming/edge, but most solutions still require trusting a vendor's infrastructure. phuc-nt/my-translator's "no server" model addresses this directly—though it shifts operational complexity to the user (API key management, provider selection, cost monitoring).
Key Features
Four Translation Engines with Explicit Trade-offs
The app does not hide engine differences behind a unified "AI" label. Each backend exposes distinct latency, cost, and capability profiles. Soniox offers the lowest-cost real-time text translation across 70+ source languages. OpenAI Realtime provides the highest-quality output with native synthesized voice, but at ~33x the hourly cost. Qwen LiveTranslate Flash runs on Alibaba's free preview tier with 60-language support, though it is text-only and requires explicit source language selection. Local MLX enables fully offline operation for Japanese, English, Chinese, Korean → Vietnamese/English, but demands Apple Silicon hardware and tolerates ~10s latency.
Dual-Panel Display with Smart Scroll
Two display modes serve different contexts: Single shows translation text only for minimal distraction; Dual presents source and translation side-by-side with independent scrolling. Auto-scroll activates only when the user is at the bottom—scrolling up to review history does not trigger jumps.
Two-Way Translation for Bilingual Meetings
Beyond one-way source→target translation, the app supports two-way mode: Language A ↔ Language B with automatic speaker detection. This targets video call scenarios (Zoom, Google Meet, MS Teams) where both parties speak different languages. TTS narration auto-disables in this mode to prevent feedback loops.
Custom Translation Terms
Domain-specific vocabulary can be overridden via a terms list:
Original sin = Tội nguyên tổ
Christ = Kitô
Pneumonia = Viêm phổi
This addresses a genuine pain point in specialized fields—religious, medical, technical—where generic translation models fail on proper nouns or established terminology.
TTS with Three Providers
Text-to-speech narration in one-way mode supports Edge TTS (free, neural), Google Chirp 3 HD (free tier: 1M chars/month), and ElevenLabs (premium, ~$5/month+). Edge TTS is the default; quality and Vietnamese voice availability vary by provider. Speed control ranges 0.5x–2.0x for Edge and Google.
Privacy-First Architecture
No account creation. No analytics. No telemetry. API keys store locally. Transcripts save as .md files per session. The app connects directly to configured APIs with no relay.
Use Cases
1. Multilingual Video Calls with Real-Time Captions
A developer working in a distributed team can set Audio Source: Both (System + Mic), enable Two-way Translation, and run Vietnamese ↔ Japanese during a Google Meet call. The overlay floats above other windows; transcripts persist as local Markdown↗ Smart Converter files for later reference. This replaces manual note-taking or post-call translation services.
2. Live Presentation Accessibility
Conference speakers presenting in non-native languages can use Single-panel mode with 140px maximum font size for audience-visible translation. The smart scroll ensures the speaker controls pacing, not the auto-advance algorithm. [INTERNAL_LINK: accessibility-tools-for-developers]
3. Offline Translation for Sensitive Content
Journalists, researchers, or legal professionals handling confidential audio can run Local MLX mode on Apple Silicon Macs. The ~10s latency is acceptable for pre-recorded material review where cloud exposure is unacceptable. JA/EN/ZH/KO → VI/EN coverage targets East Asian–Southeast Asian language pairs.
4. Domain-Specific Live Translation
Medical interpreters or religious translators can preload custom term mappings, ensuring consistent rendering of specialized vocabulary across sessions. The .md transcript output integrates with documentation workflows.
5. Cost-Conscious Continuous Translation
For all-day listening (podcasts, streams, background media), Soniox at ~$0.12/hr or Edge TTS (free) keeps costs predictable versus OpenAI Realtime's ~$4/hr. Users switch engines per context rather than accepting a one-size-fits-all pricing model.
Installation & Setup
Prebuilt binaries are available from the latest release. Select the matching artifact:
| Platform | File |
|---|---|
| macOS Apple Silicon (M1/M2/M3/M4) | MyTranslator_<ver>_aarch64.dmg |
| macOS Intel (pre-2020) | MyTranslator_<ver>_x64.dmg |
| Windows 10/11 | MyTranslator_<ver>_x64-setup.exe |
Note: The
.app.tar.gz,.sig, andlatest.jsonfiles are for the built-in auto-updater—do not download these manually.
To verify your Mac architecture: Apple menu → About This Mac → Chip. Apple M-series → aarch64; Intel → x64. Most Macs from late 2020 onward use Apple Silicon.
The macOS build is signed and notarized. Auto-update checks and installs from Settings.
Build from Source
For developers modifying the app or running on unsupported configurations:
# Clone the repository
git clone https://github.com/phuc-nt/my-translator.git
# Enter project directory
cd my-translator
# Install Node.js dependencies
npm install
# Build Tauri application for production
npm run tauri build
Requirements:
- Rust (stable toolchain)
- Node.js 18+
- macOS 13+ or Windows 10+
The npm run tauri build command compiles the Rust backend, bundles the WebView frontend, and produces platform-native artifacts in src-tauri/target/release/bundle/.
Real Code Examples
The README provides one explicit code block for source builds. Below is the exact command sequence with explanatory context.
Building from Source
git clone https://github.com/phuc-nt/my-translator.git
cd my-translator
npm install
npm run tauri build
What happens here: git clone fetches the full repository including Rust source under src-tauri/, web assets, and documentation. npm install resolves the Node.js dependency tree defined in package.json—likely including @tauri-apps/cli for build orchestration and frontend framework packages. npm run tauri build invokes the Tauri CLI, which:
- Compiles the Rust crate with
cargo build --release - Bundles the compiled binary with the WebView frontend assets
- Generates
.dmg(macOS) or.exeinstaller (Windows) via platform-specific tooling
The Rust backend handles audio stream routing, WebSocket management for cloud translation APIs, and OS-level windowing for the overlay. The WebView layer renders the dual-panel UI and processes user interactions.
Custom Translation Terms Format
While not a code snippet per se, the README documents the terms file syntax:
Original sin = Tội nguyên tổ
Christ = Kitô
Pneumonia = Viêm phổi
Implementation note: These mappings are likely loaded at runtime into a dictionary structure passed to translation engines as prompt context or post-processing replacements. The exact mechanism depends on engine API capabilities—Soniox and OpenAI may accept term injection via system prompts, while local MLX could apply string replacement after generation.
The README does not currently expose additional configuration file formats, API client code, or plugin interfaces. This reflects the project's focus on end-user application packaging rather than library/embeddable use.
Advanced Usage & Best Practices
Engine Selection by Scenario
Match engine to context rather than defaulting to the newest option. OpenAI Realtime excels for high-stakes conversations where voice naturalness matters; its $4/hr cost is justified for short, critical meetings. Soniox is the workhorse for long-duration listening. Qwen is viable for experimentation or non-English-centric pairs before committing to paid tiers. Local MLX is mandatory for air-gapped environments.
Audio Source Configuration for Calls
For two-way translation in video calls, "Both" (System + Mic) is required to capture remote audio and local speech. However, this doubles audio stream processing—expect higher CPU usage and verify that your selected engine handles mixed-source input correctly. Qwen's server-side VAD manages this; Soniox and OpenAI behavior depends on their respective API implementations.
API Key Hygiene
The app stores keys locally, but rotation discipline remains the user's responsibility. For shared machines, consider whether key exposure in plaintext local storage meets your threat model. The MIT license provides no warranty; security auditing of the key storage mechanism (likely OS keychain via Tauri's tauri-plugin-stronghold or similar) is advisable for enterprise deployments.
TTS Feedback Loop Prevention
The app automatically disables TTS in two-way mode, but manual override risks creating feedback: TTS output → mic capture → re-translation of your own translation. If experimenting with custom audio routing, monitor for this condition.
Comparison with Alternatives
| phuc-nt/my-translator | OBS + Live Caption Plugins | Microsoft Translator (Edge) | |
|---|---|---|---|
| Architecture | Desktop app, direct API calls | Streaming software extension | Browser-integrated |
| Privacy | No server; your keys | Depends on plugin | Microsoft cloud |
| Overlay | Native floating window | Scene source within OBS | Web page only |
| Engine choice | 4 (incl. local) | 1–2 (usually cloud STT) | 1 (Microsoft) |
| Two-way | Yes, with auto-detect | No | No |
| Offline | MLX (Apple Silicon) | No | No |
| Cost control | Direct API billing | Varies | Free tier, limits |
| Setup complexity | Medium (API keys) | Low–Medium | Low |
OBS + caption plugins (e.g., closed captioning via Web Captioner) offer simpler setup for streamers already in the OBS ecosystem, but lack translation, two-way support, and engine flexibility. Microsoft Translator in Edge provides frictionless webpage translation but no system audio capture, no overlay for non-browser content, and no offline operation.
phuc-nt/my-translator trades setup simplicity for architectural control. It is not the fastest path to "works out of box" but offers transparency that black-box alternatives cannot match.
FAQ
Q: Does phuc-nt/my-translator work on Linux? A: No. The README specifies macOS 13+ and Windows 10+ only.
Q: Can I use it without any API keys? A: Only Local MLX mode on Apple Silicon requires no external API. All cloud engines need provider keys.
Q: Is the macOS build signed? A: Yes, signed and notarized per the README.
Q: What languages does offline mode support? A: JA/EN/ZH/KO source → VI/EN target, Apple Silicon only.
Q: Does two-way mode work with all engines? A: No. OpenAI Realtime and Qwen disable two-way mode and custom TTS.
Q: How are transcripts stored?
A: As .md files locally, per session. No cloud sync.
Q: What's the actual license? A: MIT License, confirmed in repo stats and README badge.
Conclusion
phuc-nt/my-translator fills a specific niche: developers and technical users who need real-time speech translation without surrendering audio data to opaque infrastructure. Its four-engine architecture with explicit cost/latency trade-offs, privacy-first local execution path, and native desktop overlay distinguish it from browser-based or fully-managed alternatives.
The tool is best suited for: users comfortable managing API keys and provider accounts; Apple Silicon owners needing offline capability; and professionals in specialized domains requiring custom terminology. It is less ideal for those seeking zero-configuration operation or Linux support.
With 1,205 stars, active maintenance through mid-2026, and a permissive MIT license, the project merits evaluation if your translation workflow demands transparency and control. Download prebuilt binaries or build from source at https://github.com/phuc-nt/my-translator.
Outils recommandés
Explore on the BrightCoding network
Hand-picked resources from our other sites.
apple/embedding-atlas: Interactive Visualization for Million-Point Embedding Datasets
apple/embedding-atlas is an MIT-licensed interactive visualization tool for large embedding datasets, featuring WebGPU acceleration, automatic clustering, real-...
ciur/papermerge: Open-Source OCR Document Management for Digital Archives
ciur/papermerge is an Apache 2.0 licensed open-source DMS for scanned document archives, featuring OCR extraction, full-text search, hierarchical folders, and a...
detailyang/awesome-cheatsheet: Curated Technical Cheatsheets for Developers
detailyang/awesome-cheatsheet is a curated, MIT-licensed index of 200+ technical cheatsheets spanning programming languages, frameworks, editors, and tools. Wit...
Continuez votre lecture
The Ultimate Guide to Self-Hosted Workflow Automation Executors: Take Control of Your Automation Empire
AI Research Assistant: How Real-Time Web Scraping is Revolutionizing Knowledge Work in 2025
🎮 The Ultimate Guide to Open Source JavaScript Games: 100+ Free Games & Dev Tools You Can Use Today
Stop Coding Alone: OPC-Skills Gives Your AI Agent Superpowers
Commentaires 0
Aucun commentaire pour l'instant. Soyez le premier à réagir !