尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
MUS Voices (Money Uncovered Studio Voices) — a creator-first AI voice studio
for long-form narration: documentaries, explainers, shorts, and YouTube automation.
It turns long scripts into consistent, natural narration with smart chunking,
per-chunk regeneration, voice profiles, and a project-based workflow.
Planned domain: musvoices.com. See docs/MUS_VOICES_SAAS_PLAN.md
for the SaaS roadmap and gap analysis.查看完整 README ↗MUS Voices (Money Uncovered Studio Voices) — a creator-first AI voice studio for long-form narration: documentaries, explainers, shorts, and YouTube automation. It turns long scripts into consistent, natural narration with smart chunking, per-chunk regeneration, voice profiles, and a project-based workflow.
Planned domain: musvoices.com. See docs/MUS_VOICES_SAAS_PLAN.md for the SaaS roadmap and gap analysis.
Status: core narration pipeline works end-to-end (auth, projects, voices, preprocessing, Chatterbox generation on GPU, assembly, downloads). Now evolving into a multi-plan SaaS — themes, collapsible sidebar, usage/plans/admin, and abuse protection are in progress.
Paste a script → pick a narrator voice → choose a documentary preset → generate a short preview → generate the full narration → watch real chunk-by-chunk progress → listen → fix one bad chunk → regenerate only that chunk → rebuild → download MP3 / WAV.
Browser
└─ Vercel / Next.js (App Router, TypeScript, Tailwind, shadcn-style UI)
└─ FastAPI backend (auth, projects, preprocessing, orchestration)
├─ Supabase Postgres (data, RLS)
├─ Supabase Storage (private buckets, signed URLs)
└─ RunPod Serverless GPU ← Chatterbox-Turbo (Phase 4+)
└─ generated audio → Supabase Storage → Browser
services/tts-worker) loads Chatterbox once per warm worker
and synthesizes audio. It scales to zero when idle to keep cost low.See docs/ARCHITECTURE.md for the full design.
| Layer | Choice |
|---|---|
| Frontend | Next.js 16 (App Router), TypeScript, Tailwind v3, Radix/shadcn-style components |
| Backend | Python 3.11+, FastAPI, Pydantic v2, supabase-py |
| Database | Supabase Postgres (SQL migrations + Row Level Security) |
| Storage | Supabase Storage (private buckets, signed URLs) |
| Auth | Supabase Auth (email/password) |
| GPU / TTS | RunPod Serverless + Resemble AI Chatterbox-Turbo (later phase) |
| Audio | FFmpeg (assembly / normalization, later phase) |
money-uncovered-voice-studio/
├─ apps/
│ ├─ web/ Next.js frontend (Vercel)
│ │ ├─ app/ App Router routes: (auth), (dashboard)
│ │ ├─ components/ UI kit + feature components
│ │ ├─ lib/ supabase clients, API client, utils
│ │ ├─ hooks/ data + debounce hooks
│ │ └─ types/ API + domain types
│ └─ api/ FastAPI orchestration backend
│ ├─ app/
│ │ ├─ api/routes/ projects, voices, pronunciations, config, health
│ │ ├─ preprocessing/ normalize, pronunciation, chunker, pipeline
│ │ ├─ services/ supabase, projects, voices, pronunciations, tts, presets
│ │ ├─ audio/ timeline math (FFmpeg assembly comes later)
│ │ ├─ schemas/ Pydantic request/response models
│ │ └─ utils/ slug / safe-filename
│ └─ tests/ pytest (pure logic)
├─ services/
│ └─ tts-worker/ RunPod GPU worker (Chatterbox) — Phase 4
├─ supabase/ (SQL migrations delivered separately, not committed)
├─ packages/shared/ shared-contract notes
├─ docs/ setup + architecture guides
├─ .env.example
└─ pnpm-workspace.yaml
npm i -g pnpm)Windows note: this repo is developed at a short path (e.g.
C:\mu-voice) and pnpm uses a hoistednode_modules(.npmrc: node-linker=hoisted) to avoid symlink-permission errors when Windows Developer Mode is off.
pnpm install
cd apps/api
python -m venv .venv
# Windows: .venv\Scripts\activate macOS/Linux: source .venv/bin/activate
pip install -e ".[dev]"
.env.example → .env (repo root) for the backend and worker tooling.apps/web/.env.local.example → apps/web/.env.local for the frontend.Fill in your Supabase values (see docs/SUPABASE_SETUP.md).
Leave TTS_PROVIDER=mock until the GPU worker phase.
The SQL migrations are not stored in this repo — they are provided directly by the project owner. Run them in the Supabase SQL Editor in order:
0001 schema → 0002 RLS → 0003 storage buckets → 0004 profile trigger
See docs/SUPABASE_SETUP.md for details.
# Terminal 1 — backend
cd apps/api
uvicorn app.main:app --reload --port 8000
# Terminal 2 — frontend
pnpm dev # http://localhost:3000
Open http://localhost:3000, create an account, and you're in the studio.
# Frontend
pnpm --filter web typecheck
pnpm --filter web lint
pnpm --filter web build
# Backend
cd apps/api
.venv/Scripts/python -m pytest # (Windows path shown)
.venv/Scripts/ruff check .
Full flow is documented in docs/VOICE_SETUP.md. In Phase 1
you can already: create an account, add a voice profile, create projects, paste and
auto-analyze scripts (word/char/duration/chunk counts), and manage your pronunciation
dictionary with live preview. Preview/full generation light up once the GPU worker
(Phase 4) and job engine (Phase 5) are in place.
docs/VERCEL_SETUP.mddocs/BACKEND_DEPLOYMENT.mddocs/RUNPOD_SETUP.mddocs/SUPABASE_SETUP.mdGPU_COST_PER_HOUR drives an informational cost estimate.SUPABASE_SERVICE_ROLE_KEY is server-side only — never shipped to the browser.See docs/TROUBLESHOOTING.md if something misbehaves.
Only upload narrator recordings you own or are licensed to use. The app records an explicit authorization confirmation with every voice. Do not clone the voices of celebrities, creators, or other people without permission.