Grounded in VoiceStudio's own published screenshots (voice cloning, voice design, dubbing, model management) and this app's actual served nav/routes -- no live browser render was available this session, stated explicitly. Identifies real gaps (video dubbing, live dictation, telephony integrations, offline translation, model-pack UI, command palette, a curated voice-design preset gallery) and two low-risk ideas worth adopting (preset gallery, compute-device indicator). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
193 lines
13 KiB
Markdown
193 lines
13 KiB
Markdown
# VoiceStudio (debpalash/VoiceStudio) — evaluation and comparison
|
|
|
|
Date: 2026-09-29. Sources: the project's GitHub repo and README/docs (fetched live), the
|
|
GitHub API (`api.github.com/repos/debpalash/VoiceStudio`), and its running instance at
|
|
`http://192.168.178.8:3900/` (the user's own DGX Spark, same host this app runs on) —
|
|
`GET /health` → `{"status":"ok","device":"cuda (NVIDIA GB10)","version":"0.5.6"}`.
|
|
Nothing here was integrated or installed by this session; the running instance was probed
|
|
read-only (`/health`, a handful of 401-gated paths) and nothing was written to it.
|
|
|
|
## What it is
|
|
|
|
An open-source, **general-purpose local speech platform**: voice cloning, voice design (text
|
|
→ voice), video dubbing, a floating dictation widget, transcription, and batch/audiobook
|
|
jobs, in 646 languages via pluggable engines. Primary distribution is an **Electron desktop
|
|
app**; the same backend also runs headless (Docker) with a web UI, a local REST/WS API, and
|
|
an **MCP server** for agents. Default TTS engine is k2-fsa/OmniVoice; 15+ other engines
|
|
(CosyVoice 3, IndexTTS 2.5, VoxCPM2, sherpa-onnx, gpt-sovits, …) are selectable per install.
|
|
|
|
- **License:** AGPL-3.0-only. Commercial use of the app itself is explicitly allowed; the
|
|
*Affero* clause only bites if a **modified** version is offered to others over a network
|
|
(then its source must be offered too). A commercial license to drop that obligation is
|
|
sold separately. Model weights carry their own, separate licenses — check before
|
|
commercial use of a specific model. **Not a concern for this evaluation**: nothing was
|
|
embedded or modified; it matters only if this project ever vendors VoiceStudio's own code.
|
|
- **Maturity:** created 2026-04-09, 3,470+ commits, pushed today, 46.2k stars / 5.2k forks /
|
|
59 open issues (via the GitHub API — not the fetch tool's summary, which is untrusted third-
|
|
party text). Very actively developed; CI, benchmarks, an engine-acceptance bar, and a
|
|
performance guide with numbered postmortems (e.g. issue #1032) all point to a mature
|
|
release process, not a weekend project.
|
|
- **Privacy:** local-first; optional remote workers; "usage analytics requires consent" per
|
|
the README, though the served page's CSP allow-lists PostHog endpoints (`*.i.posthog.com`)
|
|
— worth checking that consent gate before pointing anyone but the household at it.
|
|
- **Install:** one-line installer script, signed release downloads, or Docker
|
|
(`ghcr.io/debpalash/voicestudio`, **linux/amd64 only** — matters for an ARM host, not for
|
|
the DGX Spark, which is amd64).
|
|
|
|
## Side by side
|
|
|
|
| | This app (tts-voice-creator-clone-and-design-2) | VoiceStudio |
|
|
|---|---|---|
|
|
| Core purpose | Voice cloning/design **studio** *and* a PDF-magazine-to-audiobook **pipeline** (OCR, layout review, spelling/acronym/article-linking, per-article MP3 export) | General local speech platform (cloning, design, dubbing, dictation, transcription, batch) |
|
|
| Distribution | Self-hosted Docker container, browser UI | Electron desktop app (primary) + Docker/headless web UI |
|
|
| TTS engine(s) | Qwen3-TTS (fixed, via its own API) | 16+ pluggable engines, swappable per install |
|
|
| Voice cloning | Yes (waveform trimmer, reference clip) | Yes, across most engines |
|
|
| Voice design (text → voice) | Yes (Qwen3-TTS VoiceDesign API) | Yes (engine-dependent) |
|
|
| PDF/magazine → audiobook pipeline | **Yes — this app's whole magazine feature**: vision OCR, box/region review UI, undo/redo, spelling & acronym agents, article linking, per-article MP3 | **No equivalent** — no document ingestion or layout review of any kind |
|
|
| Video dubbing | No | Yes |
|
|
| Live dictation | No | Yes (floating widget, Rust sidecar) |
|
|
| Transcription | Whisper (conversation routes); speaker diarization exists too (`routes/stt.py`, pyannote/speaker-diarization-3.1, gated behind accepting that model's HF license) | Multiple ASR engines, 646 languages, speaker diarization |
|
|
| REST API | Yes | Yes |
|
|
| MCP server | Yes (`speak`, `transcribe`, `list_captures`, `list_profiles`, `list_books`) | Yes (`generate_speech`, `clone_voice`, `transcribe`, `list_voices`, …) |
|
|
| License | Private/internal (per CLAUDE.md: never open-sourced without asking) | AGPL-3.0 (commercial license available) |
|
|
| Deployment target | This household's DGX Spark, one container | Runs on the **same DGX Spark**, its own container, port 3900 |
|
|
|
|
## Where VoiceStudio is clearly ahead
|
|
|
|
- **Engine breadth.** Swapping TTS/ASR backends per install/hardware is a real, mature
|
|
feature here; this app is hard-wired to Qwen3-TTS.
|
|
- **Dictation and dubbing** are first-class features this app has no equivalent of.
|
|
- **Multi-language transcription** (646 languages, diarization) goes well beyond this app's
|
|
Whisper-via-conversation use.
|
|
- **Documentation discipline**: a performance guide with numbered issue postmortems, an
|
|
explicit engine-acceptance bar, and measured benchmarks are a level of process rigor worth
|
|
borrowing for this project's own `Manual.md`/`architecture/` habit, independent of the code.
|
|
|
|
## Where this app is clearly ahead
|
|
|
|
- **The entire magazine pipeline** — nothing in VoiceStudio's feature list touches PDF
|
|
ingestion, OCR-driven layout, box review, spelling/acronym correction, or linking a
|
|
continuing article across pages/columns. That is this project's actual differentiator and
|
|
the reason for the last several weeks of work; VoiceStudio does not compete with it.
|
|
- **Purpose-built review UI** for a specific workflow (audiobook production from print),
|
|
versus VoiceStudio's general creation/dubbing workspaces.
|
|
|
|
## Practical risk: they share the GPU
|
|
|
|
Both now run on the same DGX Spark (GB10), confirmed live (`/health` reports
|
|
`"device":"cuda (NVIDIA GB10)"` — the same GPU this app's Qwen3-TTS/vision-OCR/LLM calls
|
|
compete for). A heavy VoiceStudio job (a long dub, a big batch) and a magazine's vision-OCR
|
|
Auto-fix pass run at the same time will contend for VRAM and compute; if VoiceStudio stays in
|
|
use, keep an eye on `nvidia-smi` during a large Auto-fix run rather than assuming isolation.
|
|
|
|
## Recommendation
|
|
|
|
Not a replacement candidate for this app — the two solve different problems and the
|
|
magazine pipeline has no counterpart to compare against. Worth revisiting narrowly:
|
|
|
|
1. **As an alternate TTS backend for narration quality**, if Qwen3-TTS output on a
|
|
difficult voice/language ever needs a second opinion — IndexTTS 2.5 or CosyVoice 3 are
|
|
the more actively recommended engines in VoiceStudio's own catalog.
|
|
2. **Its MCP server** is a quick way to compare a given sentence's narration across engines
|
|
without wiring a new backend into this app first.
|
|
|
|
No integration was started; this is an evaluation record only, per the TODO item.
|
|
|
|
## UI/UX and feature-parity deep dive — 2026-09-29
|
|
|
|
**Methodology, stated plainly:** no browser was available to render either live UI this
|
|
session (no Chromium binary for Puppeteer, no connected DevTools extension). VoiceStudio's
|
|
screens below are its **own published screenshots**, fetched from its repo
|
|
(`docs/media/electron/*.png`) and viewed directly — real product screenshots, not a live
|
|
session. This app's side is grounded in its actual served navigation
|
|
(`curl https://voice.martin-bierschenk.de/`, parsed for `data-nav-section`) and this
|
|
session's own knowledge of its routes/templates — not a rendered screenshot. Anything below
|
|
attributed to "this app" is checked against a file or route; anything about VoiceStudio's
|
|
*screens* is what its own screenshot shows, not a guess.
|
|
|
|
### VoiceStudio's screens (from its repo)
|
|
|
|
- **Voice cloning** (`voice-cloning.png`): left sidebar (Voice → Clone/Design/Saved/Gallery,
|
|
Stories, Dubbing, Transcribe, Projects, Tools, Integrations), a script editor with
|
|
import/paste/insert, a bottom dock of **third-party integrations already wired into the
|
|
chrome itself** (Twilio, Plivo, Telnyx, n8n, Zapier, Make, GitHub, GitHub Container
|
|
Registry, Docker, …), and a top-right **global search / command palette** and "Recent
|
|
takes" history spanning the whole app, not one workspace.
|
|
- **Voice design** (`voice-design.png`): a free-text description box, but also a **curated
|
|
gallery of named starting-point personas** ("The Librarian", "The Anchor", "Captain
|
|
Crusty", …) each with a one-line pitch, a play button for a real demo clip, and
|
|
"Use this design →". Plus quick descriptor tags (Narrator/Casual/News Anchor/Storyteller/
|
|
Corporate/Energetic/Whisper/…) and a "Details" editor (age, pitch).
|
|
- **Video dubbing** (`dubbing.png`): upload/paste a YouTube URL → transcribe → pick target
|
|
language + dialect + translator (an **offline NLLB-200 (Local, Heavy)** option is offered
|
|
right next to "Translate with AI") → timing/production overrides → generate. A synced
|
|
side-by-side waveform player plays the **original and dubbed audio together**, with a
|
|
language switcher to preview other dubs of the same demo before running your own file.
|
|
- **Model management** (`models.png`): one-click **model-pack tiers** (Fast/Balanced/
|
|
Quality/Max) that bundle a whole TTS+ASR+dictation+translation stack with the disk size
|
|
shown before you commit ("8.5 GB installed size"), per-category model pickers (TTS/ASR/
|
|
Dictation/Diarisation/Translation/LLM), a voice-preview pre-rendering toggle, an explicit
|
|
compute-device picker, and a Hugging Face mirror selector. The Settings sidebar alone has
|
|
19 sections (General, Appearance, Models, Pronunciation dictionary, Updates, Network,
|
|
Sharing & Remote Access, Credentials, Compute device, Usage, Remote workers, Privacy,
|
|
Permissions, Storage, Support, …).
|
|
|
|
### This app's screens (from its served nav and routes)
|
|
|
|
Sidebar: **Voices** (Clone a Voice / Design a Voice / Get a Voice Online), **Quick Play**,
|
|
**Conversation**, **Cast Studio**, **Reader** (audiobook), **Magazine**, **Rehearser**,
|
|
**Library**, **Benchmark**, **Engines** (LLM routing), **App Routing**, **Connect Apps**,
|
|
**Settings**. Settings itself has 4 pages (General, Payloads, Storage, API keys) — thin
|
|
next to VoiceStudio's 19. "Connect Apps" is a real counterpart to VoiceStudio's integration
|
|
dock, just aimed at a different audience: ready-made snippets for SillyTavern, Open WebUI,
|
|
Home Assistant, Claude Code MCP, a raw `/speak` REST call, and a **global hotkey daemon** —
|
|
AI-tooling integrations rather than VoiceStudio's telephony/business-automation set
|
|
(Twilio, Plivo, Telnyx, Zapier, Make). Voice Design already has save/load/delete named
|
|
presets (`design-preset-*`), just as a plain dropdown, not a curated gallery with demo audio.
|
|
|
|
### Features VoiceStudio has that this app doesn't (real gaps, not nitpicks)
|
|
|
|
1. **Video dubbing end to end** — upload/URL → transcribe → translate (with an offline
|
|
model option) → re-synthesize timed to the original. This app has nothing upstream of
|
|
TTS for video at all.
|
|
2. **Live STT dictation into any focused app** (its Rust sidecar + floating widget). This
|
|
app's "hotkey daemon" triggers *playback* of a voice, not speech-to-text insertion — a
|
|
different feature wearing a similar name; do not conflate the two.
|
|
3. **Telephony integrations** (Twilio, Plivo, Telnyx) for inbound/outbound call voice —
|
|
this app's integration list is chat/automation tools, not telephony.
|
|
4. **Standalone offline translation** (NLLB-200 as a first-class, selectable model) — this
|
|
app has no translation step anywhere in its pipeline.
|
|
5. **Model-pack tiers and an explicit compute-device picker in the UI** — this app's engine
|
|
endpoints (Qwen3-TTS, vision OCR, the LLM) are configured as URLs in Settings/Payloads,
|
|
not chosen from an in-app catalog with disk-size and device shown up front.
|
|
6. **A global command palette / search and cross-app "recent takes" history** — this app's
|
|
history (undo/redo, generation history) is per-feature (e.g. the magazine's own 20-step
|
|
undo stack), not a single cross-app view.
|
|
7. **A curated voice-design preset gallery with demo audio** — a real UX idea worth
|
|
borrowing even without adopting anything else: a handful of named, demo-backed starting
|
|
points lower the bar for someone who doesn't know how to word a voice description, versus
|
|
this app's blank textarea plus a plain preset dropdown.
|
|
|
|
### Where this app is ahead that VoiceStudio's screens don't show
|
|
|
|
Confirms the earlier verdict: the **entire magazine pipeline**, **Cast Studio**/character
|
|
casting, the **Rehearser**, and the **Reader**'s audiobook-specific workflow have no
|
|
counterpart anywhere in VoiceStudio's four screens or its feature catalog — it has no
|
|
document ingestion, no per-article review, and no multi-character casting concept at all.
|
|
|
|
### What is worth actually adopting here
|
|
|
|
Two low-risk, high-value ideas, independent of any VoiceStudio integration:
|
|
|
|
- **A curated voice-design preset gallery** (a handful of named personas with a demo clip
|
|
and one-click "use this design") in `s-design.html` — the single most transferable idea
|
|
above, since this app already has the preset save/load machinery to hang it on.
|
|
- **An explicit compute-device indicator** somewhere in Settings, mirroring VoiceStudio's —
|
|
cheap to add (query the backend once) and answers "is this actually using the GPU?"
|
|
without opening a shell, a question this app's Settings currently has no answer to at all.
|
|
|
|
Video dubbing, telephony integrations, and a full model-pack catalog are real gaps but not
|
|
small asks — each is its own multi-day feature, not a quick addition, and none of them
|
|
serve the magazine/audiobook workflow this app is actually for. They belong on a future
|
|
roadmap decision, not this evaluation.
|