Sfoglia il codice sorgente

docs: 添加项目 README

Yi Jiarui 4 mesi fa
parent
commit
b5b7a5da7b
1 ha cambiato i file con 164 aggiunte e 0 eliminazioni
  1. 164 0
      README.md

+ 164 - 0
README.md

@@ -0,0 +1,164 @@
+# video-workflow · 抖音 AI 视频生成系统
+
+一个基于 **Angular 21 + Express** 的 AI 视频创作平台,集成数字人合成、图生视频、动作迁移、素材合成、主题生视频、语音合成(含音色复刻 / 音色选择弹窗)等多条生成 Pipeline。
+
+> 项目名:`tik-tok`(package.json)/ 仓库名:`video-workflow`
+
+---
+
+## ✨ 功能总览
+
+按"Pipeline 注册中心"模式组织(见 `src/app/pipelines/pipeline-registry.ts`),目前已上线/在迭代的 Pipeline:
+
+| Pipeline | 路由 | 输入 | 状态 |
+|---|---|---|---|
+| **数字人合成** | `digital-human` | 参考视频 / 形象图 + 脚本 + 音色 | ✅ stable |
+| **标准视频生成** | `video-generation` | 原始视频 + 改造指令 | 🟡 beta |
+| **图生视频** | `image-to-video` | 图片 + 提示词 + 时长 | 🟡 beta |
+| **动作迁移** | `action-transfer` | 角色图 + 参考动作视频(即梦 Actor v2) | 🟡 beta |
+| **素材合成视频** | `asset-remix` | 3-10 张图片 + 主题 + 音色 | 🟡 beta |
+| **主题生视频** | `topic-to-video` | 一句话主题(LLM 拆分镜 → 文生图 → TTS → ffmpeg 全自动拼接) | 🟡 beta |
+
+**辅助模块**
+
+- 抖音视频搜索 / 监控 / 任务管理 / 历史 / 结果库
+- 语音合成(音色复刻 + 官方音色库选择弹窗 + 试听)
+- 数字人形象准备(normalize / benchmark)
+
+---
+
+## 🏗️ 技术栈
+
+**前端**
+
+- Angular 21(Standalone Components + Signals)
+- TypeScript 5.9 / RxJS 7.8
+- 设计系统:自研 `dh-*` 组件类(深色 / 浅色双主题)
+
+**后端**
+
+- Node.js + Express 4
+- multer(文件上传)、cors、axios
+- 数据:本地 JSON 文件(`data/*.json`)+ ffmpeg 处理视频
+
+**外部服务**
+
+- 火山引擎(豆包 TTS、即梦文生图、即梦 Actor v2 动作迁移)
+- TikHub(抖音数据 API)
+- fmode 后端代理服务(`server.fmode.cn`)
+
+---
+
+## 🚀 快速开始
+
+### 1. 安装依赖
+
+```bash
+npm install
+```
+
+### 2. 启动开发环境(同时启动前后端)
+
+```bash
+npm run dev
+```
+
+`concurrently` 会同时启动:
+
+- 后端:`node server.js`(默认 7337 端口)
+- 前端:`ng serve --proxy-config proxy.conf.json`(默认 4200 端口)
+
+打开浏览器:<http://localhost:4200/>
+
+### 3. 分开启动(可选)
+
+```bash
+npm run server      # 仅后端
+npm start           # 仅前端
+npm run start:dev   # 前端 + 监听 0.0.0.0(局域网调试)
+```
+
+### 4. 构建生产包
+
+```bash
+npm run build       # 输出到 dist/
+```
+
+---
+
+## 📁 目录结构
+
+```
+video-workflow/
+├── server.js                    # Express 后端主文件
+├── proxy.conf.json              # ng serve 代理配置(/api → tikhub、/backend → 本地后端等)
+├── data/                        # 后端运行时数据(history.json / tasks.json / videos/ ...)
+├── src/
+│   └── app/
+│       ├── app.ts               # 主组件(包含全局 UI 状态、tab 切换、各模块入口)
+│       ├── app.html / app.css   # 主模板与全局样式
+│       ├── components/          # 可复用组件
+│       │   ├── app-sidebar/
+│       │   ├── digital-human-form/
+│       │   ├── portrait-prepare/
+│       │   ├── recent-task-pill/
+│       │   ├── app-assistant/
+│       │   └── voice-picker/    # 音色选择弹窗(音色库 + 我的音色 + 试听)
+│       ├── pages/
+│       │   ├── home/
+│       │   └── pipelines/       # 各 Pipeline 独立页面
+│       │       ├── digital-human/
+│       │       ├── image-to-video/
+│       │       ├── action-transfer/
+│       │       ├── asset-remix/
+│       │       └── topic-to-video/
+│       ├── pipelines/
+│       │   ├── pipeline-registry.ts   # Pipeline 注册中心(添加新模式只需改这里)
+│       │   └── composite-sse.ts
+│       ├── services/            # HTTP / 业务服务
+│       └── pipes/               # 时间、文件大小等格式化管道
+└── public/                      # 静态资源
+```
+
+---
+
+## 🔌 代理 / 上游服务(`proxy.conf.json`)
+
+| 前端路径 | 上游 | 用途 |
+|---|---|---|
+| `/api` | `https://api.tikhub.io` | 抖音数据 API |
+| `/jimeng` | `https://server.fmode.cn/api/volcengine/jimeng` | 即梦(图生视频 / 动作迁移) |
+| `/parse` | `https://server.fmode.cn/parse` | Parse 后端(音色档案等) |
+| `/functions` | `https://server.fmode.cn/api/functions` | fmode Functions |
+| `/backend` | `http://localhost:3000` | 本地后端(如有需要) |
+
+---
+
+## 🎙️ 语音合成模块说明
+
+- **音色复刻**:上传一段参考音频 → 调火山 voice_clone → 获得 `timbreId`
+- **音色选择弹窗**(`components/voice-picker`):
+  - **音色库 Tab**:豆包 2.0 模型 25 个精选官方音色,按场景分组(通用/角色扮演/有声阅读/视频配音/客服/多语种),支持关键词搜索
+  - **我的音色 Tab**:用户复刻成功的音色
+  - **试听**:点 ▶ 实时调 TTS 合成固定文本,内存缓存避免重复消耗
+- **合成接口**:根据音色来源自动切换参数
+  - 复刻音色:`timbreId`
+  - 官方音色:`volcengine_voice_type` + `x_api_resource_id: seed-tts-2.0`(`_uranus_bigtts` 后缀必须用 2.0 资源)
+
+参考文档:`docs/语音合成/tts.md`、`docs/语音合成/音色列表.md`(本地参考,已加入 `.gitignore` 不入库)
+
+---
+
+## 📦 npm scripts
+
+| 脚本 | 说明 |
+|---|---|
+| `npm run dev` | 同时启动前后端(推荐开发) |
+| `npm run server` | 仅启动后端 (`node server.js`) |
+| `npm start` | 仅启动前端 (`ng serve`) |
+| `npm run start:dev` | 前端 + 监听 0.0.0.0(局域网) |
+| `npm run build` | 生产构建 → `dist/` |
+| `npm run watch` | 开发模式 watch 构建 |
+| `npm test` | 运行测试(vitest) |
+
+