开发一个AI有声书生成工具,用户输入长文本自动生成高质量音频,支持下载和分享。定位为内容创作者的音频制作工具,帮助自媒体作者、小说爱好者、学习者低成本制作音频内容。
| 用户类型 | 典型场景 | 付费意愿 |
|---|---|---|
| 自媒体作者 | 文章转音频发布到平台 | 高(¥20-50/月) |
| 小说爱好者 | 网文转音频自己听 | 中(¥10-20/月) |
| 学习者 | 论文/文档转音频 | 中(¥10-30/月) |
| 视障人士 | 文档识别转音频 | 高(有政策支持) |
按字数收费 + 会员套餐
| 收费方式 | 价格 | 适用人群 |
|---|---|---|
| 按次付费 | ¥0.01/千字 | 轻度用户 |
| 月度会员 | ¥19.9/月 | 活跃用户 |
| 年度会员 | ¥199/年 | 重度用户 |
| 阶段 | 用户数 | 付费率 | 月收入 | 月成本 | 月利润 |
|---|---|---|---|---|---|
| 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备用 |
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)
{
_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)
{
_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)
{
_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
采用现代化简约风格,以渐变色和卡片式设计为主,营造科技感与亲和力并存的视觉体验。主色调使用蓝色系,象征科技与信任,辅以温暖的橙色作为强调色。
迷你播放器(全局底部悬浮):
完整播放器页面:
第1周:
第2周:
基于用户反馈和产品优化,新增以下功能:
| 功能 | 优先级 | 说明 |
|---|---|---|
| 🔍 全局搜索 | 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 - 核心体验)
第二阶段(P2 - 丰富功能)
内容分类
音质选择
离线缓存
第三阶段(P3 - 完善优化)