docs: add TODO items for VoiceStudio-inspired features the user picked
Projects nav grouping (Audiobooks/Magazines/Script Rehearsals/Video Dubbing), Video Dubbing itself, Live STT Dictation, an onboarding/setup wizard, a global command palette + cross-app recent history, and a curated voice-design preset gallery. Telephony integrations were in the same gap list but not picked -- left alone. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
df4bfc934a
commit
b7202e030d
57
TODO.md
57
TODO.md
@ -193,6 +193,63 @@ rules beat what was built up by hand, and to feed every difference back into the
|
||||
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.
|
||||
|
||||
### UI/UX and feature ideas from the VoiceStudio comparison — set 2026-09-29
|
||||
|
||||
From the deep-dive UI/UX comparison (`architecture/voicestudio-comparison.md`, "UI/UX and
|
||||
feature-parity deep dive"). User picked these to build; telephony integrations (Twilio/
|
||||
Plivo/Telnyx) were in the same gap list but deliberately not picked -- leave that one alone.
|
||||
|
||||
- [ ] **Projects menu: group Audiobooks, Magazines, Script Rehearsals and Video Dubbing
|
||||
under one "Projects" nav section.** Currently `Reader` (audiobook), `Magazine` and
|
||||
`Rehearser` are three separate top-level `nav-tree-head` sections in the sidebar
|
||||
(`static/index.html`/served nav — see `data-nav-section="s-reader"` /
|
||||
`"s-magazine"` / `"s-rehearser"`). Add a new "Projects" parent with these three as
|
||||
submenu items, plus a fourth submenu item for the new Video Dubbing feature below (a
|
||||
placeholder entry is fine until that feature exists, but say so in its UI rather than
|
||||
linking to nothing silently). Update `Manual.md`'s navigation description and any
|
||||
Playwright specs that assert the current nav structure.
|
||||
- [ ] **Video Dubbing feature.** New capability, not currently in this app at all: upload a
|
||||
video/audio file or paste a URL, transcribe it, translate to a target language (offer a
|
||||
local/offline model, not only an LLM call -- see VoiceStudio's NLLB-200 option), then
|
||||
re-synthesize speech timed to the original and mux it back into the video. This is a
|
||||
multi-day feature (needs its own data model, a job pipeline, and a review UI, likely
|
||||
similar in shape to the magazine pipeline's box/undo conventions) -- plan it properly
|
||||
(goals, data model, API contract, error/offline behaviour) before implementing, per the
|
||||
planning workflow, rather than bolting it onto an existing route file.
|
||||
- [ ] **Live STT Dictation.** A global hotkey that starts listening, transcribes speech, and
|
||||
inserts the resulting text into whatever field/app currently has focus -- distinct from
|
||||
the existing "global hotkey daemon" in Connect Apps, which triggers TTS *playback*, not
|
||||
speech-to-text insertion; do not conflate the two or reuse its name for this. Needs a
|
||||
small native/OS-level component (focus capture, text insertion) similar in spirit to
|
||||
VoiceStudio's Rust control sidecar -- decide the platform(s) to support first (this
|
||||
household's own machines) rather than building a generic cross-platform solution
|
||||
speculatively.
|
||||
- [ ] **Onboarding / setup wizard.** Either (a) detect the local stack already configured
|
||||
(Qwen3-TTS, vision OCR, the LLM router -- these already have URLs in Settings) and walk a
|
||||
new install through pointing at them with a live check per engine, or (b) a single
|
||||
one-click installer/setup flow that provisions everything needed, mirroring VoiceStudio's
|
||||
tiered model packs (Fast/Balanced/Quality/Max, disk size shown before committing). Decide
|
||||
which of (a)/(b) fits this app's actual deployment story (self-hosted, one household, engines
|
||||
usually already running on the DGX) before building -- (a) is likely the better fit and
|
||||
the smaller change; (b) only makes sense if this app starts bundling/installing its own
|
||||
models rather than calling existing engine URLs.
|
||||
- [ ] **Global command palette + cross-app "recent" history.** A `Ctrl`/`Cmd`+`K` palette to
|
||||
jump to any section/action, and a unified "recent generations" view spanning Voice Clone/
|
||||
Design/Conversation/Magazine/Reader, not just each feature's own history (the magazine's
|
||||
20-step undo stack stays separate -- this is about *finding* a past generation across
|
||||
features, not undoing one). Survey existing per-feature history/list endpoints first
|
||||
(`/api/*/history`-shaped routes already exist for several features) so the palette reuses
|
||||
them rather than duplicating state.
|
||||
- [ ] **Curated voice-design preset gallery, integrated into the existing preset system.**
|
||||
`s-design.html` already has save/load/delete for named presets (`design-preset-*`,
|
||||
`routes` behind `design-preset-save`/`-load`/`-delete`) -- add a small built-in gallery of
|
||||
named example personas (in VoiceStudio's style: "The Librarian", "The Anchor", …), each
|
||||
with a one-line pitch and a pre-rendered demo clip, "Use this design →" filling the
|
||||
description box from it. Ship a handful covering common needs (audiobook narrator, news
|
||||
anchor, casual conversational, storyteller) rather than trying to match VoiceStudio's
|
||||
exact catalog. Generate and store the demo clips once (not on every page load) and keep
|
||||
them small (the existing 24 kHz mono WAV convention).
|
||||
|
||||
### P0 — do first
|
||||
|
||||
- [x] **S — Stop provider API keys from reaching frontend JavaScript or logs.** Provider keys are masked in settings
|
||||
|
||||
Loading…
Reference in New Issue
Block a user