# VideoCaptioner
**Repository Path**: kf1080/VideoCaptioner
## Basic Information
- **Project Name**: VideoCaptioner
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-12-29
- **Last Updated**: 2024-12-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
卡卡字幕助手
VideoCaptioner
一款基于大语言模型(LLM)的视频字幕处理助手,支持语音识别、字幕断句、优化、翻译全流程处理
简体中文 / [English](./docs/README_EN.md)
## 📖 项目介绍
卡卡字幕助手(VideoCaptioner)操作简单且无需高配置,支持网络调用和本地离线(支持调用GPU)两种方式进行语音识别,利用可用通过大语言模型进行字幕智能断句、校正、翻译,字幕视频全流程一键处理!为视频配上效果惊艳的字幕。
- 🎯 无需GPU即可使用强大的语音识别引擎,生成精准字幕
- ✂️ 基于 LLM 的智能分割与断句,字幕阅读更自然流畅
- 🔄 AI字幕多线程优化与翻译,调整字幕格式、表达更地道专业
- 🎬 支持批量视频字幕合成,提升处理效率
- 📝 直观的字幕编辑查看界面,支持实时预览和快捷编辑
- 🤖 消耗模型 Token 少,且内置基础 LLM 模型,保证开箱即用
## 📸 界面预览


## 🧪 测试
全流程处理一个14分钟1080P的 [B站英文 TED 视频](https://www.bilibili.com/video/BV1jT411X7Dz),调用本地 Whisper 模型进行语音识别,使用 `gpt-4o-mini` 模型优化和翻译为中文,总共消耗时间约 **4 分钟**。
近后台计算,模型优化和翻译消耗费用不足 ¥0.01(以官方价格为计算)
具体字幕和视频合成的效果的测试结果图片,请参考 [TED视频测试](./docs/test.md)
## 🚀 快速开始
### Windows 用户
软件较为轻量,打包大小不足 60M,已集成所有必要环境,下载后可直接运行。
1. 从 [Release](https://github.com/WEIFENG2333/VideoCaptioner/releases) 页面下载最新版本的可执行程序。或者:[蓝奏盘下载](https://wwwm.lanzoue.com/iKMhH2g0se9a)
2. 打开安装包进行安装
3. (可选)LLM API 配置,选择是否启用字幕优化或者字幕翻译
4. 拖拽视频文件到软件窗口,即可全自动处理
提示:每一个步骤均支持单独处理,均支持文件拖拽。
MacOS 用户
由于本人缺少 Mac,所以没法测试和打包,暂无法提供 MacOS 的可执行程序。
Mac 用户请自行使用下载源码和安装 python 依赖运行。(本地 Whisper 功能暂不支持 MacOS)
1. 安装 ffmpeg
```bash
brew install ffmpeg
```
2. 克隆项目
```bash
git clone https://github.com/WEIFENG2333/VideoCaptioner.git
```
3. 安装依赖
```bash
pip install -r requirements.txt
```
4. 运行程序
```bash
python main.py
```
## ✨ 主要功能
软件充分利用大语言模型(LLM)在理解上下文方面的优势,对语音识别生成的字幕进一步处理。有效修正错别字、统一专业术语,让字幕内容更加准确连贯,为用户带来出色的观看体验!
#### 1. 多平台视频下载与处理
- 支持国内外主流视频平台(B站、Youtube等)
- 自动提取视频原有字幕处理
#### 2. 专业的语音识别引擎
- 提供多种接口在线识别,效果媲美剪映(免费、高速)
- 支持本地Whisper模型(保护隐私、可离线)
#### 3. 字幕智能纠错
- 自动优化专业术语、代码片段和数学公式格式
- 上下文进行断句优化,提升阅读体验
- 支持文稿提示,使用原有文稿或者相关提示优化字幕断句
#### 4. 高质量字幕翻译
- 结合上下文的智能翻译,确保译文兼顾全文
- 通过Prompt指导大模型反思翻译,提升翻译质量
- 使用序列模糊匹配算法、保证时间轴完全一致
#### 5. 字幕样式调整
- 丰富的字幕样式模板(科普风、新闻风、番剧风等等)
- 多种格式字幕视频(SRT、ASS、VTT、TXT)
## ⚙️ 基本配置
### 1. LLM API 配置说明 (可选)
| 配置项 | 说明 |
|--------|------|
| 内置模型 | 软件内置基础大语言模型(`gpt-4o-mini`),无需配置即可使用 |
| API支持 | 支持标准 OpenAI API 格式。兼容 [SiliconCloud](https://cloud.siliconflow.cn/i/HF95kaoz)、[DeepSeek](https://platform.deepseek.com/) 、 [Ollama](https://ollama.com/blog/openai-compatibility) 等。
配置方法请参考[配置文档](./docs/llm_config.md) |
推荐模型: 追求更高质量可选用 `Claude-3.5-sonnet` 或 `gpt-4o`
### 2. 本地 Whisper 语音识别配置(需软件内下载)
| 模型 | 磁盘空间 | 内存占用 | 说明 |
|------|----------|----------|------|
| Tiny | 75 MiB | ~273 MB | 转录很一般,仅用于测试 |
| Small | 466 MiB | ~852 MB | 英文识别效果已经不错 |
| Medium | 1.5 GiB | ~2.1 GB | 中文识别建议至少使用此版本 |
| Large-v1/v2 | 2.9 GiB | ~3.9 GB | 效果好 |
| Large-v3 | 2.9 GiB | ~3.9 GB | 社区反馈可能会出现幻觉/字幕重复问题 |
注:以上模型国内网络可直接在软件内下载;支持GPU也支持核显调用。
### 3. 文稿匹配
- 在"字幕优化与翻译"页面,包含"文稿匹配"选项,支持以下**一种或者多种**内容,辅助校正字幕和翻译:
| 类型 | 说明 | 填写示例 |
|------|------|------|
| 术语表 | 专业术语、人名、特定词语的修正对照表 | 机器学习->Machine Learning
马斯克->Elon Musk
打call -> 应援
图灵斑图
公交车悖论 |
| 原字幕文稿 | 视频的原有文稿或相关内容 | 完整的演讲稿、课程讲义等 |
| 修正要求 | 内容相关的具体修正要求 | 统一人称代词、规范专业术语等
填写**内容相关**的要求即可 |
- 全流程处理时,请先填写文稿信息,再进行开始任务处理
- 不需要提供文稿信息,也可以正常处理
- 注意: 使用上下文参数量不高的小型LLM模型时,建议控制文稿内容在1千字以内
### 4. 语音识别接口说明
| 接口名称 | 支持语言 | 运行方式 | 说明 |
|---------|---------|---------|------|
| B站接口 | 仅支持中文、英文 | 在线 | 免费、速度较快 |
| J接口 | 仅支持中文、英文 | 在线 | 免费、速度较快 |
| Whisper | 中文、日语韩语、英文等 96 种语言 | 本地 | 需要下载转录模型
中文建议medium以上模型
英文等使用较小模型即可达到不错效果。 |
## 💡 软件流程介绍
程序简单的处理流程如下:
```
语音识别 -> 字幕断句 -> 字幕优化翻译(可选) -> 字幕视频合成
```
安装软件的主要目录结构说明如下:
```
VideoCaptioner/
├── runtime/ # 运行环境目录(不用更改)
├── resources/ # 软件资源文件目录(界面、图标等,不用更改)
├── work-dir/ # 工作目录,处理完成的视频和字幕文件保存在这里
├── AppData/ # 应用数据目录
├── cache/ # 缓存目录,临时数据
├── models/ # 存放 Whisper 模型文件
├── logs/ # 日志目录,记录软件运行状态
├── settings.json # 存储用户设置
└── cookies.txt # 视频平台的 cookie 信息,用于下载需要登录的视频
└── VideoCaptioner.exe # 主程序执行文件
```
## 📝 说明
1. 字幕断句的质量对观看体验至关重要。为此我开发了 [SubtitleSpliter](https://github.com/WEIFENG2333/SubtitleSpliter),它能将逐字字幕智能重组为符合自然语言习惯的段落,并与视频画面完美同步。
2. 在处理过程中,仅向大语言模型发送纯文本内容,不包含时间轴信息,这大大降低了处理开销。
3. 在翻译环节,我们采用吴恩达提出的"翻译-反思-翻译"方法论。这种迭代优化的方式不仅确保了翻译的准确性。
## 🤝 贡献指南
作者是一名大三学生,个人能力和项目都还有许多不足,项目也在不断完善中,如果在使用过程遇到的Bug,欢迎提交 [Issue](https://github.com/WEIFENG2333/VideoCaptioner/issues) 和 Pull Request 帮助改进项目。
## 更新日志
2024.11.23
- 新增 Whisper-v3 模型支持,大幅提升语音识别准确率
- 优化字幕断句算法,提供更自然的阅读体验
- 修复检测模型可用性时的稳定性问题
2024.11.20
- 支持自定义调节字幕位置和样式
- 新增字幕优化和翻译过程的实时日志查看
- 修复使用 API 时的自动翻译问题
- 优化视频工作目录结构,提升文件管理效率
2024.11.17
- 支持双语/单语字幕灵活导出
- 新增文稿匹配提示对齐功能
- 修复字幕导入时的稳定性问题
- 修复非中文路径下载模型的兼容性问题
2024.11.13
- 新增 Whisper API 调用支持
- 支持导入 cookie.txt 下载各大视频平台资源
- 字幕文件名自动与视频保持一致
- 软件主页新增运行日志实时查看
- 统一和完善软件内部功能
## ⭐ Star History
[](https://star-history.com/#WEIFENG2333/VideoCaptioner&Date)