github debpalash/OmniVoice-Studio v0.3.12
v0.3.12 — OmniVoice Studio

2 hours ago

A community-issue sweep — nineteen open reports triaged in one pass, most fixed same-day. The through-line: your active engine selection is now honored everywhere (dubbing, batch, and — new in this release — MLX-Audio's own curated models are finally selectable instead of always silently defaulting to Kokoro), first-run stops dead-ending users on restricted networks or behind corporate TLS proxies, and a run of sharp community diagnoses (a one-line ROCm index fix, a Windows-only focus-stealing bug, a genuine crash regression) got fixed largely because reporters did the hard diagnostic work themselves. Thank you.

Added

  • MLX-Audio's other 6 curated models are finally selectable. The engine multiplexes Kokoro, CSM, Qwen3-TTS, Dia, Chatterbox, MeloTTS, and OuteTTS, but there was no way anywhere in the UI or API to pick which one loads — downloading a model via Settings → Models did nothing, since the backend always defaulted to Kokoro regardless. Settings → Engines now shows a model picker on the mlx-audio row; switching takes effect immediately, no restart needed. (#981)

Fixed

  • First-run no longer dead-ends behind restricted networks (e.g. China). The system check probed hardcoded huggingface.co, and any failure locked the Continue button — users behind the Great Firewall were stuck on the very first screen, even when they had already configured a working mirror. The check now probes the Hugging Face endpoint actually in effect, an unreachable endpoint is a warning instead of a blocker (models already on disk keep working offline), and when huggingface.co is blocked but the hf-mirror.com community mirror answers, the wizard says so and offers a one-click mirror switch right on the check screen — no restart needed. (#984)
  • Installs behind a corporate or antivirus TLS-inspecting proxy no longer fail with a raw SSL error. SSLV3_ALERT_HANDSHAKE_FAILURE happens when a proxy re-signs HTTPS traffic with a root CA your OS trusts but Python's bundled certificate list doesn't — a different failure mode from the network-blocking case above. OmniVoice now trusts your OS's certificate store directly, which should resolve the handshake outright rather than just explain it better. (#976)
  • The loaded-models panel now says when a resident model is not your active engine. Switching TTS engines keeps the previous model in VRAM (so switching back is instant) — but the panel showed it with no context, so "OmniVoice TTS — 1.9 GB" after selecting VoxCPM2 looked like the selection was ignored. A field report confirmed the confusion. Resident-but-inactive models are now tagged "not active — safe to unload", and the API self-describes each entry's engine. (#985)
  • Voices no longer ship with a hidden echo. Every non-raw synthesis was getting a small room reverb baked in by the mastering pre-stage — on top of whatever effect preset you chose, so even "Podcast" (which promises no reverb) had some, and Cinematic/Warm got it twice. A field report ("a lot of echo/reverb on some of the voices") led straight to it. The mastering stage is now highpass + compressor only; reverb happens only when a preset explicitly declares it. Also documented: cloned voices reproduce the reference clip's room acoustics — dry, close-mic references clone cleanest. (#986)
  • Your engine selection now actually applies to Dubbing and Batch TTS. Both hardcoded OmniVoice regardless of what was picked in Settings → Engines — pick VoxCPM2, dub anyway with OmniVoice, no error. Both now resolve the active engine up front; an engine that can't clone from reference audio (KittenTTS, Sherpa-ONNX, Supertonic 3 — fixed preset voices only) fails the job immediately with a clear message naming which engines do support it, instead of silently substituting OmniVoice or mis-cloning every speaker into one voice. Batch only requires cloning when a specific voice is pinned — an unpinned batch job runs on any engine. (#987)
  • AMD ROCm torch install no longer silently falls back to CPU. A community member (Kaihui-AMD) diagnosed it precisely: the ROCm wheel index we pointed at tops out at PyTorch 2.5.1, but the app pins torch==2.8.0 — the reinstall was unsatisfiable and silently kept the default CUDA build, which runs on CPU on an AMD GPU. Bumped the default index to one that actually carries the pinned version. (#972)
  • mlx-audio no longer crashes on unsupported languages. Selecting a language like Dutch, Spanish, or Portuguese with mlx-audio's Kokoro model crashed with a raw, unreadable internal-details dump instead of a real error — the code was guessing an ISO language code by truncating the language name, which only worked by coincidence for a few languages. Unsupported languages now fail cleanly with a message naming what's actually supported, and no engine can leak a raw crash-internals dump into an error message again. (#977)
  • The voice-design panel no longer crashes on certain saved voice profiles. A genuine regression: an earlier translation fix accidentally introduced a crash when a saved design profile's data was incomplete (possible from an older app version or a partial save). Fixed at every layer — the render no longer crashes, both places that restore saved data complete it first, and profiles can no longer be saved with incomplete data in the first place. (#983)
  • Windows: the dictation pill no longer steals focus. Pressing the dictation shortcut activated the pill window, which meant the auto-paste landed back in OmniVoice instead of whatever app you were dictating into, and the pill would get stuck on screen. Precisely diagnosed by a community reporter; fixed to match how this already worked on macOS. (#982)
  • The nemo-parakeet ASR engine's install hint no longer breaks your backend. Following the in-app "pip install nemo_toolkit[asr]" instruction silently downgraded core packages your backend needs to start — the install reported success, and the breakage only showed up on the next restart. The hint now says plainly that this isn't safe to install into the shared environment. (#974)
  • A stuck generate now tells you the actual fix. When a job times out from GPU/VRAM contention, the error explained why but never mentioned Flush/Unload — the one action that actually resolves it, and one the sibling ASR-timeout error already recommended. (#939)

Changed

  • README and Linux docs no longer advertise a .deb package that isn't published. .deb bundling is disabled in the release pipeline pending a tauri-cli fix; the docs now say so honestly instead of pointing at a file that was never in any release. (#961 investigation, #990)
  • Linux install docs mention yt-dlp as an optional prerequisite — previously only surfaced via an in-app warning after the fact. (#973)
  • A benign Tauri startup warning no longer looks like an app problem. On some Windows configurations, Tauri's own internal IPC fallback logs a warning that's fully harmless (it silently and successfully falls back to another transport) — it was spuriously flipping the Settings → Logs footer to show "1 warning" on every launch. Filtered out of the diagnostic capture. (#975)

Linux x64 artifacts

b4a05f27a55f3c990d8f90ea14ed5d5f97e458d5cc2398c5cfcf45e64d0f767b  OmniVoice Studio_0.3.12_amd64.AppImage
fe5a9b108971282ebc7ea3ec3f208f43ba55d9f49db6552913ac66d5edcb5d2e  OmniVoice Studio_0.3.12_amd64.AppImage.sig

macOS Intel artifacts

fb6ca03a6fda306f3040073540b9a737016e33359cd14f52f5067cd5342ecd18  OmniVoice Studio_0.3.12_x64.dmg
26796030c81a5a9482595c456183ba8323c1d1465ce654e8b07be7ccbfc4daad  OmniVoice Studio.app.tar.gz
e7b3c0f177852ac27d0871bb8889453a603feb23a169e4cbb34828b079d8cbd5  OmniVoice Studio.app.tar.gz.sig

Windows x64 artifacts

50e123a95657acbaed67563285e8b8bb7c152c549507c7f08d9fb52c5f7def4e *OmniVoice Studio_0.3.12_x64_en-US.msi
5886650229ed78dd09b77461c7ad4657916d513960e71775bbf516e92bb59d4e *OmniVoice Studio_0.3.12_x64_en-US.msi.sig

Don't miss a new OmniVoice-Studio release

NewReleases is sending notifications on new releases.