The cold-start release. Three "why is this broken on my machine" mysteries got solved at their roots: first generations stop dying at 300 seconds (the timeout was counting the model download as generation time — @moduvoice measured it on a Tesla T4: 0% GPU for the full window), updates stop deleting engines you installed yourself (the updater's dependency sync removed anything not in the app's lockfile — including things our own UI told you to install), and the "slower than v0.3.5" regression is found and fixed (clone profiles without a transcript were silently re-running a full Whisper transcription on every single generate). Also: Clear History is back, auto-played audio is finally stoppable, @stronghamjji hardened the dub pipeline against wedged transcribes, and @shakib30's community Colab notebook is now the linked no-GPU path. Thank you all.
Added
- Agent Skills:
npx skills add debpalash/omnivoice-studio. Two installable skills now ship in the repo —omnivoiceteaches any AI agent (Claude Code, Cursor, Codex, …) to speak and transcribe through your local install via the OpenAI-compatible API, including your cloned voices;oss-maintainerpackages the maintainer methodology this project is run with.
Fixed
- A fresh install's first generation no longer dies at 300 seconds while the model is still downloading. The generate timeout was one clock around everything — including the engine's lazy multi-GB weight download on a cold start — so first requests burned the whole budget on the download (0% GPU the entire time, as a contributor's Tesla T4 verification measured) and failed with a misleading "too heavy for the available compute" error. Model loading now runs first under its own, much larger budget; the generate clock starts only once the engine is warm. A genuinely stalled download gets a new error that says so and points at Settings → Models. (#1033, #1037, evidence from #1014)
- The OpenAI-compatible speech endpoint stops silently discarding quality settings.
POST /v1/audio/speechacceptednum_stepandguidance_scalein the request body with a 200 OK — and dropped them without a word, so API callers couldn't reach the model's documented quality preset (num_step: 32). Both are now declared, validated, and passed through to the engine, matching the native/generateendpoint. Caught by a contributor's measured Tesla T4 verification pass. (#1014) - Updating no longer uninstalls engines you added yourself. Optional engines installed with pip into the app's environment (VoxCPM2, KittenTTS — exactly what Settings → Engines' own install hints say to do) were silently deleted by every app update, because the update's dependency sync removed anything not in the app's lockfile. Routine updates now leave your additions alone; the repair path ("Clean & Retry") still restores the exact known-good state, since a broken environment is sometimes caused by an extra package. (#1029)
- Voice cloning stops re-transcribing the same reference clip on every generate. Since v0.3.6, a profile saved without a transcript (the default) triggered a full ASR model load plus a transcription of the reference on every single synthesis — the "TTS got much slower than v0.3.5, same settings" regression. The first auto-transcription is now saved onto the profile, and repeated ad-hoc uploads of the same clip reuse a content-keyed transcript cache — so the cost is paid once, not per request. A transcript you typed yourself is never overwritten. (#1032)
- The Clear History button is back. The workspace redesign moved generation history into the right-side panels but dropped the old sidebar's clear-all control, leaving one-by-one deletion as the only way to empty a long history. Both the Voice and Dub history panels now have a Clear History button (with a confirmation), scoped to that workspace's history. (#1032)
- The audio that auto-plays after a render can finally be stopped anywhere. The finished-render playback has no on-screen player, and the only stop control lived in the Voice workspace's action bar — audio started from the Dub workspace, a profile preview, or after navigating away simply played to the end. A stop button now appears above the status area whenever such playback is active, on every page. The existing Settings → Appearance "Auto-play preview" toggle now also governs this playback, as its description always promised. (#1032)
Linux x64 artifacts
fe0393cf4d80341934929092189973c1fbd30f15fdca91d009a8fec185fa6fb3 OmniVoice Studio_0.3.15_amd64.AppImage
e232068f39cfa640629fac5762d4b0a9485f5502f1eefaa2d2449c87a0146f9d OmniVoice Studio_0.3.15_amd64.AppImage.sig
Windows x64 artifacts
426126f17e52d8fff8d94633d97b807ff7f6df4aab304c641601f55595d8c986 *OmniVoice Studio_0.3.15_x64_en-US.msi
5e79c0576bfe618e443d37e2b9e91f96df341a1502d36fa07edcfb114f415936 *OmniVoice Studio_0.3.15_x64_en-US.msi.sig
macOS Intel artifacts
8e1594ae7546c293922fe67dd4191dd79f11133a32e9d8f119df1813a2cd3ee0 OmniVoice Studio_0.3.15_x64.dmg
00f020d70894cc87770537859f0fa3f1e0980ed5f4f9fd026c8f44305a07455f OmniVoice Studio.app.tar.gz
876d6a08040111a7d2bc734746680c1936f1acb5210aaa8a28a8432e72cb5a8e OmniVoice Studio.app.tar.gz.sig