# AiVedio **Repository Path**: ky_ky/ai-vedio ## Basic Information - **Project Name**: AiVedio - **Description**: Ai一键生成视频教学系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-09-13 - **Last Updated**: 2026-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 教学视频自动生成系统 🎬 自动化生成教学视频的完整工作流系统,支持自定义时长和场景数量。 ## ✨ 功能特性 - 🤖 **AI 脚本生成** - 使用本地 Ollama 或 DeepSeek API 自动生成教学脚本 - 🎨 **信息图风格** - 数据驱动、结构化的信息图风格内容生成(NEW!) - 🎙️ **智能配音** - Edge-TTS 高质量中文语音合成 - 🖼️ **精美画面** - 自动生成渐变风格场景图片(支持 Nano Banana AI 图像生成) - 🎥 **视频合成** - FFmpeg 自动合并音画 - 🎬 **电影式动画** - 场景切换动画、进度可视化(NEW!) - 📱 **现代 UI** - React + Vite 响应式前端,支持视频在线预览 - ⚡ **异步任务** - Celery + Redis 处理耗时任务,实时进度反馈 ## 🛠️ 技术栈 ### 后端 - **框架:** FastAPI + Celery + Redis - **LLM:** Ollama (本地) / DeepSeek API (云端) - **TTS:** Edge-TTS (微软语音合成) - **音视频:** FFmpeg + MoviePy + Pillow - **数据库:** SQLite + SQLAlchemy ### 前端 - **框架:** React 18 + Vite - **HTTP:** Axios - **样式:** 原生 CSS + 现代渐变设计 ## 🚀 快速开始 ### 环境要求 - Python 3.10+ - Node.js 18+ - Redis - FFmpeg - Ollama (可选,推荐本地运行) ### 1. 创建 Conda 环境 ```bash # 创建并激活环境 conda create -n aivedio python=3.10 conda activate aivedio # 安装后端依赖 cd backend pip install fastapi uvicorn celery redis sqlalchemy pydantic pydantic-settings \ httpx aiofiles python-multipart edge-tts moviepy pillow python-dotenv ``` ### 2. 配置环境变量 ```bash cp backend/.env.example backend/.env # 编辑 .env 配置 LLM 提供商和 API 密钥 ``` **LLM 配置选项:** ```env # 使用本地 Ollama(推荐) LLM_PROVIDER=ollama OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL=qwen2.5:7b # 或使用 DeepSeek API LLM_PROVIDER=deepseek DEEPSEEK_API_KEY=your_api_key_here ``` ### 3. 启动 Redis ```bash # macOS brew services start redis # Linux sudo systemctl start redis # 或使用 Docker docker run -d -p 6379:6379 redis:alpine ``` ### 4. 启动后端服务 ```bash cd backend # 激活 conda 环境 conda activate aivedio # 启动 FastAPI 服务 uvicorn app.main:app --reload --port 8000 # 另开终端启动 Celery Worker celery -A app.tasks worker --loglevel=info ``` ### 5. 启动前端 ```bash cd frontend npm install npm run dev ``` 访问 http://localhost:5173 开始使用! ## 📁 项目结构 ``` AiVedio/ ├── backend/ # Python 后端 │ ├── app/ │ │ ├── main.py # FastAPI 入口 │ │ ├── config.py # 配置管理 │ │ ├── database.py # 数据库连接 │ │ ├── models/ # 数据库模型 │ │ ├── api/ # API 路由 │ │ │ ├── video.py # 视频 CRUD API │ │ │ └── websocket.py # WebSocket 进度推送 │ │ ├── services/ # 业务逻辑 │ │ │ ├── deepseek.py # LLM 服务 │ │ │ ├── tts.py # 语音合成 │ │ │ ├── ffmpeg.py # 音视频处理 │ │ │ └── nano_banana.py # AI 图像生成 │ │ └── tasks/ # Celery 异步任务 │ │ └── video_generation.py │ └── .env.example ├── frontend/ # React 前端 │ ├── src/ │ │ ├── App.jsx # 主应用 │ │ ├── api/ # API 客户端 │ │ └── components/ # UI 组件 │ │ ├── TopicInput.jsx │ │ ├── ScriptPreview.jsx │ │ ├── ProgressTracker.jsx │ │ └── VideoList.jsx │ └── package.json └── storage/ # 媒体文件存储 ├── audio/ # TTS 音频 ├── images/ # 场景图片 ├── videos/ # 视频片段 └── final/ # 最终输出 ``` ## 🎯 工作流程 ```mermaid graph LR A[输入主题] --> B[LLM 生成脚本] B --> C[预览/编辑脚本] C --> D[生成 TTS 配音] D --> E[生成场景图片] E --> F[合成视频] F --> G[在线预览/下载] ``` 1. **输入主题** → 用户设置主题、时长、场景数 2. **生成脚本** → LLM 生成结构化教学脚本(包含旁白和画面描述) 3. **预览编辑** → 用户可编辑每个场景的内容 4. **生成配音** → Edge-TTS 为每个场景生成中文语音 5. **生成图片** → 自动生成精美渐变场景图(或使用 AI 生成) 6. **合成视频** → FFmpeg 将图片、音频合成为完整视频 7. **预览下载** → 在线预览播放或下载视频文件 ## 📋 开发路线图 - [x] 项目初始化与架构搭建 - [x] MVP: 静态图 + TTS 幻灯片视频 - [x] 前端 UI 完善(视频列表、进度追踪、预览播放) - [x] 本地 Ollama 支持 - [x] 视频在线预览播放器 - [x] 🎨 **信息图风格优化** - 数据驱动、结构化内容生成 - [x] 🎬 **电影式动画系统** - 场景切换、进度可视化 - [x] 🔧 **提示词增强服务** - 智能场景检测、AI 绘图优化 - [ ] 集成 Nano Banana AI 图像生成 - [ ] 集成 Wan2.2 动态视频生成 - [ ] Docker 一键部署 - [ ] 字幕支持 ## 🎨 最新更新:信息图风格优化 **完成时间**: 2026-01-24 ### 核心改进 1. ✅ **LLM 提示词优化** - 生成数据丰富、结构化的脚本 2. ✅ **提示词增强服务** - 5种风格 + 6种场景类型 3. ✅ **智能场景检测** - 自动识别场景类型并优化 4. ✅ **端到端测试** - 完整测试套件验证 ### 效果提升 - 旁白字数:15-20字 → 30-40字 (+100%) - 数据包含率:20% → 90% (+350%) - 画面描述:简单 → 详细(布局+元素+配色) - JSON 解析成功率:60% → 100% ### 快速体验 ```bash # 测试信息图风格生成 python backend/test_simple_infographic.py # 测试端到端流程 python backend/test_end_to_end.py ``` ### 详细文档 - 📖 [完整优化文档](INFOGRAPHIC_OPTIMIZATION.md) - 📘 [快速使用指南](backend/INFOGRAPHIC_USAGE.md) - 📝 [优化总结](OPTIMIZATION_SUMMARY.md) ## 🔧 配置说明 | 配置项 | 说明 | 默认值 | |--------|------|--------| | LLM_PROVIDER | LLM 提供商 (ollama/deepseek) | ollama | | OLLAMA_MODEL | Ollama 模型名称 | qwen2.5:7b | | TTS_VOICE | TTS 语音角色 | zh-CN-XiaoxiaoNeural | | DEFAULT_VIDEO_DURATION | 默认视频时长(秒) | 60 | | DEFAULT_SCENE_COUNT | 默认场景数量 | 6 | ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 License MIT License