# AI有声书生成工具 - 开发计划 ## 产品概述 开发一个AI有声书生成工具,用户输入长文本自动生成高质量音频,支持下载和分享。定位为内容创作者的音频制作工具,帮助自媒体作者、小说爱好者、学习者低成本制作音频内容。 ## 核心功能 ### 一、文本转音频(核心功能) - **长文本支持**:输入任意长度文本(无限制) - **自动分段处理**:智能分段,并行生成,快速完成 - **多种音色**:标准音色、情感音色共10+种 - **参数调节**:语速(0.5x-2.0x)、音调、音量 ### 二、智能辅助 - **自动生成简介**:AI提取核心内容,生成200字简介 - **自动生成标题**:智能提取或生成吸引人的标题 - **标签推荐**:自动分析文本生成标签 ### 三、音频播放器(核心功能) - **在线播放**:无需下载,直接在线收听 - **播放控制**: - 播放/暂停 - 进度条拖动 - 上一条/下一条切换 - 倍速播放(0.5x/0.75x/1.0x/1.25x/1.5x/2.0x) - **播放列表**:历史记录作为播放列表 - **后台播放**:支持后台播放,锁屏状态可继续播放 - **锁屏控制**:锁屏界面显示播放控制 ### 四、音频管理 - **下载保存**:支持MP3格式下载 - **历史记录**:保存生成历史,方便管理 - **收藏功能**:收藏喜欢的音频 - **分享功能**:生成分享链接或二维码 ### 四、会员体系(简化版) - **免费版**:每天3次生成,每次最多5000字 - **月度会员**(¥19.9/月):每天20次生成,每次最多50000字 - **年度会员**(¥199/年):每天无限次生成,无字数限制 ## 目标用户 ### 主要用户群体 1. **自媒体作者**:想把文章转音频发布 2. **小说爱好者**:想听冷门小说或自己写的小说 3. **学习者**:想听论文、技术文档、学习资料 4. **视障人士**:需要听各种文档内容 ### 用户场景 | 用户类型 | 典型场景 | 付费意愿 | | --- | --- | --- | | 自媒体作者 | 文章转音频发布到平台 | 高(¥20-50/月) | | 小说爱好者 | 网文转音频自己听 | 中(¥10-20/月) | | 学习者 | 论文/文档转音频 | 中(¥10-30/月) | | 视障人士 | 文档识别转音频 | 高(有政策支持) | ## 商业模式 ### 收费模式 **按字数收费 + 会员套餐** | 收费方式 | 价格 | 适用人群 | | --- | --- | --- | | 按次付费 | ¥0.01/千字 | 轻度用户 | | 月度会员 | ¥19.9/月 | 活跃用户 | | 年度会员 | ¥199/年 | 重度用户 | ### 成本结构 - 讯飞TTS:¥0.2/千字符 - OSS存储:¥0.12/GB/月 - CDN流量:¥0.24/GB - 服务器:¥500/月 ### 盈利预测 | 阶段 | 用户数 | 付费率 | 月收入 | 月成本 | 月利润 | | --- | --- | --- | --- | --- | --- | | 3个月 | 1000 | 5% | ¥2,000 | ¥1,500 | ¥500 | | 6个月 | 5000 | 6% | ¥12,000 | ¥5,000 | ¥7,000 | | 12个月 | 20000 | 8% | ¥60,000 | ¥15,000 | ¥45,000 | ## 技术栈选择 ### 前端技术 | 技术 | 版本 | 用途 | | --- | --- | --- | | uniapp | 最新 | 跨平台框架(微信/H5) | | Vue3 | 3.x | 前端框架 | | TypeScript | 5.x | 类型安全 | | Pinia | 2.x | 状态管理 | | uni-ui | 最新 | UI组件库 | ### 后端技术 | 技术 | 版本 | 用途 | | --- | --- | --- | | Node.js | 18 LTS | 运行时环境 | | Koa | 2.x | Web框架 | | TypeScript | 5.x | 类型安全 | | MySQL | 8.x | 数据库 | | Prisma | 7.x | ORM框架 | | Redis | 7.x | 缓存/会话 | | FFmpeg | 最新 | 音频处理 | ### 云服务 | 服务 | 提供商 | 用途 | | --- | --- | --- | | ECS | 阿里云 | 服务器部署 | | OSS | 阿里云 | 音频文件存储 | | CDN | 阿里云 | 音频加速 | | 讯飞语音 | 科大讯飞 | TTS服务 | | 阿里云TTS | 阿里云 | TTS备用 | ## 实现方案 ### 系统架构 ```mermaid graph TB subgraph 客户端 A[微信小程序] B[H5网页] end subgraph 服务端 C[Nginx] D[Koa API服务] E[TTS处理服务] F[音频处理服务] end subgraph 数据层 G[MongoDB] H[Redis缓存] I[OSS音频存储] end subgraph 第三方服务 J[讯飞TTS API] K[阿里云TTS API] L[微信支付] end A --> C B --> C C --> D D --> E D --> F E --> J E --> K D --> G D --> H F --> I D --> L ``` ### 核心模块设计 **1. 长文本TTS处理** ``` 长文本输入 → 文本分段(500字/段) → 并行TTS生成 → 音频合并 → OSS存储 → 返回音频URL 优化:任务队列 + 异步处理,支持并发 ``` **2. 智能辅助生成** ``` 文本输入 → AI提取关键词 → 生成简介(200字) → 生成标题 → 推荐标签 使用:讯飞星火或阿里通义千问API ``` **3. 用户权益控制** ``` 请求拦截 → 次数校验 → 字数校验 → 通过执行/拒绝提示 免费用户:3次/天,5000字/次 月度会员:20次/天,50000字/次 年度会员:无限次,无限制 ``` **4. 音频处理流程** ``` TTS生成 → 格式转换(MP3) → 音频压缩 → 上传OSS → 生成下载链接 优化:CDN加速下载 ``` ### 数据库设计 **用户表(users)** ```javascript { _id: ObjectId, openid: String, // 微信openid unionid: String, // 跨平台unionid nickname: String, avatar: String, memberLevel: Number, // 0免费 1月度 2年度 memberExpireAt: Date, dailyUsage: Number, // 今日使用次数 lastUsageDate: String, // 最后使用日期 createdAt: Date } ``` **音频记录表(audios)** ```javascript { _id: ObjectId, userId: ObjectId, title: String, // 标题 text: String, // 原文内容 summary: String, // AI生成简介 tags: [String], // 标签 audioUrl: String, // 音频URL audioDuration: Number, // 时长(秒) audioSize: Number, // 文件大小(字节) wordCount: Number, // 字数 voiceId: String, // 音色ID voiceParams: { // 参数 speed: Number, pitch: Number, volume: Number }, status: String, // processing/completed/failed createdAt: Date } ``` **订单表(orders)** ```javascript { _id: ObjectId, userId: ObjectId, orderNo: String, productType: String, // monthly/yearly amount: Number, status: String, // pending/paid/failed paymentMethod: String, paidAt: Date, createdAt: Date } ``` ## 目录结构 ``` c:/Users/caoyg/test/audio/ ├── client/ # uniapp前端项目 │ ├── src/ │ │ ├── pages/ │ │ │ ├── index/ # 首页(文本输入+生成) │ │ │ ├── history/ # 历史记录页面 │ │ │ ├── mine/ # 个人中心 │ │ │ └── member/ # 会员页面 │ │ ├── components/ │ │ │ ├── TextInput.vue # 文本输入组件 │ │ │ ├── AudioPlayer.vue # 音频播放器 │ │ │ ├── VoiceSelector.vue # 音色选择器 │ │ │ └── MemberCard.vue # 会员卡片 │ │ ├── store/ │ │ │ ├── user.ts │ │ │ └── audio.ts # 音频状态 │ │ ├── api/ │ │ │ ├── tts.ts # TTS接口 │ │ │ ├── user.ts # 用户接口 │ │ │ └── payment.ts # 支付接口 │ │ └── utils/ │ ├── manifest.json │ ├── pages.json │ └── package.json │ ├── server/ # Node.js后端项目 │ ├── src/ │ │ ├── modules/ │ │ │ ├── tts/ # TTS服务模块 │ │ │ │ ├── tts.controller.ts │ │ │ │ ├── tts.service.ts │ │ │ │ ├── xunfei.provider.ts # 讯飞实现 │ │ │ │ ├── aliyun.provider.ts # 阿里云实现 │ │ │ │ └── audio-merger.ts # 音频合并 │ │ │ ├── auth/ # 用户认证模块 │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.service.ts │ │ │ │ └── auth.dto.ts │ │ │ ├── member/ # 会员模块 │ │ │ │ ├── member.controller.ts │ │ │ │ └── member.service.ts │ │ │ └── payment/ # 支付模块 │ │ │ ├── payment.controller.ts │ │ │ └── payment.service.ts │ │ ├── middleware/ │ │ │ ├── auth.ts # 认证中间件 │ │ │ ├── usageLimit.ts # 使用次数限制 │ │ │ └── errorHandler.ts │ │ ├── models/ │ │ │ ├── User.ts │ │ │ ├── Audio.ts │ │ │ └── Order.ts │ │ └── app.ts │ ├── package.json │ └── tsconfig.json │ ├── docs/ │ ├── API.md # API文档 │ └── DEPLOY.md # 部署文档 │ ├── AI语音应用商业计划书.md └── README.md ``` ## 实施要点 ### 性能优化 - 长文本并行生成,提升速度 - 任务队列处理,避免阻塞 - Redis缓存用户权益信息 - CDN加速音频下载 ### 安全措施 - API签名验证 - 用户敏感数据加密 - 支付回调验签 - 音频链接时效性控制 ### 成本控制 - 讯飞TTS:¥0.2/千字符 - OSS存储:¥0.12/GB/月 - CDN流量:¥0.24/GB - 预估1000用户/月成本:¥1500 ## 设计风格 采用现代化简约风格,以渐变色和卡片式设计为主,营造科技感与亲和力并存的视觉体验。主色调使用蓝色系,象征科技与信任,辅以温暖的橙色作为强调色。 ## 页面规划 ### 首页(核心页面) - 顶部:Logo + 用户头像 + 剩余次数提示 - 中部: - 文本输入区(支持粘贴、字数统计) - 音色选择下拉 - 参数调节滑块(语速、音调、音量) - 底部:生成按钮(渐变色主按钮)+ 底部导航栏 ### 播放器页面(核心页面) - **迷你播放器**(全局底部悬浮): - 当前播放信息(封面、标题、时长) - 播放/暂停按钮 - 下一首按钮 - 进度条(可拖动) - 点击展开完整播放器 - **完整播放器页面**: - 顶部:返回按钮 + 标题 - 中部: - 大封面图 - 文本预览 - 简介(AI生成) - 播放控制: - 进度条(可拖动,显示当前时间/总时长) - 播放/暂停按钮 - 上一首/下一首按钮 - 倍速选择(0.5x/0.75x/1.0x/1.25x/1.5x/2.0x) - 收藏按钮 - 底部: - 下载按钮 - 分享按钮 - 添加到播放列表 ### 历史记录页面 - 顶部:搜索栏 - 中部:音频列表(卡片式,显示标题、时长、生成时间、操作按钮) - 底部:导航栏 ### 个人中心页面 - 顶部:用户信息卡片(头像、昵称、会员状态) - 中部: - 会员中心入口 - 使用统计 - 设置 - 帮助反馈 - 底部:导航栏 ### 会员页面 - 顶部:会员权益说明 - 中部:会员卡片对比(免费/月度/年度) - 底部:立即开通按钮 ## 开发计划 ### MVP阶段(2周) **第1周**: - 项目初始化 - 用户登录(微信授权) - TTS核心功能(讯飞API集成) - 文本输入+音频生成 **第2周**: - 音频播放器(在线播放、进度控制、倍速播放) - 后台播放、锁屏控制 - 播放列表功能 - 下载功能 - 历史记录 - 会员系统基础版 - 微信支付集成 ### V1.0阶段(1个月) - 优化TTS生成速度 - 智能简介生成 - 更多音色选择 - 分享功能 - 管理后台 ### V1.5阶段(2-3个月) - H5版本 - 批量生成 - 音频编辑功能 - 导出多种格式 --- ## 第二期开发计划(体验增强) 基于用户反馈和产品优化,新增以下功能: ### 一、搜索与发现 | 功能 | 优先级 | 说明 | |------|--------|------| | 🔍 全局搜索 | P1 | 搜索有声书标题、历史记录 | | 🏷️ 内容分类 | P2 | 按类型筛选(故事/小说/新闻/学习) | ### 二、播放体验优化 | 功能 | 优先级 | 说明 | |------|--------|------| | ⏰ 定时关闭 | P1 | 睡眠定时、15/30/60分钟自动停止 | | 🎚️ 播放速度 | P1 | 0.5x-2x速听,记忆用户偏好 | | 🔊 音质选择 | P2 | 高/标准音质切换 | | 🎵 AI音色库 | P2 | 多种AI主播声音可选 | ### 三、数据同步 | 功能 | 优先级 | 说明 | |------|--------|------| | 📊 播放记录 | P1 | 记录播放进度,支持续播 | | ⭐ 收藏夹 | P1 | 收藏喜欢的音频 | | 💾 离线缓存 | P2 | 下载到本地离线听 | ### 四、社交与分享 | 功能 | 优先级 | 说明 | |------|--------|------| | 📤 分享功能 | P1 | 分享给微信好友/朋友圈 | | 💬 评论打分 | P2 | 对内容评论评分 | | 🔔 消息通知 | P3 | 新内容推送、会员优惠 | ### 六、技术优化 | 功能 | 优先级 | 说明 | |------|--------|------| | ⚡ 加载优化 | P1 | 骨架屏、缓存优化 | | 📡 断点续传 | P2 | 大文件下载断点续传 | | 🔄 数据同步 | P2 | 多端数据实时同步 | --- ### 第二期页面规划 新增页面: ``` pages/ ├── search/ # 搜索页面 │ └── index.vue ├── favorites/ # 收藏页面 │ └── index.vue └── settings/ # 设置页面 └── index.vue ``` 修改页面: ``` pages/ ├── index/ # 首页增加分类、推荐 ├── player/ # 播放器增加定时、速度、音质 ├── history/ # 增加搜索、收藏入口 └── mine/ # 增加设置、收藏入口 ``` ### 第二期实施顺序 **第一阶段(P1 - 核心体验)** 1. 播放记录 + 续播 2. 收藏功能 3. 定时关闭 4. 播放速度记忆 5. 分享功能 **第二阶段(P2 - 丰富功能)** 6. 全局搜索 7. 内容分类 9. 音质选择 10. 离线缓存 **第三阶段(P3 - 完善优化)** 11. 评论打分 12. 消息通知 13. 个性化主题 --- ## Agent Extensions ### Skill - **skill-creator**: 用于创建项目开发规范skill,确保代码风格统一 - **self-improvement**: 开发过程中记录错误和改进点,持续优化代码质量 ### Integration - **阿里云ECS**: 部署后端服务 - **阿里云OSS**: 音频文件存储与CDN加速 ### SubAgent - **code-explorer**: 探索生成的代码结构,确保模块划分合理