智能语音书稿创作系统|需求文档 V2.0(优化版)
文档版本:V2.0
一、项目概述
开发一套
手机App + Cloudflare云端服务组成的语音创作系统。创作者通过手机App以语音对话方式和AI Agent沟通,完成书籍创作。整套创作流程划分为固定执行阶段,严格顺序推进;未解锁阶段内容自动隐藏,实现渐进式创作。所有创作数据本地优先存储,定时增量同步至Cloudflare云端持久化保存。
摒弃按天数、时长限制创作的模式,采用流程阶段状态机驱动,创作速度、耗时由创作者自主掌控。
二、整体架构组成
1.
客户端:安卓手机App(Flutter 3.x开发,可打包APK,无需应用商店上架)
2.
云端服务:Cloudflare Worker(通讯网关) + Cloudflare D1(SQLite数据库)
3. 代码统一托管于私有GitHub仓库
4. App <—HTTPS接口—> Cloudflare Worker <—> D1数据库
技术栈
组件 | 技术方案 |
|------|----------|
移动端框架 | Flutter 3.x + Dart |
本地存储 | SQLite (sqflite) 或 Hive |
语音识别(STT) | 讯飞语音SDK |
语音合成(TTS) | 小米TTS(免费) |
云端计算 | Cloudflare Workers |
云端数据库 | Cloudflare D1 (SQLite) |
实时同步 | Cloudflare KV (可选,用于实时通知) |
三、客户端App功能需求
3.1 App页面结构
#### 页面1:书单首页(菜单主页)
1. 展示全部自建书稿项目列表;
2. 每个书稿卡片展示:书名、当前所处创作阶段、最近更新时间、简易进度条;
3. 功能按钮:【新建书稿】、【打开已有书稿】;
4. 支持按创建时间、更新时间排序;
5. 支持搜索书稿名称;
6. 长按书稿卡片可删除、重命名。
#### 页面2:书稿创作核心页面(核心页面)
1.
顶部:可视化创作流程时间轴
流程固定顺序(不可逆主线):
- 阶段0|书稿初始化
- 阶段1|深度语音访谈采集素材
- 阶段2|全书框架与大纲规划
- 阶段3|章节正文分批创作
- 阶段4|全文校对、修订、定稿
三种视觉状态:
- 🟢绿色:已完成阶段,可点击回看历史内容
- 🔵蓝色:当前激活阶段,唯一可编辑、对话创作
- ⚫灰色锁定:未解锁阶段,
内容完全隐藏,无法查看、无法点击进入
2.
中部区域
- 语音对话窗口:与AI Agent聊天记录;支持文字展示、语音朗读
- 当前阶段素材库:自动汇总本阶段所有语音口述内容、AI整理资料
- 对话气泡支持:文字消息 + 语音消息(可点击播放)
3.
底部功能
- 麦克风录音按键(语音输入核心)
- 【完成本阶段验收】按钮
⚠️规则:创作者手动点击验收,系统才解锁下一阶段;禁止AI自动推进流程。
- 【导出本阶段】按钮(导出当前阶段素材/对话记录)
#### 页面3:系统设置页面
1.
大模型配置项:LLM接口地址、API Key、模型名称(自由切换Moonshot/DeepSeek/Kimi等)
- API Key本地加密存储,不明文展示
- 支持测试连接功能
2.
语音功能配置:
- 语音识别引擎选择(讯飞/Google)
- 语音合成引擎选择
- 录音质量设置(标准/高清)
- AI语音朗读(TTS)开关
- 语音播放速度调节
3.
云端同步配置:
- 自动云端同步间隔设置(可选:30s / 60s / 180s / 手动)
- 仅WiFi下同步开关
4.
数据管理:
- 手动同步按钮
- 本地缓存清理
- 数据导出(支持JSON/PDF/Word格式)
- 数据导入(从备份恢复)
5.
界面设置:
- 主题切换(深色/浅色/跟随系统)
- 字体大小调节
3.2 核心交互规则(语音创作)
1.
创作者操作:点击麦克风,语音口述想法;App完成语音转文字;
2.
AI Agent行为:根据当前阶段规则
主动提出递进式问题,引导创作者输出思路,而非大段输出文本;
3.
完整对话记录自动归类至【当前阶段素材】;
4. 支持文字输入兜底,兼顾无语音场景;
5. 支持
语音回放:可点击播放AI的语音回复。
3.3 数据存储与同步机制
1.
本地优先策略
- 所有对话、素材、书稿状态优先保存在手机本地SQLite数据库;
- 断网状态下可完整创作,不会丢失数据;
- 本地数据采用AES-256加密存储。
2.
增量定时同步
- App前台运行时,按照设定时间间隔,仅上传新增数据(增量上传,不重复上传完整书稿);
- 网络异常自动重试,最多重试3次;
- 同步队列:离线期间的操作排队等待同步。
3.
启动同步
- 打开任意书稿项目时,App主动请求云端,拉取最新书稿状态;
- 本地与云端数据合并,支持多端进度互通;
-
冲突解决策略:以时间戳最新的修改为准,冲突时保留双方版本供用户选择。
4.
数据备份
- 支持手动导出书稿为JSON文件;
- 支持导出为PDF/Word格式(带格式排版);
- 支持从备份文件恢复书稿。
四、云端 Cloudflare 服务需求
4.1 Cloudflare Worker(API网关)
1.
数据同步接口
- 接收App上传的增量书稿数据,写入D1数据库;
- 支持批量写入优化性能;
- 返回同步成功确认及最新版本号。
2.
LLM代理接口
- 接收App大模型对话请求,中转转发至目标LLM接口;
- 保护API密钥,不在客户端裸露密钥;
- 支持多模型切换(通过配置区分);
- 请求超时设置:30s(适配一问一答模式)。
3.
数据拉取接口
- 提供接口,供App拉取云端书稿完整进度、历史素材;
- 支持按时间戳拉取增量数据;
- 返回数据压缩(gzip)减少传输量。
4.
安全鉴权
- 基础简易访问鉴权(Bearer Token),防止外部恶意调用接口;
- Token本地生成,绑定设备ID;
- 请求频率限制(防刷)。
4.2 Cloudflare D1(持久化数据库)
存储所有书稿结构化数据:
books表(书稿主表)
字段 | 类型
说明 |
|------|------|------|
id | TEXT PRIMARY KEY
书稿唯一ID |
title | TEXT
书稿名称 |
description | TEXT
创作定位/简介 |
current_stage | INTEGER
当前流程阶段(0-4) |
created_at | TEXT
创建时间 |
updated_at | TEXT
更新时间 |
sync_version | INTEGER
同步版本号 |
stages表(阶段数据表)
字段 | 类型
说明 |
|------|------|------|
id | TEXT PRIMARY KEY
阶段ID |
book_id | TEXT
关联书稿ID |
stage_number | INTEGER
阶段编号(0-4) |
is_completed | BOOLEAN
是否完成 |
completed_at | TEXT
完成时间 |
outline | TEXT
大纲内容(JSON) |
messages表(对话记录表)
字段 | 类型
说明 |
|------|------|------|
id | TEXT PRIMARY KEY
消息ID |
book_id | TEXT
关联书稿ID |
stage_number | INTEGER
所属阶段 |
role | TEXT
角色(user/assistant) |
content | TEXT
消息内容 |
audio_url | TEXT
语音文件URL(可选) |
created_at | TEXT
创建时间 |
五、AI Agent 业务约束规则(状态机Skill)
1.
严格阶段识别:严格识别当前书稿所处流程阶段,
禁止跨阶段开展工作;
2.
阶段隔离:处于某一阶段时,只执行本阶段对应的工作任务;未解锁阶段相关内容禁止主动生成;
3.
访谈阶段核心:阶段1(访谈阶段)核心模式:主动提问、引导创作者口述,持续挖掘原始想法、观点、素材;
4.
素材整理:自动持续整理对话信息,结构化汇总素材;
5.
人工验收:只有创作者手动完成阶段验收,Agent才可进入下一阶段任务;
6.
无时间限制:完全移除任何按天数、每日工作时长相关限制条件。
阶段详细规则
#### 阶段0|书稿初始化
- 引导用户填写:书名、创作定位、目标读者、核心主题
- 确认后自动进入阶段1
#### 阶段1|深度语音访谈采集素材
- AI主动提问,引导用户口述想法
- 问题递进:从宏观到微观,从主题到细节
- 自动整理对话要点,生成素材摘要
- 素材按主题分类存储
#### 阶段2|全书框架与大纲规划
- 基于阶段1素材,AI生成全书框架建议
- 与用户讨论确认章节结构
- 输出:完整目录大纲
#### 阶段3|章节正文分批创作
- 按章节顺序逐一创作
- 每章完成后确认,再进入下一章
- 支持章节内容回看、修改
#### 阶段4|全文校对、修订、定稿
- AI检查全文一致性、逻辑性
- 标记疑似问题供用户确认
- 最终导出定稿
六、导出功能需求
1.
PDF导出:带目录、页码、章节标题的排版PDF
2.
Word导出:标准.docx格式,可编辑
3.
纯文本导出:.txt格式,用于其他平台
4.
JSON导出:完整数据备份,可恢复导入
七、部署与代码管理规范
1. Flutter App客户端源码、Cloudflare Worker源码统一存放于私有GitHub仓库;
2. Worker使用Wrangler工具发布部署至Cloudflare;
3. App源码编译生成安卓APK,直接安装到手机,无需上架应用商店;
4. 使用GitHub Actions实现CI/CD自动构建APK。
八、非功能性约束与已知限制
1.
后台限制:手机系统休眠、后台挂起时,定时同步会被系统限制;采用「前台定时同步 + 打开书稿强制拉取云端数据 + 本地缓存队列」三重策略规避丢数据风险;
2.
Worker限制:Cloudflare Worker单次请求最大运行时长300s;适配一问一答语音对话模式,无冲突;
3.
平台优先:优先适配安卓设备;iOS如需安装,需要TestFlight方案,不作为首要目标。
4.
性能要求:语音识别响应时间 < 2s;AI回复时间 < 5s(取决于LLM);本地数据查询 < 100ms。
5.
兼容性:支持Android 8.0 (API 26) 及以上版本。
九、开发阶段规划(无时间限制)
阶段1:基础框架
- Flutter项目搭建,基础UI框架
- 本地SQLite数据库设计
- 书稿CRUD功能
- 阶段状态机基础实现
阶段2:语音交互
- 语音识别(STT)集成
- 小米TTS集成
- 对话记录存储与展示
阶段3:AI Agent
- LLM接口对接
- 阶段规则实现
- 对话上下文管理
阶段4:云端同步
- Cloudflare Worker开发
- D1数据库设计
- 增量同步实现
阶段5:导出与优化
- PDF/Word导出功能
- 性能优化
- Bug修复
开发节奏由开发者自主掌控,按阶段推进,不设时间限制。