Skip to content

About

VoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription & audiobook creation in 646 languages.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

2,559 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

VoiceStudio for Nimi

VoiceStudio 0.5.9 adapts the existing VoiceStudio Electron product to Nimi. Clone and design voices, make stories and audiobooks, transcribe recordings, and dub video while retaining the original editing and media workflows.

Nimi supplies the platform account, App Access, AI configuration and all model inference. VoiceStudio keeps its business orchestration, audio editing, media processing, voice library and project state. There is no separate VoiceStudio account. Choose models in Settings → Nimi; no automatic cloud fallback or App-managed model installation is used.

Dashscope endpoint regression (2026-10-15, development)

The workspace-header review fix has now passed a fresh real App regression. After the shared Runtime was released, Nimi pulled 3de016ae4 with autostash and rebase without conflicts; e35db098d became ef91a3ca6 with an identical patch. The rebuilt source Runtime reports that revision and retains the pre-existing unrelated worktree changes. Through the existing supervised VoiceStudio registration and its own CDP, the Beijing workspace connection completed new qwen-audio-3.0-tts-plus voice creation 01M4XZ453S6YDRJJ5Q065GZ2QP and synthesis 01M4XZ4AQRDC8VZ1MZAJCV2KY3. Both Jobs captured the workspace endpoint; the new 5.04-second audio played to the end without a decoding error. MoneyPrinterTurbo also passed Qwen3 TTS with the explicit workspace header in the same run. This supersedes the earlier NOT-VERIFIED status for the new header's Beijing live regression, without claiming Singapore or installed-release verification. Temporary development endpoint and dependency changes were restored, and the App closed normally. No new product code, version publication or Registry/Catalog acceptance was performed in this follow-up.

Nimi checkpoint 604adac4a materializes Qwen/Qwen3 HTTP TTS on the documented regional origin while preserving the captured workspace route for Qwen Audio 3.0, transcription and voice creation. Through VoiceStudio's existing supervised development registration and its own CDP, the same Beijing workspace connection completed new qwen-audio-3.0-tts-plus voice creation (01M4XW3N2K21VJRSV689MC077Y) and synthesis (01M4XW3T9FCH6Z5PRWBFQNHRJC). The 6.16-second audio played to the end without a decoding error. The original 24 kHz catalog-0.5.9-cloud.wav also completed qwen-audio-3.0-asr-flash-streaming Job 01M4XW6QXPNHMZMD5F4B9F1DCH, retaining the full sentence and 14 real word timings. All three Jobs captured the workspace endpoint. No App inference bypass or model fallback was added.

Runtime remoteexecution and nimillm package tests and canonical authority checks pass. The existing complete local SDK 0.21.0, Kit/native 0.21.0 and App Tools 0.13.1 tarballs matched the source supervisor; original dependency files and the temporary development endpoint were restored afterward. The running Runtime also included pre-existing unrelated worktree changes. These results cover the actual Beijing development paths; Singapore live calls and a repaired installed release remain NOT-VERIFIED. No new version or Registry/Catalog run was performed.

Dashscope transcription repair (2026-10-15, development)

The original catalog-0.5.9-cloud.wav reproduced the finite ASR failure through VoiceStudio 0.5.9's supervised development renderer. The provider finalized an empty 0–710 ms segment, then returned the complete sentence with word timings and task-finished. Runtime had rejected that first segment and discarded the later speech. The repair consumes bounded empty segments without inventing text or no_speech; contradictory results, missing completion and an empty total transcript still fail. The original 24 kHz WAV needs no resampling.

Job 01M4XSS9AB5QXJV63F8X34Q76M now completes with “A quiet morning brings a new story, and every voice deserves to be heard.” and 14 actual word timings (1.64–6.88 s). The App displays and retains the transcript. Runtime adapter regressions fail before the repair and pass after it; the full nimillm package tests pass. Temporary raw-response diagnostics were removed.

The Runtime repair checkpoint is b2368a2d8 in the Nimi repository. This used the existing development registration and complete local SDK 0.21.0, Kit/native 0.21.0 and App Tools 0.13.1 tarballs to match the source supervisor; the original dependency declarations and lockfile were restored afterward. Runtime was built from the current Nimi worktree, including its pre-existing uncommitted work; the task's product fix changes only the finite ASR adapter. This is independent of release, Registry and Catalog acceptance. No version was published, and the repaired path in the installed release remains NOT-VERIFIED.

Development

The current package combination uses published App Tools 0.12.0, SDK 0.21.0, Kit/native 0.19.3 and Nimi Coding 0.6.5 with Electron 44. Kit 0.19 selects the formal Nimi Beta service; the earlier 0.18.1 source-development acceptance below remains historical. Kit/native 0.19.3 is published by its formal tag workflow; the installed Windows binding loads successfully. The lockfile pins registry resolutions, so this checkout no longer needs external Nimi tarballs. The accepted installed 0.5.4 artifact remains historical evidence for dev-ecd93c916-voicestudio (App Tools 0.7.0, SDK 0.14.0, Kit/native 0.10.0); it does not verify this new package combination. This checkout uses Node 24 and pnpm 10.34.5.

pnpm install --frozen-lockfile
pnpm run setup:business
pnpm exec nimi-app sync
pnpm exec nimi-app check
pnpm exec nimi-app dev --shell electron

Development also requires uv and a Rust toolchain for the native helper. Desktop and Runtime must be running. Use the exact supervised App CDP URL printed by app-tools. Opening the Vite URL alone does not establish a Nimi session. Use this supervised development path for ordinary changes. Rebuild/install only for changes to frozen resources, production protocols, installation/upgrades or installed data retention. Stop the supervised App before running engineering tests: source fixtures created by tests can trigger a Host rebuild.

The independent Python 3.12.14 environment uses backend/business/uv.lock; it contains deterministic business/media dependencies, not Torch or model engines. Setup is explicit. Normal launch never installs dependencies. The original standalone instructions are archived in README.upstream.md and do not describe this distribution.

Build and local installation

Windows final delivery (2026-10-15)

0.5.9 has now completed its protected tag publication. Exact package, source license, digest and build provenance passed Registry preparation. PR 106 completed final checks and merged after explicit human approval for Windows x86_64 / stable, accepting the recorded limits. Home subsequently discovered, downloaded, verified and installed the exact 0.5.9 Catalog package. The committed release is verified 0.5.9; the old user_imported 0.5.8 record remains intact. This completes Catalog installation without modifying the old binding or App assets. Formal Home launched the Catalog package and its bundled Python business worker; the original six saved voice profiles were visible. Cloud synthesis and voice-creation selections were blocked because the model list had changed. Through public AIConfig, both were explicitly reselected as the same qwen-audio-3.0-tts-plus on the existing Dashscope connector and saved successfully. No endpoint or credential was changed. After the user restored desktop access, the actual Catalog cloud return completed as recorded below. Earlier development results retain their original scope.

On 2026-10-15, a new free description and the text “A quiet morning brings a new story, and every voice deserves to be heard.” completed real voice creation (01M4XQ18J7HWA7VHM0JMMHYCXW) and speech synthesis (01M4XQ1E64VRWHT2T16RJVKY5W) on qwen-audio-3.0-tts-plus. The player reached the end without a decoding error. The native Save As dialog exported .nimi/local/exports/catalog-0.5.9-cloud.wav (330,406 bytes; mono 24 kHz 16-bit PCM; 6.88 seconds). Catalog 0.5.9 cloud narrator was saved as a new profile. Normal close and Home relaunch retained the new profile, its full description, the input text and the prior six profiles. No old profile was overwritten, and no subjective voice-quality guarantee is inferred.

The additional finite cloud transcription test did not pass. After explicitly reselecting the same qwen-audio-3.0-asr-flash-streaming target from the current catalog, the native file picker submitted that exported WAV. Job 01M4XQXAMVE9KMX47MTBWB6XE2 failed with AI_OUTPUT_INVALID and action hint inspect_dashscope_asr_empty_final_sentence. The Runtime driver rejects a final sentence with empty text. The file is valid mono PCM WAV; the official client events allow PCM WAV and arbitrary sample rates. At that time the provider/driver boundary was unresolved; no fabricated transcript, automatic model switch or repeated resubmission was used. This remains the historical Catalog failure. The separate media repair session subsequently fixed Runtime's handling of bounded empty final segments and passed the original WAV through the real development App. The existing transcription and endpoint regression sections above retain the Job IDs, 14 actual word timings and subsequent voice-creation/synthesis results. The investigation is closed; the repaired installed-release media path remains NOT-VERIFIED.

The exact published 0.5.9 package was downloaded and its SHA-256 verified. Its Home local-import preview passed, but installation on Nimi 0.2.4 was rejected with “This version is already installed.” Read-only diagnosis found an active user-imported 0.5.8 release bound to the previous development Runtime installation, not an installed 0.5.9. The formal installation correctly excludes that foreign binding from its launch inventory, while the import owner rejects a fresh install when any committed imported release exists. Consequently Home exposes neither that old package's update action nor a usable new import on this machine. This is a Nimi installation-lifecycle limitation; it is not a VoiceStudio cloud-provider failure. No binding, managed database, old package, voice or project was modified to bypass it. This describes the earlier local-import blocker; the subsequent Catalog install and launch above passed. The prior development acceptance below remains applicable only within its recorded scope.

The ordinary Catalog first installation subsequently passed after explicit human admission. Runtime's Catalog installer checks the verified release source separately from user_imported, so the old imported record did not collide with this installation. The old record and App-owned assets remain intact. This resolves the delivery blockage through a supported source; it does not implement recovery of foreign imported bindings or prove cloud speech.

The Windows x86_64 release line uses published SDK 0.21.0, Kit/native 0.19.3 and App Tools 0.12.0. Fresh typechecks, 542 Electron tests, 563 business tests with an empty offline Hugging Face cache, the installed-scheme proxy regression and 30 native bridge tests pass. Windows build and production pack pass. Setup now prepares its pinned uv and Python worker dependencies in project-local directories before tests/builds, including on a clean CI runner. Public Catalog download/install/launch and fresh cloud voice creation/synthesis passed. The user closed delivery at this Windows x86_64 / stable scope on 2026-10-15, accepting the recorded limits. No superseded pending candidate remains, and no further build or publication is part of this closeout. Other platforms and a later Catalog version upgrade remain NOT-VERIFIED. The media repair results above do not replace the original Catalog transcription outcome.

The separate Home/Lab exit repair session also completed Windows product acceptance on the locally installed Nimi 0.2.5-rc.1 candidate, including normal and Runtime-offline exit and retained data. Development Runtime/Home were restored; the candidate was not publicly released. Its detailed record remains in Nimi's .nimi/local/desktop-exit-20261015/acceptance.txt; it adds no VoiceStudio media coverage and does not change the published App package.

Version 0.5.8's protected tag workflow published successfully, but its portable release-notes field was empty. Version 0.5.9 adds that required declaration; the immutable 0.5.8 Release is retained and business behavior is unchanged.

The publisher declaration covers general-audience voice creation, realistic voice replication, optional usage analytics and local export of text/audio/video. It introduces no account, publication service or new permission. Some WAV/video paths carry synthetic-content metadata, but the declaration does not claim uniform marking across every export format. Existing voices and projects remain in App-owned storage; the technical Electron profile belongs to Nimi.

Formal Beta acceptance and Bailian endpoint migration (2026-10-12)

The registry-only dependency upgrade passes App Tools sync/check, frozen lockfile validation, renderer/Host typechecks and builds, and all 542 Electron tests. A real fixed-service launch exposed nested pnpm selecting global pnpm 11 under a Corepack-owned pnpm 10 lifecycle. The renderer command now explicitly uses Corepack, preserving its pinned package manager. The original supervised launch failed before this one-line correction and passed afterward; App check passes. Current installed dependencies are SDK 0.21.0, Kit/native 0.19.3, App Tools 0.12.0 and Electron 44.7.0. The existing 563 business-test passes remain applicable to unchanged business code.

Nimi 0.2.2 Beta, source 161b7bc29e1ec0e6134e0775d7eeb22adb0fc1ae, passed CI/security and the complete formal publisher. Its published Windows installer completed successfully, and installed Home/Runtime match the signed inventory. VoiceStudio resumed its existing registration on that fixed service; the five original voice profiles and prior exports remain intact. This is actual Desktop-supervised development acceptance with published dependencies, not a new packaged VoiceStudio release.

Through formal Home's Cloud Services UI, the existing Dashscope connector was migrated from the shared domain to this account's Beijing workspace endpoint, https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1. The saved API key was retained. Save & check succeeded with 69 available models. VoiceStudio's stale source-development connector selections were explicitly rebound to this existing fixed-service connector through public AIConfig, retaining qwen-audio-3.0-tts-plus for both voice creation and synthesis and qwen-audio-3.0-asr-flash-streaming for transcription.

The original design page sent a fresh free description and Today we begin a quiet story beside the sea. through the new endpoint, producing a 4.16-second take. Playback reached its end with no decoding error. The Nimi 0.2.2 Bailian narrator profile and original description survived reload, and the new take played to completion again from history. The original audio-file input then transcribed the existing 0.8-second installed-welcome.wav clip to Welcome back. through the selected Cloud ASR; its saved result survived reload. This finite-file check is not a new human microphone test. The native picker was displayed, but the automation tool could not target its child window; it was canceled normally and the existing renderer file input supplied the same file. Native file-picker completion is not claimed from that check.

The retired qwen-voice-design creation path is excluded from accepted operation under the official notice cited below; changing endpoint does not restore it. No MiMo substitution, forced success or broader Qwen3 retirement claim was made. Nimi 0.2.2's catalog still offers the historical Qwen3 VD selection, so it must not be selected for fresh voice creation; catalog cleanup is not included in the immutable 0.2.2 release. A separate minor App presentation issue remains: the optional trait mapper may show “unrecognized” words even though the complete free description is retained and generation succeeds. Gemma and Jev Ultrafast model-quality work remains deferred. Newly packaged-App, macOS/Linux and other unrun journeys remain NOT-VERIFIED.

Published-package acceptance (2026-10-11)

The original Windows development registration launches through Desktop with the published SDK 0.21.0 / Kit 0.18.1 / App Tools 0.11.4 combination and retains the existing voices, projects and result library. Prior upgrade checks, 541 Electron tests, 561 business tests, the installed-scheme protocol regression, renderer/Host builds and frozen-lockfile validation remain applicable. A real Runtime restart exposed a configuration Retry that never reopened the technical session; settings now checks the public auth status before reading and clears a refused snapshot. Its regression and type checks pass, and a second real Runtime restart verified recovery through Retry without restarting the App.

The old Cloud selections required explicit reselection after the model catalog changed. Reselecting the original ASR model restored readiness: the normal file input transcribed the existing installed-welcome.wav acceptance clip to Welcome back., and the result remained readable and editable after reload. Local voice creation and synthesis also ran: Home repaired the existing VoxCPM2 and Qwen3 voice-library environments; an imported 3.6-second acceptance reference was saved as Published packages reference 2026-10-11. With matching local Qwen3 voice creation and Qwen3 TTS Base synthesis, a fresh 97-character request produced 6.8 seconds of audio and played to the end with no decoding error. The new result survived reload and played again from the history panel. Cross-model use of a Qwen3 voice with VoxCPM2 was correctly rejected. The device speech default was restored to its original VoxCPM2 after this temporary Qwen3 acceptance.

Source separation now uploads canonical audio through the public artifacts API, explicitly converts the owned input to 44100 Hz stereo when required, and submits sourceAudio instead of inline bytes. Eight focused Host/settings regressions and type checking pass, including cancellation while preparing audio; App Tools check passes.

The original dubbing workspace transcribed the existing short video locally, translated its two lines into Spanish through Nimi, and generated both speech segments. The new 5.12-second Spanish preview played to completion without a media error and remained available after reload. That video reused its prior ingest, so separation was checked independently by importing the real 3.6-second cloud-public-clone.wav through the original file input: a new audio-separate Job 01M4NQG1N14ZVVQ3TFCH8RPYGH ran, fresh vocals and background WAVs were saved in the new App job 1c15c121-72aa-4645-b042-47e60d648842, and subsequent real transcription returned A clear voice makes the story easy to follow. These checks used matching local models; they do not establish Cloud success or subjective voice quality.

Initial Cloud runs failed with AI_MEDIA_OPTION_UNSUPPORTED (Job 01M4NJC5YNY2CGXEM82PQM0HFH), AI_MODEL_NOT_FOUND for qwen3-tts-vd-2026-01-26 (Job 01M4NJN8C195399H73RBYAVVBM), and ai-input-invalid during the short video's timestamped transcription (Job 01M4NPWJR1CYV14AZ5KS5JCVQ4). Those error codes alone did not establish a provider defect or prove that the failed synthesis request contained a newly created voice. The follow-up below supersedes the earlier attribution.

Cloud speech repair (2026-10-12)

The failing free-description journey was reproduced through the original design page. The retired OmniVoice tag filter discarded prose in the renderer, generation hook and multipart/profile serializers; the captured synthesis consequently had no voice reference and Dashscope rejected it as an invalid voice. The App now preserves descriptive text through generation and saved profiles, keeps explicit trait controls alongside it, retains the description on reload, and refuses an empty design before inference. The ordinary trait presets remain usable. No SDK, Kit or Runtime patch was required; temporary Runtime diagnostics were removed.

Timestamped dubbing transcription had a separate App input error: separated vocals were stereo, while the selected finite transcription contract requires mono PCM WAV. The request copy is now downmixed without changing the original file, sample rate, frame count or timing. The regression failed before the fix. All 563 business tests, 542 Electron tests, type checking and renderer/Host builds passed; the final description-composition adjustment also passed all 24 affected renderer tests.

With the original Cloud qwen-audio-3.0-tts-plus voice creation and synthesis selections, the formerly rejected free description generated a new 3.44-second take for Today we begin a quiet story beside the sea. It played to completion without a decoding error, and the description and take remained after reload. Uploading the original dub-input.mp4 through the dubbing page then completed real Cloud qwen-audio-3.0-asr-flash-streaming transcription with word timing, displaying Schedule a meeting with Pat for Tuesday at three PM and remind me to bring the quarterly report.

The additional Qwen3 configuration previously FAILED: qwen-voice-design targeting the documented qwen3-tts-vd-2026-01-26 returned AI_MODEL_NOT_FOUND during voice creation (Job 01M4NTG9JWCYD3953N6ZCRH11N). The follow-up inspection of the signed-in Alibaba consoles and the current Qianwen Voice Design API found an explicit notice that Qwen voice design has been retired. Its current disposition is RETIRED, not an unresolved endpoint repair. The documented replacement uses voice-enrollment with supported Qwen-Audio-TTS/CosyVoice targets; this does not establish availability of the old qwen-voice-design target. Separately, the official migration notice states that the shared DashScope domain entered maintenance on 2026-09-30, with existing service retained. This account's Beijing workspace endpoint migration and the actual published-service VoiceStudio return passed as recorded above. MiMo is not substituted or counted as the retired voice-design path passing. The supported Qwen Audio 3.0 selections remain active. Native export and unrun installed/cross-platform journeys remain NOT-VERIFIED on this source revision.

pnpm exec nimi-app test
pnpm exec nimi-app build --target windows-x86_64
pnpm exec nimi-app pack --target windows-x86_64 --production

The production pipeline bundles the existing renderer, protected Electron Host, frozen Python business worker, native desktop helper and FFmpeg/ffprobe. Import the resulting .nimiapp with Nimi Desktop and grant App Access. Windows is the first actual acceptance target. Other platforms, Catalog download and public publication are separate and have not been verified.

Versions 0.5.3, 0.5.4 and 0.5.5 are local adaptation updates: Desktop correctly requires a newer version for each installed update. These version changes do not publish a release.

Data and privacy

Existing SQLite data, voice recordings and outputs remain in the App data directory (%APPDATA%/OmniVoice by default). Packaged Electron browser state uses %APPDATA%/OmniVoice/electron-profile; development uses Desktop's supervised profile. Story/audiobook projects can be exported and imported as .voicestudio.json. Those files reference voices and audio in the App library; they do not embed the media or transfer Nimi credentials. No automatic developer-profile migration or user-data deletion is performed.

Analytics remains opt-in. AI routing follows the user's Nimi configuration, so local-only behavior depends on that choice. Synthesized WAVs pass through mark_synthetic and carry file metadata identifying synthetic content. Neural AudioSeal marking is not applied by this integration; metadata can be removed by external re-encoding.

Current acceptance

Product task Verified scope
Reference voice / cloning Saved voice and transcript; real Nimi voice creation and synthesis; completed artifact recovery after carrier repair; App playback; identity lock; native WAV export
Voice design Real description-based design and synthesis; App playback; saved the audition itself as the voice reference
Stories / audiobooks Two saved voices, editable lines, saved project, interrupted-run recovery, real MP3 and M4B render and playback; native MP3 export; M4B chapter timestamps verified; project JSON export/import passed
File / windowed transcription Real file ASR and Nimi text refinement; manual correction, reload retention and native TXT export. Microphone capture start/pause/resume/cancel passed. Real PCM replay returned partial, utterance and EOF. Installed 0.5.8 also passed actual human Chinese dictation, raw TXT export and restart retention with cleanup off; the user confirmed the recognized disfluency matched their speech
Video dubbing / translation / export Real separation and timed ASR; source and Spanish translation editing; consistent reference voice; two synthesized segments; video playback; native MP4/SRT export. The default exported track matches the Spanish mix
Batch and additional audio tools Original installed 0.5.4 coverage remains bounded; see the development follow-up below for newly verified paths and source fixes
Windows production artifact Official build and production pack passed; frozen worker health and UTF-8 voice persistence passed
Desktop installed 0.5.4 Normal update from 0.5.3, launch, App Access and business API passed. Existing history played; a new reference-voice “Welcome back.” take completed through Nimi, played and saved as WAV. Project JSON imported, opened and saved; after a normal Desktop stop/start, both voices, three history entries, the new export and the reopened mixed-voice project remained available

Actual samples and local acceptance scratch are under .nimi/local/ and excluded from Git. Playback verification establishes decodable, non-muted media reaching playback end; voice quality still needs human listening.

Development follow-up after the installed 0.5.4 acceptance

These source changes are being verified with pnpm dev and its exact Desktop-supervised Electron CDP. The previously accepted installation is retained; ordinary business changes do not trigger another release or installation round.

  • Batch: two real Local jobs completed sequentially, one with a designed preset/background preservation and one with a saved voice/no background. Queued cancellation and retry ran the second job exactly once. Both exported videos decoded and played to the end (2.987 seconds). Preset auditions now persist with the dub project, so later edits use the same reference. Cleanup uses the existing reference-safe dub cleanup. Stale queue tickets no longer replay a retried job.
  • Tools: real direction analysis, text-length rate estimates and ffprobe passed. A source clip was transcribed and synthesized into the saved designed voice, duration matched from 5.15 to 5.15008 seconds, stored and played. A/B comparison generated and played both saved voices (2.56 and 3.6 seconds). Conversion now completes processing before publishing history and propagates cancellation through duration matching.
  • Longform: EPUB import preserved the normalized Markdown contents. The same 963- and 93-character chapters were rendered with the saved Cloud designed voice; the first crossed the 800-character chunk boundary. Cancellation after the first completed chapter retained the real cache and marked the App job cancelled. After a business-worker restart, resume reused the first chapter. A media subprocess stdin isolation defect then stalled M4B assembly; its regression failed before the fix and passed after it. The final resume reused both chapters without new AI, produced a 67.21-second M4B (AAC, 24 kHz, mono), and played completely. Chapter boundaries are 0–59.93 and 59.93–67.21 seconds. The first native Save As attempt was blocked by window control. The later 0.5.6 installed result-library export passed and retained the exact original bytes; see below.
  • Text Cloud baseline: only text.generate was explicitly changed from Local to Deepseek deepseek-v4-pro; other capabilities stayed Local. Self-authored non-sensitive direction/rewrite inputs and fictional-name Spanish translation ran through the real App text paths. The JSON/transport paths passed. Direction analysis inferred extra emotions; the rewritten line reported a 4.8-second text estimate for a 4-second slot, so it is not claimed to meet a measured duration. Translation preserved the fictional names, explicit Blue Lantern glossary entry and Tuesday-afternoon report review. Requests and original outputs are retained under .nimi/local/extended-acceptance/ for the later same-input comparison.
  • V4.1 Flash text baseline: the same three requests subsequently passed with the selected deepseek-flash API target. Direction returned calm/neutral/slow/conversational/neutral without extra emotion tags. Translation retained names, the explicit glossary and the report-review facts. Rate rewriting retained the meeting, report, everyone and figures, but estimated 5.933 seconds for the 4-second slot; measured audio fitting is not claimed. These are separate results from the older v4-pro baseline.
  • Cloud voices: the approved official public sample URI created a voice and a playable 3.6-second take. Locking stored the real audition, transcript and formal VoiceAsset ID; another 3.92-second take reused that identity. Pure text design produced a 2.88-second audition that was played and saved with its actual VoiceAsset. URI-only sources save without downloading or running AI; optional preview downloads enforce public network boundaries. This machine resolves the official preview host to a non-public address, so the App preview downloader refuses it; Cloud creation via the formal URI carrier succeeded independently. No local file is published to obtain a URL. Editing a reference clears its old URI/identity, while changing a saved design recipe detaches the old voice rather than ignoring the edits. Expired or incompatible assets fail explicitly. A voice identity does not guarantee identical audio or prosody on every take.
  • Cloud transcription: real requests exposed and fixed a Runtime alignment rejection on whitespace-only provider items. Typed word timings were then returned without invented timestamps. Automatic input-language detection returned a translation for two English samples; Local Whisper recognized the exact new Cloud audio as English. The new file/recording language selector passes the public language field. With explicit English, the same Cloud ASR returned the original English sentence in 2.312 seconds for 3.92 seconds of audio. Manual punctuation correction survived reload; raw text, corrected text, requested language and unknown detected language remain distinct. Automatic-mode fidelity remains a model limitation under investigation; choose a known input language. No private reference recording was sent to Cloud.
  • UI integration: Kit styles and the base light/dark themes now share the App's Tailwind 4 CSS entry. This fixed unstyled tokens and a long model picker whose action buttons were outside the viewport; ordinary mouse selection now works.
  • Configuration and checks: the delivered Kit repair passed real Cloud → Local selection, draft-without-write, Save and restore. The App uses selected referenceAudioInput metadata for URI/bytes/transcript handling; the Runtime repair restored that metadata in effective Cloud selections. Official check/test passed with 528 Electron tests, 557 Python/business/mechanical checks and 30 native tests, plus the real Electron protocol regression. The source version is now 0.5.5 for one concentrated local installed update from 0.5.4.
  • Remaining scope: large-book performance, watch folders, PDF variants, global shortcut insertion, account switching and other platforms remain NOT-VERIFIED. The initially deferred production UI checks were later resumed when computer control recovered; see the installed results below. M4B result-library export required the 0.5.6 repair. Existing installed 0.5.4 and Local product results above remain valid for their stated scope.

Platform changes and limits

The same-package reference verified protected session, App Access, AIConfig, voice creation, synthesis and Desktop package installation before product integration. Shared platform work added the design/reference voice-library recipe, repaired Node artifact-stream EOF cleanup and documented storage adoption's normalized filename. Runtime 58637f121 repaired selected Cloud voice capability metadata and filtered whitespace-only ASR alignment items while retaining real provider word times. Kit in the final 1c5baa05f package set repaired Cloud-to-Local selection. Runtime 322a8fde1 fixed Gemma JSON-object Driver mapping by supplying an explicit object schema; the unchanged product translation request then passed strict completion validation. The App uses the returned asset.relativePath for reads and cleanup. Kit b279ac4e1 fixes origin derivation for Electron custom schemes while retaining exact renderer URL validation; it addresses the first installed launch rejecting app://voicestudio. The App also registers its own scheme and Kit’s public asset descriptor in a single Electron call; a real hidden Electron regression verifies GET and POST through the production protocol, because a second registration disabled fetch while leaving IPC available.

Qwen3 Base reference synthesis uses a saved reference voice. It does not consume speech-style instructions or OmniVoice expression tokens. Speech speed is applied by App-owned FFmpeg processing. Voice design descriptions belong to voice creation. Previews use cancellable finite Jobs; continuous TTS streaming is not claimed. Dictation recognizes buffered audio windows, not a native low-latency stream. For the real 5.15-second replay, the final utterance reported 13.766 seconds for ASR plus text refinement on the current model/machine; no low-latency guarantee is made. Actual human Chinese microphone recognition passed on installed 0.5.8 as recorded below; global shortcut insertion remains NOT-VERIFIED. Multi-speaker identification requires manual assignment until a matching public Nimi contract is available. A real admitted synthesis Job reached CANCELED after the App cancellation action (2026-09-16 01:54:52 UTC); previous history stayed unchanged and the original draft was restored. This regression exposed and fixed a Python HTTP middleware disconnect issue; worker authentication now preserves the original ASGI receive channel. Interrupted story recovery was tested with the actual saved manifest. Additional timing strategies, account switching and cross-platform builds remain NOT-VERIFIED; the development follow-up above records newly covered batch, bounded longform and Cloud paths.

Engineering verification: app-tools check and test passed; the test command covers Electron type checking, all 21 locales, renderer/Host tests, Python business and mechanical checks with an empty offline HF cache, the native helper, and a real isolated Electron protocol GET/POST regression (not installed product acceptance). The installed 0.5.4 baseline passed 522 Electron tests, 545 Python/business/mechanical checks and 30 native tests; the 0.5.5 follow-up counts are recorded above. Windows build --target windows-x86_64 and pack --target windows-x86_64 --production passed. The artifact is dist/nimi-app/nimiplatform.voicestudio-0.5.4-windows-x86_64.nimiapp; its generated .target.json holds the size, digest and observed unsigned production posture. Desktop local update, launch and the agreed installed business/data-retention checks passed on Windows. The installed short take is available at .nimi/local/exports/installed-welcome.wav (PCM16, 24 kHz, mono, 0.8 seconds). That acceptance ended on the restored project; later development runs used the separate supervised profile. Catalog download, public publication and other target machines remain NOT-VERIFIED; this work does not claim those results.

0.5.5 local update artifact

Windows build and production pack passed for dist/nimi-app/nimiplatform.voicestudio-0.5.5-windows-x86_64.nimiapp (1,020,556,210 bytes; SHA-256 f1175cae19a10d03647005efc542ed871a3d0c821f4f66baac65e3e57b57dd51). The platform coordinator completed the normal Desktop update from 0.5.4 and launched the installed App. At that handoff, the installed run was running, App Access was available, the renderer loaded app://voicestudio/index.html, and the packaged business worker reported ready on port 3900. AIConfig revision 10 retained five ready capabilities and the selected routes/models. Read-only checks retained four specified old/new voices, five specified history records and six media files including the 67.21-second book. Anonymous business requests still return 403; no private worker credential was extracted to bypass that boundary. After computer control recovered, the installed UI showed four voices and nine history entries. The saved 2.88-second designed take played to completion and was exported through native Save As (138,406 bytes, 24 kHz mono). The 67.21-second M4B also played completely. Mixed voices acceptance reopened with its title, both original lines, default reference voice and the second line's designed voice preserved. The completed-book result row had no export action; that specific defect is repaired in 0.5.6 below. Development projects remain in the separate supervised browser profile; no automatic migration into the installed profile is claimed.

The complete 67.21-second book is also retained as .nimi/local/extended-acceptance/cloud-library.m4b, copied from the actual App output for review. This copy does not retroactively establish native Save As success.

Completed-result export repair (0.5.6)

Installed 0.5.5 verification found that the Projects library could play completed story/audiobook results but could not export them after their original editor session was gone. Version 0.5.6 adds Download on those result rows, using the existing trusted native save flow and the original MP3/M4B file. It does not regenerate speech or invent an editable project. A pending save blocks duplicate actions; cancellation writes no export-history record. The focused UI regression failed before the change and all three cases passed afterward. Official check/test/build/production pack passed for 0.5.6: 531 Electron tests, 557 Python/business/mechanical checks, 30 native tests and the real Electron protocol regression. The package is dist/nimi-app/nimiplatform.voicestudio-0.5.6-windows-x86_64.nimiapp (1,020,559,308 bytes; SHA-256 7f5faefd822e5fc9d4ed4c811574b3e7a667d2ab540ec05d05095fe27cae5ba4).

Desktop completed the normal 0.5.5 → 0.5.6 update and launch with App Access available. In the installed Projects library, Download on the existing 67.21-second book opened Windows Save As and wrote .nimi/local/exports/installed-0.5.6-cloud-library.m4b. Its 866,114 bytes and SHA-256 a9c9c83082a358b2ae1c7a507f7be3d26cccb5a5727d6ad0a7eddcb7889937a0 exactly match the App's original output, so the existing AAC 24 kHz mono/two-chapter validation applies without another render. The App added the successful export record. This closes the previously deferred native M4B export; no new inference ran. The installed App remains running and development remains stopped. No public publication or Catalog submission was performed.

Shared dictation input language (0.5.7)

The previous file/recording language selector did not reach continuous microphone recognition. The input-language setting now has one persisted value shared by uploaded files, completed recordings, page dictation and the global shortcut widget. Each live session captures it before requesting microphone access; its protected WebSocket and all partial, utterance and EOF-tail ASR calls use that captured language. Auto remains empty. Changing the preference affects new sessions only; it never changes a buffered session midway. Requested input language stays separate from the model's detected language in saved transcripts. The widget shows its captured language, and the page label stays on one line.

These changes reuse the existing Nimi ASR language field and do not change model routes, silence segmentation or cancellation. The existing cleanup setting is restored at Settings → General → Dictation cleanup, with a direct link from Transcriptions, separately from Nimi model configuration. Its default is unchanged: when enabled, finalized recognized text is sent to the configured Nimi text model through that model’s Local or Cloud route. Turn it off in the UI for raw-ASR-only testing; partial drafts are not refined and saved raw text remains separate. Closing and reopening the settings retains the chosen value. The global widget uses the same business preference as page dictation. Targeted frontend and backend regressions failed before the fix and passed afterward. At this preparation stage human microphone recognition was not yet verified; the later installed 0.5.8 result is recorded below, separately from protocol tests. No new AI calls or development Host were started for this repair.

The 0.5.7 Windows package is dist/nimi-app/nimiplatform.voicestudio-0.5.7-windows-x86_64.nimiapp (1,020,573,896 bytes; SHA-256 48654c93291bc2b5a34de7873806cae825e1e0ea38a2f0279ac9940dee42be94). Desktop completed the normal update and launched the exact new release with App Access available. In the installed UI, Chinese input language remained selected after navigation, and Dictation cleanup remained off after leaving and reopening General settings; its dependent options were disabled. No microphone capture or new AI request was started during these preparation checks. At that stage human recognition was pending the user's explicit route choice and actual reading. The language search placeholder currently exposes common.search; this observed cosmetic issue did not block selecting the language and is not a reason to regenerate this accepted package.

Quiet-input handling and useful failures (0.5.8)

The first human dictation attempts failed with Runtime AI_OUTPUT_INVALID; the App displayed only a failure heading because it discarded WebSocket and microphone error details. The original combined Runtime hint cannot identify the exact failing branch for those attempts. A separate controlled replay proved that the old App submitted 0.6 seconds of pure zero PCM before speech; Runtime rejected that Job with inspect_dashscope_asr_empty_final_sentence.

The App now uses its existing RMS threshold to gate recognition, retaining 200 ms of quiet pre-roll rather than submitting silent waiting periods. Pure silence followed by EOF ends an empty App session without an ASR call, without a history entry, and without pretending Runtime returned no_speech. Speech windows keep the captured input language, normal segmentation, cancellation and EOF handling. Page and global-widget errors retain a scrubbed actual cause/Job ID, with localized fallbacks when no cause exists; later socket closure cannot overwrite the first failure. Diagnostic logs keep failure class/Job identity, not audio or recognized text.

After fail-before/pass-after regressions, a real protected App WebSocket replay used two already approved synthetic English clips, leading silence and a pause: all 129,280 samples (8.08 seconds) were sent, both utterances completed and the EOF summary retained the same total duration. Recognition returned “May” instead of the generated script’s “Today” in the second sentence; that difference was retained, not corrected into a false perfect result. A separate two-second all-zero replay ended an empty App session. These replays did not use a microphone and do not establish that the original human Chinese path is fixed. The subsequent human re-verification is recorded below. The selected npm package combination is unchanged; the Runtime diagnostic split is platform commit d1ffdac28.

The 0.5.8 Windows package is dist/nimi-app/nimiplatform.voicestudio-0.5.8-windows-x86_64.nimiapp (1,020,593,899 bytes; SHA-256 7b06663c7e18b51d620bdc81d6efc213547cebe2cebe46bf792ad49681449b2f). Desktop completed its normal local update and launched the exact new release. Installed UI checks retained Chinese input language, cleanup off with its three dependent options disabled, and the four existing voices. App Access remained available and AIConfig revision 10 retained the ready Dashscope ASR selection. No microphone capture was started during these preparation checks. Human recognition was not claimed from those preparation checks or the synthetic replay.

Installed human dictation and account recovery

With explicit user approval for the existing Dashscope Cloud route, Chinese input language and cleanup off, installed 0.5.8 captured actual human speech and saved two raw utterances (displayed durations 4.4 and 6.7 seconds). The user confirmed that the repetition in the second utterance was their own spoken correction, not an ASR or stitching defect. The original recognized text was left unchanged. Native export wrote .nimi/local/exports/installed-0.5.8-live-zh-raw.txt (189 bytes), containing each utterance once. Requested input language remained zh; the model's unknown detected language was not relabeled as Chinese. Both original records and their metadata survived a normal stop and launch. Existing manual-edit/save verification was reused rather than altering these faithful human results.

After that restart, Desktop reported that its account session could no longer refresh; the old App session was revoked. This was kept separate from the successful recognition/export/storage results and was not treated as an App lifecycle defect. The user completed the normal Desktop login. With no active inference, a normal stop and launch of the same 0.5.8 installation restored authenticated operation: App Access available, five ready capabilities at AIConfig revision 10, a green Nimi indicator and enabled input controls. The two human records remained intact. No code change, repack, new model call or repeated recording was used for account recovery. The installed App is left running and development is stopped; the selected Windows scope is complete. Public publication and Catalog submission remain separate and were not performed.

Support

For missing AI access or model configuration, check Desktop App Access and Settings → Nimi. For an App startup failure, restart from Desktop and retain the visible error, App version and affected action for the fork maintainer. Keep the disclosed data directory intact; deleting voices or projects is not a repair step. Do not include credentials in diagnostic material.

License and upstream

This fork retains the original AGPL-3.0 license, notices and contributor attribution. Adaptation began at upstream baseline 4e55180f700e2ce1b39195ec7377b9b3da8e20b2. Archived upstream workflows and installation material are historical references, not active Nimi release instructions. This work does not publish a release or submit a Catalog entry.

About

VoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription & audiobook creation in 646 languages.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages