Caution
NovelCast 目前只支持 Apple Silicon Mac(M1 及更新)与 macOS 26.2+。Intel Mac、Windows 和 Linux 尚无可用安装包。
这是一个在 1 天内完成的可运行 Demo。 它已跑通小说导入、章节改编、角色声线、配乐音效、分轨混音、质检与审阅;它仍然属于实验性工程,不承诺生产级稳定性。
| 使用方式 | 统一内存 | 建议可用磁盘 | 实际体验 |
|---|---|---|---|
| 界面、流程和假 Provider 测试 | 16 GB | 10 GB | 可运行,不生成真实成片 |
| 远程 LLM + 本地 TTS / ASR | 16–24 GB | 25 GB | 适合体验核心制作链路 |
| 本地文本、TTS、检索与 ASR | 32 GB | 40 GB | 模型串行调度,可完成大部分工作 |
| 完整本地模型组合,含 Music3 | 64 GB | 60 GB+ | 推荐配置 |
完整模型目录约需下载 35 GB 权重,工程中间件还会继续占用磁盘。8 GB 机器、Intel Mac 或无法升级到 macOS 26.2 的机器,请先看介绍片和代码,不要直接下载完整模型。
下载 macOS Demo · 从源码运行 · 报告问题
声音可以生成,连续性必须被守住。
NovelCast 是一个面向 Apple Silicon 的本地优先小说广播剧工作台。它把长篇小说拆成可恢复的章节生产图,让原文证据、人物身份、故事记忆、固定声线和可编辑音频工程留在同一条时间线上。
▶ 播放 720p 介绍片 · ⬇ 下载 1080p 高码率版
介绍片包含男女双声线、真实界面、Three.js 故事线动画和完整配乐,内置中文、英文、日文可切换字幕。
这段成片保留了旁白、角色对白、心声、配乐、音效和分轨混音,可以直接听出声线路由和章节连续性的效果。
![]() 章节地图:全书节点、制作状态和审阅策略。 |
![]() 身份与台本:说话人、旁白、心声与当前身份绑定。 |
![]() 分轨审片:对白、配乐与音效沿同一时间线回听。 |
![]() 故事圣经:人物状态、关系变化和未完线索持续写回。 |
![]() 声音与模型:权重、许可、来源和资源占用集中管理。 |
![]() 制作旅程:整理故事、确定声音、制作章节、审听成片。 |
生成一句话是能力,守住一部长篇是责任。
广播剧里的角色会成长、失去、隐瞒、改变立场。声音跟着这些经历向前走。NovelCast 保存的是角色在当时是谁,也保存他为什么会用这样的声音说话。
声音是人物经历留下的证词。
每句台词保留原文引用或明确的改编标记;每次审阅保留修改、模型与失败记录;每章通过后,角色状态、关系变化和未完线索才会进入下一章。
创作可以冒险,工程必须留下回得去的路。
flowchart LR
A[本地小说] --> B[章节拆分 / source_ref]
B --> C[全书地图 / 角色 / 故事圣经]
C --> D[检索与证据核验]
D --> E[场景与广播剧台本]
E --> F[身份 / 连续性门禁]
F --> G[TTS / BGM / SFX]
G --> H[分轨 / Ducking / QA]
H --> I{创作者审阅}
I -->|通过| J[提交故事记忆 revision]
I -->|修改| K[重跑当前章节]
J --> L[WAV / MP3 / Stems / Manifest]
- 导入 TXT、Markdown、无 DRM EPUB、DOCX、文本 PDF、HTML、RTF、章节文件夹与 ZIP。
- 稳定
source_ref、台词出处、改编标记与可审计检索收据。 - SQLite FTS5 / sqlite-vec 混合召回,仅向当前章提供旧章证据。
- 角色卡、身份路由、Qwen3-TTS 选角 / 克隆 / 预置声线。
- 对白、心声、旁白、音乐和音效分轨,含 ducking 与审听。
- ASR 回听、漏字 / 错读、声线一致性、配乐人声泄漏检查。
- SQLite WAL 作业队列、崩溃恢复、取消、缓存键、章节级重跑与依赖失效。
- 48 kHz / 24-bit WAV 母版、MP3、stems、cue sheet 和制作 manifest。
- DeepSeek / OpenAI-compatible 远程文本 Provider 与本地 MLX 音频 Provider。
- 密钥进入 macOS Keychain;本地 API 仅绑定 loopback,每次启动生成独立令牌。
前往 GitHub Releases 下载 NovelCast_0.1.0_aarch64.dmg。
Warning
当前 macOS 包未经 Apple 签名与公证。首次启动如被 Gatekeeper 拦截,请在 Finder 中右键应用并选择“打开”。只从本仓库 Releases 下载。
模型权重不进入安装包。首次使用时,在“声音与模型”页按需阅读上游许可并下载。
- Apple Silicon Mac
- macOS 26.2+
- Python 3.12
- Node.js 22
- Rust stable
uv
git clone https://github.com/mycyg/NovelCast.git
cd NovelCast
uv sync --python 3.12 --extra dev
uv run novelcast serve --fake-providers --print-token假 Provider 会生成确定性短音和结构化测试数据,适合验证合同、作业队列和导出链路。
cd desktop
npm install
npm run tauri devTauri 会启动 Python sidecar、注入一次性令牌,并从 macOS Keychain 向服务进程内存传递必要凭据。
| 用途 | 默认选择 | 下载 / 估算内存 |
|---|---|---|
| 本地故事整理 | Qwen3 4B Instruct 4-bit | 2.4 / 4 GB |
| 声音设计 | Qwen3-TTS VoiceDesign 1.7B 8-bit | 2.9 / 5 GB |
| 固定角色音色 | Qwen3-TTS Base 1.7B 8-bit | 2.9 / 5 GB |
| 预置与情绪声线 | Qwen3-TTS CustomVoice 1.7B 8-bit | 3.1 / 5 GB |
| 长篇检索 | Qwen3 Embedding 0.6B 8-bit | 0.7 / 1.5 GB |
| 人声增强 | MossFormer2 MLX FP16 | 0.3 / 1.2 GB |
| 本地配乐 | MiniMax Music3 MLX 8-bit | 14.2 / 20 GB |
| 音效 / 备用配乐 | Stable Audio 3 Small | 2.9 / 4 GB |
| 回听质检 | Qwen3 ASR / Whisper / ECAPA | 5.2 / 7.5 GB |
模型的精确 revision、文件清单、许可和下载源见 models/catalog.json。重型任务默认串行执行,防止统一内存被多个模型同时占满。
uv run ruff check backend
uv run pytest
cd desktop && npm test && npm run build
cargo check --manifest-path desktop/src-tauri/Cargo.toml端到端测试覆盖导入、全书分析、角色合并、章节台本、音频分轨、审阅提交、Markdown 镜像、下游失效与工程包导出。
backend/ FastAPI 核心服务、Provider、作业队列与制作管线
desktop/ React + Tauri v2 桌面工作台
models/catalog.json 固定 revision 的模型目录与资源估算
scripts/ sidecar 构建、模型转换与运行时工具
media/demo/ 介绍片与广播剧 Demo 音频
docs/assets/ README 截图与媒体封面
- Provider 凭据由桌面端存入 macOS Keychain,不写入项目文件。
- 本地 API 只绑定
127.0.0.1,每次启动使用新 bearer token。 - 参考声音保留在本地。使用者必须确保声音来源与用途合法、合规、已获授权。
- 泄漏的 API Key 应立即在服务商后台撤销,然后换用新 Key。
详见 SECURITY.md。
应用源码采用 MIT License。模型权重、FFmpeg 与各运行时保留上游许可,详见 THIRD_PARTY_NOTICES.md。
NovelCast 是一天里长出来的 Demo。它还很年轻,但它已经能让一个故事开口,并尽力记住下一章该如何继续。





