开发一个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 | 类型安全 |
| MongoDB | 6.x | 数据库 |
| 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周: