Skip to content

v0.4.1 — OmniVoice Studio

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Jul 22:00
9736fd4

Highlights

  • AMD GPUs are used again — every ROCm host was silently running on the CPU
  • Two synth failures that used to say "an error OmniVoice doesn't recognize" now say what actually went wrong
  • A dub URL ingest that fails on a disk problem now says which folder and why
  • A broken audio dependency no longer takes the whole backend down at startup
  • A GPU too small for the chosen engine now says so up front, not after a five-minute wait
  • A port conflict now says so, instead of "Backend died (exit code 1)"
  • A model download that dies at 90% now resumes instead of failing the install
  • First run: Continue and the Hugging Face token box no longer sit under the status bar
  • macOS 12 (Monterey): the app launches again instead of dying on startup
  • Exporting a voice or a dub no longer fails when the name isn't spelled in Latin letters
  • Two more failures that used to arrive as raw OS text now say what to do about them
  • Unload works on every model the panel offers it for, and a language the active engine can't speak says so
  • Deleting a dub no longer un-deletes itself when the job it belonged to finishes

Changed

  • First run: the status bar (Logs, version, Sponsors) appears once you reach the studio, instead of overlaying the setup steps (#1241)

Added

  • OMNIVOICE_MCP_ALLOWED_HOSTS — comma-separated host patterns (e.g. host.containers.internal:*,192.168.1.5:*) that extend the MCP SDK's DNS-rebinding allowlist, so AI agents running in Docker containers or on other machines can reach the /mcp endpoint. The SDK default is localhost-only; this env var is opt-in (#1249)

Docs

  • Docker: ROCm section explains that torch.cuda.is_available() == True isn't proof the app is on the GPU, and notes the --group-add needed for /dev/kfd on rootless hosts (#1228)

Fixed

  • Deleting a dub while it was still importing crashed the import with the toast ingest: 'mgw39lx3' — a dict key and nothing else — and the delete could then be undone by the job's own pending write, in history or mid-render; both are fixed, and no failure can present itself as a bare value again — thanks dustmaker124-ui! (#1252, #1253)
  • macOS 12 (Monterey): the app threw on startup and never started the backend — it called a Safari 16 method on the WebView that macOS ships. It launches and works now; some styling still needs a newer WebView (tracked in #1268) — thanks singhrahat! (#1245)
  • Settings → Engines: Unload failed with 400 Unknown model id: engine:kittentts on any in-process engine — the panel offered the button for ids the backend never accepted; the warm dictation model had the same gap — thanks JavaxmI! (#1247)
  • Picking a language the active engine can't speak recited 23 codes without saying which engine refused or that switching engine was the fix — thanks pulananave! (#1257)
  • A YouTube import that failed as "DRM protected" and then worked on a manual retry now escalates the player client automatically, and a genuinely undownloadable video says so — thanks gysahlgreene! (#1254)
  • Exporting a voice profile, persona, dub, subtitle or stem whose name is Chinese, Japanese, Korean, Cyrillic, Greek, Hebrew or emoji failed with a 'latin-1' codec 500 — every download endpoint now sends the name correctly, and browsers get the real one back — thanks zvxzdx! (#1262)
  • A synth that failed because ffmpeg/ffprobe wasn't on the system path said "an error OmniVoice doesn't recognize"; it now names the media engine and points at Settings → Audio tools, and the app's own copy is published on PATH so dependencies find it in the first place — thanks Heuvelsma! (#1256)
  • Windows "The paging file is too small" arrived as a bare 500; it now explains that this is a virtual-memory setting, not full RAM, and gives the steps to raise it — thanks trankeny545-sudo! (#1251)
  • AMD/ROCm: every ROCm host was silently force-routed to the CPU — the compatibility gate compared a CUDA sm_ tag against a ROCm build's gfx list, which can never match — thanks simmessa! (#1228)
  • AMD/ROCm: torch.compile was disabled on all AMD hosts by the same mismatched comparison (#1228)
  • AMD/ROCm: HSA_OVERRIDE_GFX_VERSION is auto-set only when your card genuinely needs it and the remap target exists in your build; gfx1150/gfx1151 (Strix Point/Halo) added to the map (#1228)
  • Windows blocking an engine file (Smart App Control, WDAC, or AppLocker) is now named, with the fix for personal and managed PCs — thanks AdityaHemantBhat! (#1227)
  • A failed audio write (LibsndfileError: System error.) now names the target file, its folder's writability and the drive's free space — thanks morozov28061995-boop! (#1221)
  • Dub URL ingest: a disk error now names the job folder, its writability and the drive's free space, instead of pointing at the system TEMP folder it never used — thanks dustmaker124-ui! (#1225)
  • Dub URL ingest fails immediately when the job folder is missing or unwritable, instead of starting a download that can only fail (#1225)
  • The backend no longer dies at startup when transformers can't resolve its audio tokenizer (a missing or mismatched torchaudio, common on Google Colab) — it starts, and the error arrives with a repair hint — thanks Navdeep-Chauhan-777! (#1229)
  • Importing omnivoice.utils.* no longer drags in torch, torchaudio, transformers and the full model definition — thanks Navdeep-Chauhan-777! (#1229)
  • Colab notebook: the install cell now catches a broken environment with the real error, instead of a 5-minute health timeout two cells later — thanks Navdeep-Chauhan-777! (#1229)
  • A GPU with less VRAM than the chosen engine needs is flagged in Settings → Engines before you generate, instead of showing a clean green "accelerated" until the job times out — thanks AdityaHemantBhat and @beingavais! (#1226, #1222)
  • A generation timeout now names your actual card and its VRAM and recommends a lighter engine (#1226, #1222)
  • First run: Continue and the Hugging Face token box rendered underneath the status bar, off the bottom of the window — the wizard laid itself out against the viewport instead of its own frame (#1241)
  • A busy port 3900 now reports a port conflict instead of "Backend died (exit code 1)", in every language — thanks xipb14! (#1223)
  • The app verifies it actually freed the port before starting the backend, rather than assuming the kill worked (#1223)
  • A model download truncated near the end is now retried and resumed instead of aborting the whole install — thanks Reaksa-Cambodia! (#1224)
  • Engine first-use downloads (VoxCPM2, MOSS-TTS-Nano) retry transient network failures instead of failing the load outright (#1224)
  • A backend killed by the OS mid-stream now leaves a low-memory trail in the crash report (#1224)

macOS Apple Silicon artifacts

3c88dc39fbef840a81d6c4d5df862d4cb1970bebe320da973e7f304d97e4febe  OmniVoice Studio_0.4.1_aarch64.dmg
be702e7f03913da7a4ff4bb0049dc2dd225d3c5602d959a6dcbcce7330c75049  OmniVoice Studio.app.tar.gz
3845c8a23fc79b8025cd8e3a6b8766901c0d1928ef6e0569e0ee6c25b63a541c  OmniVoice Studio.app.tar.gz.sig

Windows x64 artifacts

d6d407fb26ce2aa7c474909d6cbce236daa044a56e258c46681296ef9c968d00 *OmniVoice Studio_0.4.1_x64_en-US.msi
011c4c8e9c58bf2de3b06a3a76df26718b5c6f0ecb168bd3d495c3b334952e96 *OmniVoice Studio_0.4.1_x64_en-US.msi.sig

macOS Intel artifacts

91fd008c1bbd60b2f665ef7836a326c1756fee5b0cf3db15b9c845d249431f0b  OmniVoice Studio_0.4.1_x64.dmg
84a8b1ac1da95ecdfb1c0be08cb5a4e57ca5cead3e0a14a416caf50e15aec6d7  OmniVoice Studio.app.tar.gz
82e6bb094852c15ebfae54f45c22ac4185d36bd398cf52ac3e1e1c73cf0b26ca  OmniVoice Studio.app.tar.gz.sig

Contributors

Thank you all 💜

@debpalash @paoloantinori