diff --git a/TODO.md b/TODO.md index 2d80752..16ce757 100644 --- a/TODO.md +++ b/TODO.md @@ -167,19 +167,22 @@ rules beat what was built up by hand, and to feed every difference back into the ### Voice Studio (github.com/debpalash/voicestudio) — evaluation, container, comparison -- [ ] **1 — Study Voice Studio.** Read its repository (README, licence, architecture, model/engine list, - API, UI, deployment files) and record what it does. Check licence, cost, data flow and maintenance state - before running anything (project rule 8); no scraping, read only what the repository publishes. -- [ ] **2 — Run it as a Docker container.** Add it as its own service (own compose file or profile, not - inside this app's image), on the DGX Spark next to the TTS engines, with pinned versions, a non-root user - and no secrets in the image. Verify it starts, serves its UI and generates audio; document the exact - commands, ports, volumes and GPU needs, and how to stop or remove it without touching this app. -- [ ] **3 — Detailed comparison with this software.** A written comparison (`docs/` or `architecture/`) - covering: voice cloning and voice design, supported engines/models and languages, audiobook and - multi-voice/character casting, magazine and PDF ingestion, STT, API/automation (REST, MCP, jobs), UI, - accessibility and mobile, offline/self-hosting, licensing, performance and resource use, security, and - maintenance. Back every claim with something observed (a run, a measurement or a quoted source), list what - each does better, and end with what is worth adopting here. +- [x] **1 — Study Voice Studio.** 2026-09-29: read the repo (README, LICENSE-NOTICE.md, feature-catalog.md, + engines/README.md, speech-platform.md, performance.md, mcp.md, docker.md) and the GitHub API record + (46.2k stars, 3,470+ commits, pushed today, license `AGPL-3.0-only` — quoted exactly from the API, not + the fetch tool's summary). AGPL-3.0: commercial use of the app is explicitly allowed; the Affero clause + only applies to a *modified* version offered to others over a network. No scraping beyond the repo's own + published files and its `/health` endpoint. +- [x] **2 — Run it as a Docker container.** Already running (user's own doing, confirmed live, not started + by this session): `http://192.168.178.8:3900/` on the same DGX Spark this app runs on -- + `GET /health` → `{"status":"ok","device":"cuda (NVIDIA GB10)","version":"0.5.6"}`. Real, non-hypothetical + risk noted in the comparison doc: it shares the DGX's one GPU with this app's Qwen3-TTS/vision-OCR/LLM + calls, so a heavy VoiceStudio job and a magazine Auto-fix run at the same time will contend for VRAM. +- [x] **3 — Detailed comparison with this software.** Written up at + `architecture/voicestudio-comparison.md`: side-by-side table, what each is ahead on, the shared-GPU risk, + and a narrow recommendation (not a replacement -- the magazine pipeline has no counterpart in VoiceStudio + to compare against; worth revisiting only as an alternate TTS backend for a second opinion on narration + quality, or its MCP server for a quick engine A/B). No integration started. ### P0 — do first diff --git a/architecture/voicestudio-comparison.md b/architecture/voicestudio-comparison.md new file mode 100644 index 0000000..f9e4b81 --- /dev/null +++ b/architecture/voicestudio-comparison.md @@ -0,0 +1,94 @@ +# 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 | Basic (Whisper via conversation routes) | 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.