Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClipForge — 图文口播智能切片系统

输入长视频(直播录屏、讲座、访谈等),自动产出带字幕、钩子、标题的短视频。

功能

  • 自动转录 — Whisper 语音识别,生成逐字稿
  • 内容分析 — DeepSeek LLM 分析主题、情绪、信息密度
  • 智能切片 — 基于完整论点(问题→分析→结论)自动选取片段
  • 钩子提取 — 从原文中找到最有爆发力的开场金句
  • 文稿裁剪 — 删除废话/重复/离题,保留高信息密度内容
  • 切口对齐 — 基于 ASR 词边界精确切割,不断字、不吞音
  • 字幕生成 — ASS 字幕 + 关键词高亮(6 类语义着色)
  • 标题生成 — 多平台标题方案 + 话题标签 + 封面文案

快速开始

方式一:下载 exe(推荐,无需安装 Python)

  1. Releases 下载 ClipForge_v1.3.zip
  2. 解压到任意目录
  3. 双击 ClipForge.exe
  4. 点「浏览」选视频 → 点「开始处理」

DeepSeek API Key 已内置,开箱即用。

方式二:从源码运行(开发者)

# 需要 Python 3.10+
git clone https://github.com/redmaplewww/clipforge.git
cd clipforge

# 安装依赖
pip install -r requirements.txt

# 安装 CPU 版 torch(推荐)
pip install torch --index-url https://download.pytorch.org/whl/cpu

# 配置 API Key
cp .env.example .env
# 编辑 .env 填入 DeepSeek API Key

# 启动 GUI
python ui/app.py

界面

┌──────────┬────────────────────────┬──────────┐
│ 输入设置  │ 处理进度 + 实时日志     │ AI 助手   │
│          │                        │          │
│ 浏览视频  │ ✅ 预处理               │ 自然语言  │
│ 平台选择  │ ✅ 语音识别             │ 对话交互  │
│ 风格选择  │ ⏳ 内容分析             │          │
│ 目标时长  │ ✅ 切片选择             │ 自动解析  │
│          │ ...                    │ 指令      │
│ 开始处理  │                        │          │
│ ⚙ 设置    │ ── 视频预览 ──          │          │
│ 🔧 检查   │ ▶ [内置播放器]          │          │
│          │                        │          │
│ 历史项目  │                        │          │
└──────────┴────────────────────────┴──────────┘

处理流程(7 步管线)

输入视频
   │
   ├─ 1. 预处理 (提取音频 + 视频)
   ├─ 2. 语音识别 (Whisper 转录)
   ├─ 3. 内容分析 (LLM 分析主题/情绪/密度)
   ├─ 4. 切片选择 (LLM 选取最佳片段 + 钩子)
   ├─ 5. 文稿裁剪 (词边界对齐切割 + 重叠检测)
   ├─ 6. 字幕生成 (ASS + 关键词高亮)
   ├─ 7. 渲染合成 (视频拼接 + 字幕烧录)
   └─ 8. 标题生成 (多平台标题 + 话题)
   │
   ▼
输出短视频 (output.mp4)

关键技术

切口对齐(v5 基准)

传统的视频切割直接用时间戳,容易断字、吞音。ClipForge 基于 ASR 词级时间戳对齐切口:

  • 起点:吸附到最近的词开始时间(word.start),避免截进前一个词的尾音
  • 终点:吸附到最近的词结束时间(word.end),避免截断正在说的词
  • 重叠检测:LLM 标记的删除段如果与保留段重叠 >0.1s,自动放弃删除并合并

详见 切口对齐基准文档

时长自适应

不预设固定时长,由内容完整度决定。保留完整的"问题→分析→结论"论点结构,可以是 30 秒也可以是 3 分钟。

项目结构

clipforge/
├── ui/                     # GUI 界面 (PySide6)
│   ├── app.py              # 入口
│   ├── main_window.py      # 主窗口
│   ├── chat_widget.py      # AI 助手对话面板
│   ├── settings_dialog.py  # 设置对话框
│   ├── pipeline_worker.py  # 后台管线线程
│   └── deps_check.py       # 依赖检查
├── app/
│   ├── agents/             # 8 个处理 Agent
│   │   ├── preprocess_agent.py
│   │   ├── asr_agent.py
│   │   ├── analysis_agent.py
│   │   ├── clip_select_agent.py
│   │   ├── script_trim_agent.py
│   │   ├── subtitle_agent.py
│   │   ├── audio_agent.py
│   │   └── title_agent.py
│   ├── services/           # 核心服务
│   │   ├── ffmpeg_service.py
│   │   ├── whisper_service.py
│   │   ├── llm_service.py
│   │   ├── subtitle_service.py
│   │   └── audio_mix_service.py
│   ├── workflows/          # LangGraph 状态图
│   │   └── slice_workflow.py
│   ├── prompts/            # LLM 提示词模板
│   └── config.py           # 配置
├── configs/                # YAML 配置
├── docs/                   # 文档
├── requirements.txt
└── build_clipforge.spec    # PyInstaller 打包配置

配置

LLM、Whisper 和通义听悟配置在 app/config.py 中,或通过 .env 文件覆盖。默认优先使用通义听悟;配置缺失或云端调用失败时回退到 Whisper + DeepSeek。

配置项 默认值 说明
LLM_PROVIDER deepseek LLM 服务商
LLM_MODEL deepseek-chat 模型名
LLM_API_KEY (内置) API Key
LLM_BASE_URL https://api.deepseek.com API 地址
WHISPER_MODEL_SIZE tiny Whisper 模型 (tiny/base/small/medium/large-v3)
WHISPER_DEVICE cpu 计算设备 (cpu/cuda)
TINGWU_APP_KEY (空) 通义听悟 AppKey
ALIYUN_ACCESS_KEY_ID (空) 阿里云 AccessKey ID
ALIYUN_ACCESS_KEY_SECRET (空) 阿里云 AccessKey Secret
TINGWU_OSS_BUCKET clipforge-temp 临时音频 OSS Bucket
TINGWU_OSS_REGION cn-shanghai OSS 地域
TINGWU_REGION cn-beijing 通义听悟 API 地域

打包

# 创建构建虚拟环境
python -m venv .venv_build
.venv_build\Scripts\pip install torch --index-url https://download.pytorch.org/whl/cpu
.venv_build\Scripts\pip install openai-whisper langgraph langchain-core pyyaml python-dotenv click rich httpx pydub pydantic pydantic-settings PySide6 pyinstaller numpy audioop-lts

# 打包 exe (单文件,约 248MB)
.venv_build\Scripts\pyinstaller --onefile --noconsole --name ClipForge ui/app.py ^
  --paths=. ^
  --add-data="app/prompts/*.txt;app/prompts" ^
  --add-data="configs/*.yaml;configs" ^
  --add-data=".venv_build/Lib/site-packages/whisper/assets/mel_filters.npz;whisper/assets" ^
  --add-data=".venv_build/Lib/site-packages/whisper/assets/gpt2.tiktoken;whisper/assets" ^
  --add-data=".venv_build/Lib/site-packages/whisper/assets/multilingual.tiktoken;whisper/assets" ^
  --hidden-import=audioop ^
  --hidden-import=PySide6.QtMultimedia ^
  --hidden-import=PySide6.QtMultimediaWidgets ^
  --hidden-import=pydantic_settings ^
  --hidden-import=yaml --hidden-import=dotenv ^
  --runtime-hook=ui/runtime_hook.py

技术栈

组件 技术
GUI PySide6 (Qt6)
ASR OpenAI Whisper
LLM DeepSeek (OpenAI SDK 兼容)
工作流 LangGraph
视频处理 FFmpeg
打包 PyInstaller
字幕 ASS 格式

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages