这份项目现在只保留一条流程:
网页 URL / 上传视频 / 直接输入文本 → 提取或确认文本 → AI 改写 → 确认文本 → 上传人物图 + 生成语音 → 异步生成可灵数字人口播视频
server.py工作流后端接口,提供/workflow/*frontend/分步式 H5 界面content_extraction.py网页内容提取、视频转写、抖音分享解析text_rewrite.py调用 Moonshot/Kimi 做文本改写tts_service.py使用 Edge TTS 生成中文音频kling_service.py调用可灵的 Avatar 接口workflow_state.py内存态工作流状态moonshot_service.py.env加载与 Kimi 客户端初始化
- Python 3.10+
uv- Node.js 18+(仅前端开发需要)
ffmpeg(视频转写需要)
uv sync
cp .env.example .env至少配置:
MOONSHOT_API_KEY=...
KLING_ACCESS_KEY_ID=...
KLING_ACCESS_KEY_SECRET=...可选:
TTS_VOICE=zh-CN-XiaoxiaoNeural
KLING_API_BASE_URL=https://api.klingai.com
KLING_PRINT_JWT=0
KLING_DEBUG_HTTP=0
WORKFLOW_STORE_BACKEND=mysql
WORKFLOW_DATABASE_URL=mysql+pymysql://root:password@127.0.0.1:3306/digital_human_workflow
WORKFLOW_MYSQL_TABLE=workflow_sessions说明:
- 默认网关已改为
https://api.klingai.com - 如果你的可灵账号明确要求新加坡网关,再手动覆盖
KLING_API_BASE_URL=https://api-singapore.klingai.com - 排查鉴权时可临时设置
KLING_PRINT_JWT=1,后端控制台会打印完整 JWT,排查后建议改回0 - 排查请求头时可临时设置
KLING_DEBUG_HTTP=1,后端控制台会打印 Authorization 是否实际带出 WORKFLOW_STORE_BACKEND=mysql会把工作流会话写入 MySQL,后端重启后仍可查询旧 session
MySQL 首次使用前先建库:
CREATE DATABASE IF NOT EXISTS digital_human_workflow
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;应用启动时会自动创建 workflow_sessions 表。
前端依赖:
cd frontend
npm install后端:
uv run uvicorn server:app --host 127.0.0.1 --port 8000接口文档:
前端:
cd frontend
npm run dev默认地址:
POST /workflow/startPOST /workflow/uploadGET /rewrite-stylesPOST /workflow/{session_id}/rewritePOST /workflow/{session_id}/confirmPOST /workflow/{session_id}/audioPOST /workflow/{session_id}/avatar-imagePOST /workflow/{session_id}/videoGET /workflow/{session_id}/statusGET /workflow/sessions
- 项目已经移除聊天/RAG/多角色/联网检索相关代码
- 启动工作流后端时,不会再初始化 Hugging Face 向量模型