版本发布 6
This release localizes the entire app. English, Simplified Chinese (zh-CN), Traditional Chinese (zh-TW), and Japanese (ja) are wired up end-to-end across every tab, modal, dialog, and toast — 559 translation keys per locale, parity verified. Plus a batch of reliability fixes: offline-mode now actually stays offline, Chatterbox accepts reference samples it used to reject, MLX Qwen 0.6B points at the right repo, and macOS system audio survives backgrounding. ### Internationalization ([#508](https://github.com/jamiepine/voicebox/pull/508)) - **i18next foundation** with an in-app language switcher that re-renders the tree on change — lazy-loaded components were holding stale strings without an explicit key-bump on the React root. - **Four locales** at full coverage: English, Simplified Chinese, Traditional Chinese, Japanese. No partial/English-fallback surfaces. - **Every user-visible surface translated**: Stories (list, content editor, dialogs, toasts), Effects (list, detail, chain editor, built-in preset names), Voices (table, search, inspector, Create/Edit modal, audio sample panels), Audio Channels (list, dialogs, device picker), history + story dropdown menus, ProfileCard / ProfileList / HistoryTable, and the unsupported-model note. - **Relative dates** localize via `date-fns` locale objects (`3 days ago` → `3 天前` / `3 日前`) — `Intl.RelativeTimeFormat` doesn't produce the phrasing we use in the history table. - **Dev-build version suffix** (`v0.4.2 (dev)` / `(开发版)` / `(開發版)` / `(開発版)`) is now locale-aware. - **559 translation keys** across all four locales. ### Reliability - **`HF_HUB_OFFLINE` now guards every inference path** ([#503](https://github.com/jamiepine/voicebox/pull/503)) — some engines were still attempting a HuggingFace metadata roundtrip on first load when offline mode was enabled, causing hangs on airgapped or flaky networks. - **Chatterbox reference samples are preprocessed instead of rejected** ([#502](https://github.com/jamiepine/voicebox/pull/502)) — samples outside the expected sample rate or channel layout are resampled to match, rather than failing with an opaque error. - **MLX Qwen 0.6B repo path fixed** ([#501](https://github.com/jamiepine/voicebox/pull/501)) — now points at the published `mlx-community` repo so the model actually downloads on Apple Silicon. - **macOS system audio survives backgrounding** ([#486](https://github.com/jamiepine/voicebox/pull/486), closes [#41](https://github.com/jamiepine/voicebox/issues/41)) — WKWebView was tearing down the audio session when the app lost focus, silently killing system-audio capture. - **MLX backend `miniaudio` dependency pinned** ([#506](https://github.com/jamiepine/voicebox/pull/506)) — `mlx_audio.stt` needs it at runtime and nothing else transitively pulled it in, so `--no-deps` installs were breaking on first use. ### Landing / Docs - **New `/download` page** ([#487](https://github.com/jamiepine/voicebox/pull/487)) — no more dumping first-time visitors onto the GitHub releases list. The API example snippet on the landing page also got an accuracy pass. - **Download redirects work behind reverse proxies** ([#498](https://github.com/jamiepine/voicebox/pull/498)) — uses the public origin instead of `localhost` when resolving platform-specific installer URLs. - **MDX docs audited against the multi-engine backend** ([#484](https://github.com/jamiepine/voicebox/pull/484)) — stale single-engine assumptions removed. - **Three more tutorials + mobile navbar / hero CTA fixes** ([#483](https://github.com/jamiepine/voicebox/pull/483)). ### Linux - **Still not shipping.** The re-enable attempt ([#488](https://github.com/jamiepine/voicebox/pull/488)) landed on `main` but CI still hangs in the `tauri-action` bundler step on `ubuntu-22.04` — no output for 25+ minutes after `rpm` bundling, even with `createUpdaterArtifacts: false` and `--bundles deb,rpm`. The matrix entry is disabled again for 0.4.2; the ubuntu-specific setup steps stay in the workflow so re-enabling is a one-line change once we identify the hang. Next release will take another pass. ### New Contributors - [@shekharyv](https://github.com/shekharyv) — download redirects behind reverse proxies ([#498](https://github.com/jamiepine/voicebox/pull/498))
# The best local voice cloning tool, just got better... See the new website: https://voicebox.sh  > Released 2026-03-15 — [v0.2.1 on GitHub](https://github.com/jamiepine/voicebox/releases/tag/v0.2.1) (version bump due to an immutable release tag on GitHub) Voicebox v0.1.x was a single-engine voice cloning app built around Qwen3-TTS. v0.2.0 is a ground-up rethink: four TTS engines, 23 languages, paralinguistic emotion controls, a post-processing effects pipeline, unlimited generation length, an async generation queue, and support for every major GPU vendor. Plus Docker. --- ## New TTS Engines ### Multi-Engine Architecture Voicebox now runs **four independent TTS engines** behind a thread-safe per-engine backend registry. Switch engines per-generation from a single dropdown — no restart required. | Engine | Languages | Size | Key Strengths | |--------|-----------|------|---------------| | **Qwen3-TTS 1.7B** | 10 | ~3.5 GB | Highest quality, delivery instructions ("speak slowly", "whisper") | | **Qwen3-TTS 0.6B** | 10 | ~1.2 GB | Lighter, faster variant | | **LuxTTS** | English | ~300 MB | CPU-friendly, 48 kHz output, 150x realtime | | **Chatterbox Multilingual** | 23 | ~3.2 GB | Broadest language coverage, zero-shot cloning | | **Chatterbox Turbo** | English | ~1.5 GB | 350M params, low latency, paralinguistic tags | ### Chatterbox Multilingual — 23 Languages ([#257](https://github.com/jamiepine/voicebox/pull/257)) Zero-shot voice cloning in Arabic, Chinese, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Italian, Japanese, Korean, Malay, Norwegian, Polish, Portuguese, Russian, Spanish, Swahili, Swedish, and Turkish. The language dropdown dynamically filters to show only languages supported by the selected engine. ### LuxTTS — Lightweight English TTS ([#254](https://github.com/jamiepine/voicebox/pull/254)) A fast, CPU-friendly English engine. ~300 MB download, 48 kHz output, runs at 150x realtime on CPU. Good for quick drafts and machines without a GPU. ### Chatterbox Turbo — Expressive English ([#258](https://github.com/jamiepine/voicebox/pull/258)) A fast 350M-parameter English model with inline paralinguistic tags. ### Paralinguistic Tags Autocomplete ([#265](https://github.com/jamiepine/voicebox/pull/265)) Type `/` in the text input with Chatterbox Turbo selected to open an autocomplete for **9 expressive tags** that the model synthesizes inline with speech: `[laugh]` `[chuckle]` `[gasp]` `[cough]` `[sigh]` `[groan]` `[sniff]` `[shush]` `[clear throat]` Tags render as inline badges in a rich text editor and serialize cleanly to the API. --- ## Generation ### Unlimited Generation Length — Auto-Chunking ([#266](https://github.com/jamiepine/voicebox/pull/266)) Long text is now **automatically split at sentence boundaries**, generated per-chunk, and crossfaded back together. Engine-agnostic — works with all four engines. - **Auto-chunking limit slider** — 100–5,000 chars (default 800) - **Crossfade slider** — 0–200ms (default 50ms), or 0 for a hard cut - **Max text length raised to 50,000 characters** - Smart splitting respects abbreviations (Dr., e.g., a.m.), CJK punctuation, and never breaks inside `[tags]` ### Asynchronous Generation Queue ([#269](https://github.com/jamiepine/voicebox/pull/269)) Generation is now fully non-blocking. Submit a generation and start typing the next one immediately. - Serial execution queue prevents GPU contention - Real-time SSE status streaming (`generating` → `completed` / `failed`) - Failed generations can be retried without re-entering text - Stale generations from crashes are auto-recovered on startup - Generating status pill shown inline in the story editor ### Generation Versions Every generation now supports **multiple versions** with provenance tracking: - **Original** — the unprocessed TTS output, always preserved - **Effects versions** — apply different effects chains to create new versions from any source - **Takes** — regenerate with the same text/voice but a new seed - **Source tracking** — each version records which version it was derived from - **Version pinning in stories** — pin a specific version to a story track clip - **Favorites** — star generations for quick access ### Language Parameter Fix Qwen TTS models now correctly receive the selected language. The generation form syncs with the voice profile's language setting. --- ## Post-Processing Effects ([#271](https://github.com/jamiepine/voicebox/pull/271)) A full audio effects system powered by Spotify's `pedalboard` library. Apply effects after generation, preview in real time, and build reusable presets. | Effect | Description | |--------|-------------| | Pitch Shift | ±12 semitones | | Reverb | Room size, damping, wet/dry mix | | Delay | Adjustable time, feedback, mix | | Chorus / Flanger | Modulated delay — short for metallic, long for lush | | Compressor | Threshold, ratio, attack, release | | Gain | -40 to +40 dB | | High-Pass Filter | Configurable cutoff frequency | | Low-Pass Filter | Configurable cutoff frequency | - **4 built-in presets** — Robotic, Radio, Echo Chamber, Deep Voice - **Custom presets** — create unlimited drag-and-drop effect chains - **Per-profile default effects** — assign a chain to a voice profile, auto-applies to every generation - **Live preview** — audition effects against existing audio before committing - **Source version selection** — apply effects to any version of a generation, not just the latest --- ## Platform Support ### Windows Support ([#272](https://github.com/jamiepine/voicebox/pull/272)) Full Windows support with CUDA GPU detection, cross-platform justfile, and clean server shutdown using `taskkill /T` for the process tree. ### Linux ([#262](https://github.com/jamiepine/voicebox/pull/262)) Pre-built Linux binaries are not available for this release — the release CI is still broken on Linux and we're working on fixing it. However, this release includes significant Linux improvements that make **compiling from source much easier**: - AMD ROCm GPU acceleration with automatic `HSA_OVERRIDE_GFX_VERSION` for unlisted GPUs - NVIDIA GBM buffer crash fix ([#210](https://github.com/jamiepine/voicebox/pull/210)) - WebKitGTK microphone access for voice sample recording - Cross-platform justfile with Linux-specific setup targets - See the README for build-from-source instructions — we'll ship Linux CI builds as soon as we can ### NVIDIA CUDA Backend Swap ([#252](https://github.com/jamiepine/voicebox/pull/252)) The CPU-only release can download and swap in a CUDA-accelerated backend from within the app. Downloads split parts to work around GitHub's 2GB asset limit, verifies SHA-256 checksums, and restarts the server automatically. ### Intel Arc (XPU) and DirectML PyTorch backend supports Intel Arc GPUs via IPEX/XPU and any-GPU on Windows via DirectML. ### Docker + Web Deployment ([#161](https://github.com/jamiepine/voicebox/pull/161)) Run Voicebox headless: ```bash docker compose up ``` 3-stage build, non-root runtime, health checks, persistent model cache. Binds to localhost only by default. ### Whisper Turbo Added `openai/whisper-large-v3-turbo` as a transcription model option. --- ## Model Management ([#268](https://github.com/jamiepine/voicebox/pull/268)) - **Per-model unload** — free GPU memory without deleting downloaded models - **Custom models directory** — set `VOICEBOX_MODELS_DIR` to store models anywhere - **Model folder migration** — move all models to a new location with progress tracking - **Download cancel/clear UI** — cancel in-progress downloads, VS Code-style problems panel for errors ([#238](https://github.com/jamiepine/voicebox/pull/238)) - **Restructured settings UI** — server settings and model management split into cleaner sections --- ## Security & Reliability - **CORS hardening** — explicit allowlist of local origins instead of wildcard `*`; extensible via `VOICEBOX_CORS_ORIGINS` ([#88](https://github.com/jamiepine/voicebox/pull/88)) - **Network access toggle** — fully disable outbound requests for air-gapped deployments ([#133](https://github.com/jamiepine/voicebox/pull/133)) - **Offline crash fix** — Voicebox no longer crashes when HuggingFace is unreachable ([#152](https://github.com/jamiepine/voicebox/pull/152)) - **Atomic audio saves** — two-phase write prevents corrupted files on crash or disk-full ([#263](https://github.com/jamiepine/voicebox/pull/263)) - **Filesystem health endpoint** — proactive disk space and directory writability checks - **Errno-specific error messages** — clear feedback for permission denied, disk full, missing directory - **Chatterbox float64 dtype fix** — patches S3Tokenizer and VoiceEncoder to cast float64→float32, preventing crashes on certain audio inputs ([#264](https://github.com/jamiepine/voicebox/pull/264)) - **Watchdog respects keep-server-running** — `/watchdog/disable` endpoint prevents the server from shutting down when the app window closes, if configured - **Server shutdown on Windows** — clean process tree termination with `taskkill /T` and `os._exit` fallback --- ## Accessibility ([#243](https://github.com/jamiepine/voicebox/pull/243)) - Screen reader support (tested with NVDA/Narrator) across all major UI surfaces - Keyboard navigation for voice cards, history rows, model management, and story editor - State-aware `aria-label` attributes on all interactive controls --- ## UI Polish - Redesigned landing page with animated ControlUI hero, multi-engine copy, model cards, and voice creator section ([#274](https://github.com/jamiepine/voicebox/pull/274)) - Glassmorphic active state for sidebar buttons with accent border shine - Voices tab overhaul with inline inspector - Responsive layout — pointer-events fix on animations, sticky header with scroll fade, horizontal-scroll voice cards on mobile - Auto-select first story when navigating to Stories tab - App version shown in sidebar - Voice card heights normalized - Audio player title hidden at narrow widths - Duplicate profile name validation with clear error messages ([#175](https://github.com/jamiepine/voicebox/pull/175)) - Model loaded icon uses accent-colored CircleCheck; loaded models show size --- ## Developer Experience - **Justfile** — streamlined dev setup and workflow (replaces Makefile) - **Cross-platform justfile** — works on macOS, Linux, and Windows - Updated README dev quick start with `just` commands - Tauri prerequisite docs updated ([#215](https://github.com/jamiepine/voicebox/pull/215)) --- ## Bug Fixes - Fix generate box overlapping audio player on Stories route - Fix model management JSX closing tag mismatch - Fix LuxTTS generation failures and preserve model selection after generate - Fix download progress tracking for all engines - Fix `chatterbox-tts` install with `--no-deps` to avoid numpy pin conflict - Fix WAV format specification for atomic save temp files - Fix piper-phonemize find-links for LuxTTS install - Remove unused `TTS_MODE` env var from docker-compose - Fix Linux release build exceeding 4GB PyInstaller limit - Fix player not loading new version after applying effects - Fix window close loop on server shutdown --- ## Downloads | Platform | File | |----------|------| | macOS (Apple Silicon) | `Voicebox_0.2.1_aarch64.dmg` | | macOS (Intel) | `Voicebox_0.2.1_x64.dmg` | | Windows | `Voicebox_0.2.1_x64_en-US.msi` | | Linux | Build from source (see README) — CI builds coming soon | | Docker | `docker compose up` | --- ## Community Contributors Thanks to everyone who contributed to this release: - [@haosenwang1018](https://github.com/haosenwang1018) — README grammar fixes ([#230](https://github.com/jamiepine/voicebox/pull/230)) - [@Balneario-de-Cofrentes](https://github.com/Balneario-de-Cofrentes) — CORS origin restriction ([#88](https://github.com/jamiepine/voicebox/pull/88)) - [@ageofalgo](https://github.com/ageofalgo) — Docker + web deployment ([#161](https://github.com/jamiepine/voicebox/pull/161)) - [@mikeswann](https://github.com/mikeswann) — Tauri prerequisite updates ([#215](https://github.com/jamiepine/voicebox/pull/215)) - [@rayl15](https://github.com/rayl15) — Network access toggle ([#133](https://github.com/jamiepine/voicebox/pull/133)) - [@mpecanha](https://github.com/mpecanha) — Offline mode crash fix ([#152](https://github.com/jamiepine/voicebox/pull/152)) - [@ways2read](https://github.com/ways2read) — Accessibility improvements ([#243](https://github.com/jamiepine/voicebox/pull/243)) - [@ieguiguren](https://github.com/ieguiguren) — Linux NVIDIA GBM buffer fix ([#210](https://github.com/jamiepine/voicebox/pull/210)) - [@Vaibhavee89](https://github.com/Vaibhavee89) — Duplicate profile name validation ([#175](https://github.com/jamiepine/voicebox/pull/175)) - [@pandego](https://github.com/pandego) — API port documentation fix ([#250](https://github.com/jamiepine/voicebox/pull/250)) - [@luminest-llc](https://github.com/luminest-llc) — Download cancel/clear UI ([#238](https://github.com/jamiepine/voicebox/pull/238))
### Improved voice profile creation flow, - Voice create drafts: No longer lose work if you close the model - Fixed whisper only transcribing English or Chinese, now has support for all languages ### Improved Stories editor: - Added spacebar for play/pause - Timeline now auto-scrolls to follow playhead during playback - Fixed misalignment of the items with mouse when picking up - Fixed hitbox for selecting an item - Fixed playhead jumping forward when pressing play (the timing anchors bug) ### Generation box improvements - Instruct mode no longer wipes prompt text - Improved UI cleanliness ### Misc - Fixed "Model downloading" toast during generation when model is already downloaded
# Changelog - v0.1.4 ## Audio Channels - Audio channel management system - Native audio playback handling in AudioPlayer component - Improved debugging capabilities for audio playback ## UI Improvements - Refactored ConnectionForm and Checkbox components - Improved layout consistency and responsiveness across components - Added safe area constants for better responsive design - Reorganized App layout with new component structure - Cleaner UI with CheckCircle2 icon removal
### Audio Capture & Format Conversion: - Added audio format conversion util audio.ts - Enhanced system audio capture on both macOS and Windows (significantly improved macos.rs and windows.rs) - Improved audio recording hooks (useSystemAudioCapture, useAudioRecording) - Added audio input entitlement for macOS - Added audio capture tests ### Update System: - Enhanced auto-updater functionality and update status display
# Voicebox v0.1.0 The first public release of Voicebox — an open-source voice synthesis studio powered by Qwen3-TTS. --- ## Download | Platform | Status | |----------|--------| | macOS (Apple Silicon) | Available | | macOS (Intel) | Available | | Windows (x64) | Available | | Linux | Coming soon* | *Linux builds are delayed due to GitHub Actions CI issues. We're working on it and will release Linux support in v0.1.1. --- ## What's in this release ### Voice Cloning with Qwen3-TTS Clone any voice from just a few seconds of audio using Alibaba's Qwen3-TTS model. - **Automatic model download** — Models download from HuggingFace on first use - **Multiple model sizes** — Support for 1.7B and 0.6B parameter models - **Voice prompt caching** — Regenerate instantly without reprocessing audio - **Multi-language** — English and Chinese support ### Voice Profile Management - **Create profiles** from audio files or record directly in the app - **Multiple samples per profile** — Combine samples for higher quality cloning - **Import/Export** — Share profiles or back them up - **Automatic transcription** — Whisper extracts reference text from samples ### Speech Generation - **Simple text-to-speech** — Select a profile, type text, generate - **Seed control** — Reproducible generations with optional seed input - **Long-form support** — Generate up to 5,000 characters at once ### Generation History - **Full history** — Every generation is saved with metadata - **Search** — Find past generations by text content - **Inline playback** — Listen without leaving the app - **Download** — Export audio files to your system ### Flexible Deployment - **Local mode** — Backend runs alongside the desktop app - **Remote mode** — Connect to a GPU server on your network - **One-click server** — Turn any machine into a Voicebox server ### Desktop Experience - **Native performance** — Built with Tauri (Rust), not Electron - **Cross-platform** — Same experience on macOS and Windows - **Bundled backend** — No Python installation required --- ## Tech Stack - **Desktop:** Tauri v2 (Rust) - **Frontend:** React, TypeScript, Tailwind CSS - **Backend:** FastAPI (Python) - **Voice Model:** Qwen3-TTS - **Transcription:** Whisper - **Database:** SQLite --- ## Known Issues - **First launch is slow** — Model downloads (2-7GB) on first use - **Apple Silicon performance** — Generation takes ~10s per paragraph on M1/M2 chips; CUDA is significantly faster - **Linux not available** — CI pipeline issues; coming in v0.1.1 --- ## What's Next We're already working on the next release. Here's a preview: - **Linux support** — Top priority - **Real-time synthesis** — Stream audio as it generates - **Voice effects** — Pitch shift, reverb, and more - **Timeline editor** — Word-level precision audio editing - **Conversation mode** — Multi-speaker dialogue generation - **More models** — XTTS, Bark, and other open-source voice models --- ## Feedback Found a bug? Have a feature request? Open an issue on GitHub or reach out at [voicebox.sh](https://voicebox.sh). --- **Thank you for trying Voicebox!** P.S: This was originally released yesterday, note to self, don't let Claude manage GitHub tags with bypass permissions turned on.