# 开发路线图

<cite>
**本文引用的文件**
- [README.md](file://README.md)
- [FEATURE_CHECKLIST.md](file://FEATURE_CHECKLIST.md)
- [.plans/audiobook-v2-ux/task_plan.md](file://.plans/audiobook-v2-ux/task_plan.md)
- [.plans/audiobook-v2-ux/team-snapshot.md](file://.plans/audiobook-v2-ux/team-snapshot.md)
- [.plans/audiobook-v2-ux/frontend-dev/task_plan.md](file://.plans/audiobook-v2-ux/frontend-dev/task_plan.md)
- [.plans/audiobook-v2-ux/backend-dev/task_plan.md](file://.plans/audiobook-v2-ux/backend-dev/task_plan.md)
- [docs/API.md](file://docs/API.md)
- [docs/database-structure.md](file://docs/database-structure.md)
- [docs/TTS成本分析报告.md](file://docs/TTS成本分析报告.md)
- [docs/播放页设计方案.md](file://docs/播放页设计方案.md)
- [docs/支付集成指南.md](file://docs/支付集成指南.md)
- [docs/订阅系统使用说明.md](file://docs/订阅系统使用说明.md)
- [my-uniapp-vue3/src/pages/player/index.vue](file://my-uniapp-vue3/src/pages/player/index.vue)
- [my-uniapp-vue3/src/pages/history/index.vue](file://my-uniapp-vue3/src/pages/history/index.vue)
- [my-uniapp-vue3/src/pages/book-generator/index.vue](file://my-uniapp-vue3/src/pages/book-generator/index.vue)
- [my-uniapp-vue3/src/pages/book-generator/chapter-detail.vue](file://my-uniapp-vue3/src/pages/book-generator/chapter-detail.vue)
- [server/src/modules/tts/tts.controller.ts](file://server/src/modules/tts/tts.controller.ts)
- [server/src/modules/player/player.controller.ts](file://server/src/modules/player/player.controller.ts)
- [server/src/modules/member/member.controller.ts](file://server/src/modules/member/member.controller.ts)
- [server/src/modules/share/share.controller.ts](file://server/src/modules/share/share.controller.ts)
- [server/src/modules/book-generator/book-generator.controller.ts](file://server/src/modules/book-generator/book-generator.controller.ts)
- [server/src/modules/audioedit/audioedit.controller.ts](file://server/src/modules/audioedit/audioedit.controller.ts)
- [server/src/modules/publish/publish.controller.ts](file://server/src/modules/publish/publish.controller.ts)
</cite>

## 目录
1. [引言](#引言)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构总览](#架构总览)
5. [详细组件分析](#详细组件分析)
6. [依赖关系分析](#依赖关系分析)
7. [性能考虑](#性能考虑)
8. [故障排查指南](#故障排查指南)
9. [结论](#结论)
10. [附录](#附录)

## 引言
本开发路线图面向AI有声书生成平台，系统性梳理从MVP到V1.0再到V1.5的发展蓝图，明确各阶段里程碑、交付物与优先级策略。当前仓库已实现MVP阶段核心能力（项目初始化、用户登录、TTS核心功能、音频播放器、历史记录、基础会员系统），并进入UX优化阶段。本文在现有基础上扩展规划V1.0与V1.5的关键功能，提供可执行的实施路径与资源分配建议。

## 项目结构
项目采用前后端分离架构：
- 前端：基于uniapp + Vue 3 + TypeScript，支持H5与小程序双端
- 后端：基于Node.js + Koa，模块化组织业务域（TTS、播放器、会员、分享、书籍生成等）
- 数据层：MongoDB + Mongoose；FFmpeg用于音频处理
- 关键模块：认证、TTS、播放器、历史、会员、分享、书籍生成、音频编辑、发布等

```mermaid
graph TB
FE["前端<br/>uniapp + Vue 3 + TypeScript"] --> BE["后端<br/>Node.js + Koa"]
BE --> DB["数据库<br/>MongoDB + Mongoose"]
BE --> TTS["TTS服务<br/>阿里云/Minimax/Mock"]
BE --> FF["音频处理<br/>FFmpeg"]
FE --> API["API接口"]
BE --> API
```

**图表来源**
- [README.md: 18-30:18-30](file://README.md#L18-L30)
- [docs/database-structure.md](file://docs/database-structure.md)

**章节来源**
- [README.md: 18-30:18-30](file://README.md#L18-L30)
- [docs/database-structure.md](file://docs/database-structure.md)

## 核心组件
- 认证模块：手机号登录、用户信息获取、JWT鉴权
- TTS模块：音色列表、音频生成、实时/离线合成、音频合并
- 播放器模块：播放控制、播放模式切换、进度控制、倍速播放
- 历史模块：历史记录查询、收藏、批量管理
- 会员模块：权益查询、状态查询、订单创建
- 书籍生成模块：大纲生成、章节内容生成、批量编排
- 分享模块：分享链接生成与传播
- 音频编辑模块：剪辑、拼接、降噪等
- 发布模块：多格式导出、社交平台发布

**章节来源**
- [README.md: 114-144:114-144](file://README.md#L114-L144)
- [docs/API.md](file://docs/API.md)

## 架构总览
整体架构围绕“前端页面 + 后端服务 + 数据存储 + 外部服务”的四层结构展开。前端通过RESTful API与后端交互，后端聚合TTS与FFmpeg能力，统一输出音频资源与播放体验。

```mermaid
graph TB
subgraph "前端层"
UI["页面组件<br/>播放页/历史/书籍生成/会员"]
end
subgraph "后端层"
AUTH["认证模块"]
TTS["TTS模块"]
PLAYER["播放器模块"]
HISTORY["历史模块"]
MEMBER["会员模块"]
SHARE["分享模块"]
GEN["书籍生成模块"]
EDIT["音频编辑模块"]
PUB["发布模块"]
end
subgraph "基础设施"
DB["MongoDB"]
OSS["对象存储"]
WS["WebSocket"]
end
UI --> AUTH
UI --> TTS
UI --> PLAYER
UI --> HISTORY
UI --> MEMBER
UI --> SHARE
UI --> GEN
UI --> EDIT
UI --> PUB
AUTH --> DB
TTS --> DB
PLAYER --> DB
HISTORY --> DB
MEMBER --> DB
SHARE --> DB
GEN --> DB
EDIT --> DB
PUB --> DB
TTS --> OSS
PLAYER --> OSS
GEN --> OSS
EDIT --> OSS
PUB --> OSS
GEN --> WS
PLAYER --> WS
```

**图表来源**
- [docs/API.md](file://docs/API.md)
- [server/src/modules/tts/tts.controller.ts](file://server/src/modules/tts/tts.controller.ts)
- [server/src/modules/player/player.controller.ts](file://server/src/modules/player/player.controller.ts)
- [server/src/modules/member/member.controller.ts](file://server/src/modules/member/member.controller.ts)
- [server/src/modules/share/share.controller.ts](file://server/src/modules/share/share.controller.ts)
- [server/src/modules/book-generator/book-generator.controller.ts](file://server/src/modules/book-generator/book-generator.controller.ts)
- [server/src/modules/audioedit/audioedit.controller.ts](file://server/src/modules/audioedit/audioedit.controller.ts)
- [server/src/modules/publish/publish.controller.ts](file://server/src/modules/publish/publish.controller.ts)

## 详细组件分析

### MVP阶段（2周）已完成核心功能
- 项目初始化：前后端工程搭建、开发环境配置、基础依赖安装
- 用户登录：手机号验证码登录、用户信息获取、JWT鉴权中间件
- TTS核心功能：音色列表查询、文本转音频、音频合并、播放URL生成
- 音频播放器：播放/暂停、进度控制、倍速播放、播放模式切换
- 历史记录：音频生成历史、收藏管理、批量删除/下载
- 基础会员系统：权益查询、状态查询、订单创建

```mermaid
flowchart TD
Start(["MVP阶段开始"]) --> Init["项目初始化"]
Init --> Login["用户登录"]
Login --> TTS["TTS核心功能"]
TTS --> Player["音频播放器"]
Player --> History["历史记录"]
History --> Member["基础会员系统"]
Member --> End(["MVP阶段完成"])
```

**图表来源**
- [README.md: 147-153:147-153](file://README.md#L147-L153)

**章节来源**
- [README.md: 147-153:147-153](file://README.md#L147-L153)
- [FEATURE_CHECKLIST.md: 1-150:1-150](file://FEATURE_CHECKLIST.md#L1-L150)

### V1.0阶段（1个月）规划功能
- 智能简介生成：基于LLM生成书籍/章节简介，提升内容可读性
- 更多音色选择：接入更多TTS音色，支持音色试听与切换
- 分享功能：生成分享链接，支持社交平台传播
- 管理后台：内容审核、用户管理、数据看板、运营工具

```mermaid
sequenceDiagram
participant U as "用户"
participant F as "前端页面"
participant B as "后端服务"
participant L as "LLM服务"
participant T as "TTS服务"
U->>F : "输入书籍主题/章节内容"
F->>B : "请求智能简介生成"
B->>L : "调用LLM生成简介"
L-->>B : "返回简介内容"
B-->>F : "返回简介"
F-->>U : "展示并可继续生成音频"
```

**图表来源**
- [server/src/modules/book-generator/book-generator.controller.ts](file://server/src/modules/book-generator/book-generator.controller.ts)
- [server/src/services/llm/index.ts](file://server/src/services/llm/index.ts)

**章节来源**
- [README.md: 155-159:155-159](file://README.md#L155-L159)

### V1.5阶段（2-3个月）长期规划
- 批量生成功能：支持多章节/多书籍并发生成，提供进度可视化与失败重试
- 音频编辑能力：剪辑、拼接、降噪、淡入淡出等基础编辑功能
- 多格式导出支持：MP3、M4A、WAV、AAC等格式，满足不同平台需求

```mermaid
flowchart TD
BatchStart["批量生成入口"] --> Select["选择书籍/章节"]
Select --> Queue["加入生成队列"]
Queue --> Progress["实时进度监控"]
Progress --> Retry{"是否失败?"}
Retry -- 是 --> AutoRetry["自动重试/人工干预"]
Retry -- 否 --> Merge["音频合并"]
AutoRetry --> Merge
Merge --> Export["多格式导出"]
Export --> Done["完成并通知"]
```

**图表来源**
- [server/src/modules/book-generator/book-generator.controller.ts](file://server/src/modules/book-generator/book-generator.controller.ts)
- [server/src/modules/audioedit/audioedit.controller.ts](file://server/src/modules/audioedit/audioedit.controller.ts)
- [server/src/modules/publish/publish.controller.ts](file://server/src/modules/publish/publish.controller.ts)

**章节来源**
- [README.md: 161-164:161-164](file://README.md#L161-L164)

### 概念性总览
以下为概念性流程图，展示从内容创作到音频发布的完整链路，便于理解各模块协作关系。

```mermaid
flowchart LR
Content["内容输入"] --> Outline["大纲生成"]
Outline --> Chapters["章节生成"]
Chapters --> TTSGen["TTS生成"]
TTSGen --> Merge["音频合并"]
Merge --> Edit["音频编辑"]
Edit --> Export["多格式导出"]
Export --> Publish["发布/分享"]
```

[此图为概念性示意，无需图表来源]

## 依赖关系分析
- 前端依赖后端API：播放页、历史页、书籍生成页均依赖对应控制器接口
- 后端模块耦合：TTS模块与音频处理强耦合，播放器模块依赖历史与收藏数据
- 外部依赖：阿里云TTS、WebSocket推送、对象存储、FFmpeg

```mermaid
graph TB
FE_Player["播放页"] --> API_Player["播放器API"]
FE_History["历史页"] --> API_History["历史API"]
FE_Book["书籍生成页"] --> API_Book["书籍生成API"]
API_Player --> Svc_Player["播放器服务"]
API_History --> Svc_History["历史服务"]
API_Book --> Svc_Book["书籍生成服务"]
Svc_Book --> Svc_TTS["TTS服务"]
Svc_TTS --> Ext_TTS["外部TTS"]
```

**图表来源**
- [docs/API.md](file://docs/API.md)
- [my-uniapp-vue3/src/pages/player/index.vue](file://my-uniapp-vue3/src/pages/player/index.vue)
- [my-uniapp-vue3/src/pages/history/index.vue](file://my-uniapp-vue3/src/pages/history/index.vue)
- [my-uniapp-vue3/src/pages/book-generator/index.vue](file://my-uniapp-vue3/src/pages/book-generator/index.vue)

**章节来源**
- [docs/API.md](file://docs/API.md)

## 性能考虑
- TTS成本控制：结合字数限制与音色选择，优化生成策略与缓存
- 音频处理：合理设置FFmpeg参数，避免重复编码；批量生成时采用队列与并发控制
- 播放体验：播放器预加载与断点续播，减少首帧延迟
- 数据库优化：历史记录分页查询、索引优化、定期归档

**章节来源**
- [docs/TTS成本分析报告.md](file://docs/TTS成本分析报告.md)
- [docs/播放页设计方案.md](file://docs/播放页设计方案.md)

## 故障排查指南
- 登录/鉴权问题：检查JWT密钥配置与过期时间，确认中间件拦截逻辑
- TTS生成失败：核对阿里云凭证、网络连通性与限流策略
- 播放异常：确认音频URL有效性、跨域配置与CDN缓存
- 历史记录缺失：检查数据库连接、索引与权限
- 会员状态异常：核对订单状态与回调处理

**章节来源**
- [docs/app-troubleshooting.md](file://docs/app-troubleshooting.md)
- [docs/支付集成指南.md](file://docs/支付集成指南.md)
- [docs/订阅系统使用说明.md](file://docs/订阅系统使用说明.md)

## 结论
本路线图以MVP为基础，逐步扩展至V1.0与V1.5，形成从“可用”到“好用”再到“专业”的演进路径。建议优先保障核心稳定性（播放、历史、TTS），再推进UX优化与高级功能。通过模块化设计与清晰的API契约，确保各阶段交付质量与可维护性。

## 附录

### 阶段里程碑与交付物
- MVP（2周）
  - 交付：登录、TTS、播放器、历史、基础会员
  - 验收：功能清单核对、UI一致性检查
- V1.0（1个月）
  - 交付：智能简介、更多音色、分享、管理后台
  - 验收：API契约更新、文档同步、回归测试
- V1.5（2-3个月）
  - 交付：批量生成、音频编辑、多格式导出
  - 验收：性能基准测试、兼容性验证、运维监控完善

**章节来源**
- [README.md: 145-164:145-164](file://README.md#L145-L164)

### 优先级排序与资源分配策略
- P0：紧急修复与关键缺陷（如轮询超时、WebSocket推送）
- P1：重要但非紧急功能（如一键完整生成、全局骨架屏）
- P2：体验提升（封面升级、手势切换、动态卡片）
- P3：锦上添花（热词缓存、返回按钮、确认弹窗）

资源分配建议：
- 前端：交互优化为主，保持与后端API契约一致
- 后端：重点补齐WebSocket推送、批量编排、LRC歌词时间轴等支撑能力
- 测试：自动化回归与性能压测并行
- 文档：API与架构文档同步更新

**章节来源**
- [.plans/audiobook-v2-ux/task_plan.md: 44-65:44-65](file://.plans/audiobook-v2-ux/task_plan.md#L44-L65)
- [.plans/audiobook-v2-ux/team-snapshot.md: 73-80:73-80](file://.plans/audiobook-v2-ux/team-snapshot.md#L73-L80)
- [.plans/audiobook-v2-ux/backend-dev/task_plan.md: 14-22:14-22](file://.plans/audiobook-v2-ux/backend-dev/task_plan.md#L14-L22)
- [.plans/audiobook-v2-ux/frontend-dev/task_plan.md: 24-28:24-28](file://.plans/audiobook-v2-ux/frontend-dev/task_plan.md#L24-L28)