{ "project_name": "AI语音应用 - 生成内容优化", "base_config": { "backend_port": 3000, "frontend_port": 5173, "db_host": "localhost", "db_port": 3306, "auth_enabled": false }, "features": [ { "id": 1, "description": "模板库 - 基础场景模板API", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl http://localhost:3000/api/templates - 验证获取模板分类列表", "2. curl http://localhost:3000/api/templates?category=广告营销 - 验证按分类筛选模板", "3. curl http://localhost:3000/api/templates/1 - 验证获取单个模板详情", "4. curl -X POST http://localhost:3000/api/templates -H 'Content-Type: application/json' -d '{\"name\":\"测试模板\",\"category\":\"广告营销\",\"content\":\"示例内容\"}' - 验证创建模板", "5. curl -X PUT http://localhost:3000/api/templates/1 -H 'Content-Type: application/json' -d '{\"name\":\"更新模板名\"}' - 验证更新模板", "6. curl -X DELETE http://localhost:3000/api/templates/1 - 验证删除模板" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 点击模板选择按钮", "3. 验证模板分类标签显示正确(广告营销/知识付费/短视频/企业宣传/日常生活/新闻资讯)", "4. 点击某个分类验证模板列表筛选", "5. 点击选择模板验证内容自动填充到输入框", "6. 验证模板预览功能正常" ] }, { "id": 2, "description": "模板库 - 模板选择UI组件", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl http://localhost:3000/api/templates - 验证模板列表接口" ], "frontend_test_steps": [ "1. 在生成页面点击模板按钮", "2. 验证弹出模板选择面板", "3. 验证面板显示模板分类标签", "4. 验证每个分类显示对应模板卡片", "5. 验证模板卡片显示名称、描述、预览缩略图", "6. 点击模板验证选中效果", "7. 确认选择后验证内容填充到输入框" ] }, { "id": 3, "description": "背景音乐 - 背景音乐库API", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl http://localhost:3000/api/bgm - 验证获取背景音乐列表", "2. curl http://localhost:3000/api/bgm?mood=轻柔 - 验证按风格筛选", "3. curl http://localhost:3000/api/bgm/1 - 验证获取单个背景音乐详情", "4. curl -X POST http://localhost:3000/api/bgm -H 'Content-Type: application/json' -d '{\"name\":\"测试BGM\",\"url\":\"https://xxx.mp3\",\"mood\":\"轻柔\",\"duration\":180}' - 验证添加背景音乐", "5. curl -X PUT http://localhost:3000/api/bgm/1 -H 'Content-Type: application/json' -d '{\"volume\":0.5}' - 验证更新背景音乐音量", "6. curl -X DELETE http://localhost:3000/api/bgm/1 - 验证删除背景音乐" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 验证背景音乐选择区域显示", "3. 点击背景音乐按钮展开音乐选择面板", "4. 验证音乐列表显示名称、风格标签、时长", "5. 点击播放按钮验证音乐试听", "6. 选择背景音乐验证自动设置音量", "7. 验证最终生成音频包含背景音乐" ] }, { "id": 4, "description": "背景音乐 - 音量调节功能", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"bgmId\":1,\"bgmVolume\":0.3}' - 验证带背景音乐参数生成" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 选择背景音乐", "3. 验证音量滑块显示", "4. 调节音量滑块验证数值变化", "5. 验证音量实时预览", "6. 生成音频验证背景音乐音量正确" ] }, { "id": 5, "description": "试听预览 - 预览API", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/preview -H 'Content-Type: application/json' -d '{\"text\":\"测试预览文本\",\"voiceId\":\"female-youth\"}' - 验证生成预览音频", "2. curl http://localhost:3000/api/preview/status/preview-001 - 验证预览状态查询" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 输入文本内容", "3. 选择音色参数", "4. 点击试听预览按钮", "5. 验证加载状态显示", "6. 验证预览音频播放正常", "7. 验证试听不消耗正式额度" ] }, { "id": 6, "description": "试听预览 - 试听播放器组件", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/preview -H 'Content-Type: application/json' -d '{\"text\":\"简短文本\"}' - 验证生成简短预览" ], "frontend_test_steps": [ "1. 输入文本后点击试听", "2. 验证预览播放器显示在输入框下方", "3. 验证播放/暂停按钮功能正常", "4. 验证进度条可拖动", "5. 验证试听完成后可重新试听", "6. 验证试听区域可关闭" ] }, { "id": 7, "description": "敏感词检测 - 检测API", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/sensitive-check -H 'Content-Type: application/json' -d '{\"text\":\"正常文本\"}' - 验证正常文本检测", "2. curl -X POST http://localhost:3000/api/sensitive-check -H 'Content-Type: application/json' -d '{\"text\":\"包含敏感词的文本\"}' - 验证敏感词检测", "3. curl http://localhost:3000/api/sensitive-words - 验证获取敏感词库列表" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 输入包含敏感词的文本", "3. 验证实时检测敏感词", "4. 验证敏感词高亮显示", "5. 验证提示信息显示", "6. 修改文本后验证敏感词状态更新", "7. 验证无敏感词时允许生成" ] }, { "id": 8, "description": "敏感词检测 - 实时检测UI", "status": "done", "passes": true, "priority": "high", "phase": "1", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/sensitive-check -H 'Content-Type: application/json' -d '{\"text\":\"测试\"}' - 验证检测接口" ], "frontend_test_steps": [ "1. 在文本输入框输入内容", "2. 验证敏感词实时检测响应", "3. 验证检测结果显示在文本下方", "4. 验证敏感词以红色标注", "5. 验证检测状态图标正确", "6. 验证敏感词列表可点击查看详情" ] }, { "id": 9, "description": "AI文案助手 - 文案生成API", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/ai/assist -H 'Content-Type: application/json' -d '{\"keywords\":\"产品推广\",\"style\":\"广告营销\"}' - 验证AI文案生成", "2. curl -X POST http://localhost:3000/api/ai/assist -H 'Content-Type: application/json' -d '{\"keywords\":\"培训课件\",\"style\":\"知识付费\"}' - 验证不同风格文案生成" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 点击AI助手按钮", "3. 输入关键词(产品推广)", "4. 选择文案风格(广告营销)", "5. 点击生成按钮", "6. 验证AI生成文案显示", "7. 验证一键应用到输入框" ] }, { "id": 10, "description": "AI文案助手 - AI助手UI组件", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl http://localhost:3000/api/ai/styles - 验证获取文案风格列表" ], "frontend_test_steps": [ "1. 点击AI助手入口", "2. 验证AI助手面板弹出", "3. 验证关键词输入框显示", "4. 验证风格选择器(广告营销/知识付费/短视频等)", "5. 验证生成按钮可点击", "6. 验证加载状态显示", "7. 验证生成结果可编辑", "8. 验证一键应用功能" ] }, { "id": 11, "description": "音频剪辑 - 裁剪功能API", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/audio/trim -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"startTime\":10,\"endTime\":60}' - 验证音频裁剪", "2. curl http://localhost:3000/api/audio/audio-001/info - 验证获取音频时长信息" ], "frontend_test_steps": [ "1. 进入音频编辑页面", "2. 选择已生成的音频", "3. 验证波形图显示", "4. 拖动裁剪手柄设置起点", "5. 拖动裁剪手柄设置终点", "6. 验证预览裁剪效果", "7. 点击确认裁剪", "8. 验证裁剪后音频保存" ] }, { "id": 12, "description": "音频剪辑 - 合并功能API", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/audio/merge -H 'Content-Type: application/json' -d '{\"audioIds\":[\"audio-001\",\"audio-002\"],\"order\":[1,2]}' - 验证音频合并" ], "frontend_test_steps": [ "1. 进入音频编辑页面", "2. 选择多个音频", "3. 验证选中音频列表显示", "4. 拖动调整合并顺序", "5. 点击合并按钮", "6. 验证合并进度显示", "7. 验证合并完成后新音频可播放" ] }, { "id": 13, "description": "情感调节 - 情感参数API", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"emotion\":\"happy\"}' - 验证开心情感生成", "2. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"emotion\":\"sad\"}' - 验证悲伤情感生成", "3. curl -X POST http://localhost:3000/api/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"emotion\":\"excited\"}' - 验证激动情感生成", "4. curl http://localhost:3000/api/emotions - 验证获取情感列表" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 输入文本内容", "3. 验证情感选择器显示", "4. 选择开心情感", "5. 试听验证效果", "6. 切换到悲伤情感", "7. 试听验证效果差异", "8. 验证不同情感参数正确传递" ] }, { "id": 14, "description": "情感调节 - 情感选择UI", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl http://localhost:3000/api/emotions - 验证情感列表接口" ], "frontend_test_steps": [ "1. 验证情感选择区域显示", "2. 验证情感选项(开心/悲伤/平静/激动/温柔)", "3. 验证每个情感有对应图标", "4. 验证选中状态显示", "5. 验证情感描述提示", "6. 验证与其他参数(语速/音调)组合使用" ] }, { "id": 15, "description": "字幕生成 - SRT字幕API", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/subtitle/generate -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"format\":\"srt\"}' - 验证生成SRT字幕", "2. curl -X POST http://localhost:3000/api/subtitle/generate -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"format\":\"lrc\"}' - 验证生成LRC歌词", "3. curl http://localhost:3000/api/subtitle/audio-001/download - 验证字幕下载" ], "frontend_test_steps": [ "1. 进入音频详情页", "2. 验证字幕下载按钮显示", "3. 点击字幕格式选择", "4. 验证SRT格式下载", "5. 验证LRC格式下载", "6. 验证下载文件内容正确" ] }, { "id": 16, "description": "字幕生成 - 字幕预览功能", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl http://localhost:3000/api/subtitle/audio-001 - 验证获取字幕内容" ], "frontend_test_steps": [ "1. 播放音频时验证字幕同步显示", "2. 验证字幕与音频时间轴同步", "3. 验证字幕样式可自定义(大小/颜色)", "4. 验证字幕可关闭", "5. 验证多语言字幕切换" ] }, { "id": 17, "description": "多角色对话 - 多角色API", "status": "done", "passes": true, "priority": "medium", "phase": "3", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/dialogue/generate -H 'Content-Type: application/json' -d '{\"lines\":[{\"text\":\"你好\",\"role\":\"A\",\"voiceId\":\"male-youth\"},{\"text\":\"你好啊\",\"role\":\"B\",\"voiceId\":\"female-youth\"}]}' - 验证多角色对话生成" ], "frontend_test_steps": [ "1. 进入生成页面", "2. 点击多角色模式", "3. 验证角色输入区域显示", "4. 添加多个角色对话", "5. 为每个角色选择不同音色", "6. 验证预览功能", "7. 验证生成完整对话音频" ] }, { "id": 18, "description": "多角色对话 - 角色管理UI", "status": "done", "passes": true, "priority": "medium", "phase": "3", "backend_test_steps": [ "1. curl http://localhost:3000/api/voices/roles - 验证获取可用角色音色" ], "frontend_test_steps": [ "1. 验证角色添加按钮", "2. 验证角色列表显示", "3. 验证每个角色可独立选择音色", "4. 验证角色可删除", "5. 验证角色顺序可调整", "6. 验证对话文本输入框", "7. 验证时间戳显示" ] }, { "id": 19, "description": "视频配音 - 视频上传API", "status": "done", "passes": true, "priority": "medium", "phase": "3", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/video/upload -F 'video=@test.mp4' - 验证视频上传", "2. curl http://localhost:3000/api/video/video-001 - 验证获取视频信息" ], "frontend_test_steps": [ "1. 进入视频配音页面", "2. 点击上传视频按钮", "3. 选择本地视频文件", "4. 验证上传进度显示", "5. 验证上传完成视频预览", "6. 验证视频时长显示" ] }, { "id": 20, "description": "视频配音 - 音视频合成API", "status": "done", "passes": true, "priority": "medium", "phase": "3", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/video/sync -H 'Content-Type: application/json' -d '{\"videoId\":\"video-001\",\"audioId\":\"audio-001\"}' - 验证音视频合成", "2. curl http://localhost:3000/api/video/video-001/status - 验证合成状态" ], "frontend_test_steps": [ "1. 上传视频后输入配音文本", "2. 选择音色和参数", "3. 点击生成配音", "4. 验证配音生成进度", "5. 验证音视频同步预览", "6. 验证下载合成后的视频" ] }, { "id": 21, "description": "品牌音色定制 - 音色训练API", "status": "done", "passes": true, "priority": "low", "phase": "3", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/voice/custom -H 'Content-Type: application/json' -d '{\"name\":\"品牌音色\",\"audioFiles\":[\"file1.mp3\",\"file2.mp3\"]}' - 验证音色训练请求", "2. curl http://localhost:3000/api/voice/custom/status/custom-001 - 验证训练状态" ], "frontend_test_steps": [ "1. 进入品牌音色定制页面", "2. 验证音色上传引导", "3. 上传音频样本", "4. 验证样本数量检查", "5. 验证训练状态显示", "6. 验证训练完成音色列表" ] }, { "id": 22, "description": "品牌音色定制 - 企业音色管理", "status": "done", "passes": true, "priority": "low", "phase": "3", "backend_test_steps": [ "1. curl http://localhost:3000/api/voice/custom/list - 验证获取已训练音色", "2. curl -X DELETE http://localhost:3000/api/voice/custom/voice-001 - 验证删除音色" ], "frontend_test_steps": [ "1. 进入音色管理页面", "2. 验证已训练音色列表显示", "3. 验证音色使用统计", "4. 验证音色启用/禁用开关", "5. 验证删除音色确认", "6. 验证删除后状态更新" ] }, { "id": 23, "description": "一键发布 - 平台配置API", "status": "done", "passes": true, "priority": "medium", "phase": "3", "backend_test_steps": [ "1. curl http://localhost:3000/api/platforms - 验证获取可发布平台列表", "2. curl -X POST http://localhost:3000/api/platforms/bind -H 'Content-Type: application/json' -d '{\"platform\":\"ximalaya\",\"token\":\"xxx\"}' - 验证绑定平台账号", "3. curl http://localhost:3000/api/platforms/bound - 验证获取已绑定平台" ], "frontend_test_steps": [ "1. 进入发布设置页面", "2. 验证支持的平台列表(喜马拉雅/抖音/视频号)", "3. 点击绑定平台账号", "4. 验证授权流程", "5. 验证已绑定平台状态显示" ] }, { "id": 24, "description": "一键发布 - 发布功能", "status": "done", "passes": true, "priority": "medium", "phase": "3", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/publish -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\",\"platforms\":[\"ximalaya\"],\"title\":\"测试标题\",\"description\":\"测试描述\"}' - 验证发布音频" ], "frontend_test_steps": [ "1. 在音频详情页点击发布按钮", "2. 选择目标平台", "3. 填写标题和描述", "4. 点击发布", "5. 验证发布进度显示", "6. 验证发布成功提示", "7. 验证跳转到平台查看" ] }, { "id": 25, "description": "质量评分 - 评分API", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/quality/score -H 'Content-Type: application/json' -d '{\"audioId\":\"audio-001\"}' - 验证生成质量评分", "2. curl http://localhost:3000/api/quality/audio-001 - 验证获取评分详情" ], "frontend_test_steps": [ "1. 音频生成完成后验证质量评分显示", "2. 验证流畅度评分显示", "3. 验证自然度评分显示", "4. 验证总分显示", "5. 验证评分说明提示" ] }, { "id": 26, "description": "多版本对比 - 版本生成API", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/versions/generate -H 'Content-Type: application/json' -d '{\"text\":\"测试文本\",\"voiceIds\":[\"female-youth\",\"male-youth\",\"female-mature\"]}' - 验证多版本生成" ], "frontend_test_steps": [ "1. 输入文本后点击多版本生成", "2. 选择多个音色", "3. 验证批量生成进度", "4. 验证各版本列表显示", "5. 验证每个版本可试听", "6. 验证版本对比视图" ] }, { "id": 27, "description": "多版本对比 - 对比界面", "status": "done", "passes": true, "priority": "medium", "phase": "2", "backend_test_steps": [ "1. curl http://localhost:3000/api/versions/audio-001 - 验证获取版本列表" ], "frontend_test_steps": [ "1. 进入版本对比页面", "2. 验证各版本并排显示", "3. 验证每个版本可独立播放", "4. 验证选中版本高亮", "5. 验证选择最终版本", "6. 验证质量评分对比" ] }, { "id": 28, "description": "专辑分类 - 增强分类API", "status": "done", "passes": true, "priority": "medium", "phase": "1", "backend_test_steps": [ "1. curl http://localhost:3000/api/albums/categories - 验证获取专辑分类", "2. curl -X POST http://localhost:3000/api/albums -H 'Content-Type: application/json' -d '{\"name\":\"测试专辑\",\"category\":\"课件\"}' - 验证按分类创建专辑" ], "frontend_test_steps": [ "1. 进入专辑管理页面", "2. 验证分类筛选器显示", "3. 验证按分类筛选专辑", "4. 验证创建专辑时选择分类", "5. 验证专辑分类标签显示" ] }, { "id": 29, "description": "标签系统 - 标签API", "status": "done", "passes": true, "priority": "low", "phase": "1", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/audio/audio-001/tags -H 'Content-Type: application/json' -d '{\"tags\":[\"广告\",\"课件\"]}' - 验证添加标签", "2. curl http://localhost:3000/api/audio/audio-001/tags - 验证获取音频标签", "3. curl http://localhost:3000/api/tags/popular - 验证获取热门标签" ], "frontend_test_steps": [ "1. 在音频详情页点击添加标签", "2. 输入标签关键词", "3. 验证标签自动补全", "4. 选择热门标签", "5. 验证标签显示在音频下方", "6. 验证点击标签筛选音频" ] }, { "id": 30, "description": "收藏夹 - 收藏模板功能", "status": "done", "passes": true, "priority": "low", "phase": "1", "backend_test_steps": [ "1. curl -X POST http://localhost:3000/api/favorites/templates -H 'Content-Type: application/json' -d '{\"templateId\":1}' - 验证收藏模板", "2. curl http://localhost:3000/api/favorites/templates - 验证获取收藏模板列表", "3. curl -X DELETE http://localhost:3000/api/favorites/templates/1 - 验证取消收藏" ], "frontend_test_steps": [ "1. 在模板列表点击收藏按钮", "2. 验证收藏状态更新", "3. 进入我的收藏页面", "4. 验证收藏的模板显示", "5. 验证使用收藏的模板", "6. 验证取消收藏功能" ] } ] }