An open API service indexing awesome lists of open source software.

https://github.com/bushkarl/videoprocessor

智能视频处理系统
https://github.com/bushkarl/videoprocessor

Last synced: 3 months ago
JSON representation

智能视频处理系统

Awesome Lists containing this project

README

        

# 智能视频处理系统

## 项目简介
本项目是一个自动化视频处理系统,能够实现视频音频提取、语音识别、字幕生成、多语言翻译、语音合成以及音视频合成等功能。系统采用模块化设计,支持单步或多步处理,方便用户根据需求灵活使用。

## 功能特性

### 1. 音频处理
- 从视频中提取音频
- 支持多种音频格式
- 自动调整采样率和声道
- 音频质量优化

### 2. 字幕生成
- 使用 Whisper 进行语音识别
- 自动生成带时间戳的字幕
- 支持多种语言识别
- 字幕格式标准化

### 3. 翻译功能
- 支持多语言翻译
- 使用 Azure Translator API
- 保持字幕时间轴对齐
- 翻译质量优化

### 4. 语音合成
- 使用 Edge TTS 进行语音合成
- 智能语速调整
- 多语言语音支持
- 自然的语音效果

### 5. 视频合成
- 视频字幕嵌入
- 音视频同步
- 支持多种视频格式
- 视频质量保持

## 安装说明

### 环境要求
- Python 3.8+
- FFmpeg
- Edge TTS
- Azure Translator API 密钥

### 安装步骤
```bash
# 1. 克隆项目
git clone https://github.com/bushkarl/video-processor.git
cd video-processor

# 2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows

# 3. 安装依赖
pip3 install -r requirements.txt

# 4. 配置环境变量
brew install ffmpeg # Linux/Mac
choco install ffmpeg # Windows
```

## 使用方法

### 1. 单步处理

```bash
# 提取音频
./run.sh input.mp4 --steps extract_audio

# 生成字幕
./run.sh input.mp4 --steps generate_srt

# 翻译字幕
./run.sh input.mp4 --steps translate

# 生成配音
./run.sh input.mp4 --steps tts

# 移除原字幕
./run.sh input.mp4 --steps remove_subs

# 合成视频
./run.sh input.mp4 --steps compose
```

### 2. 多步处理

```bash
# 提取音频并生成字幕
./run.sh input.mp4 --steps extract_audio generate_srt

# 翻译并生成配音
./run.sh input.mp4 --steps translate tts

# 完整处理流程
./run.sh input.mp4 --steps all
```

### 3. 输出文件
每个步骤会生成对应的输出文件:
- `*_audio.wav`: 提取的音频文件
- `*_original.srt`: 原始字幕文件
- `*_translated.srt`: 翻译后的字幕文件
- `*_dubbed.wav`: 合成的配音文件
- `*_no_subs.mp4`: 移除字幕后的视频
- `*_final.mp4`: 最终合成的视频

### 4. 可选参数
- `-o, --output`: 指定输出文件路径
- `--remove-subs`: 移除原始字幕
- `--keep-temp`: 保留中间文件
- `--voice`: 指定语音 (例如: xiaoxiao, yunxi, jenny 等)
- `--speed`: 视频速度因子 (0.5-2.0, 默认1.0)
- `--save-srt`: 保存原始和翻译后的字幕文件

### 可用语音选项
- 中文女声:
- xiaoxiao: 晓晓(默认)
- xiaoyi: 晓伊
- xiaoxuan: 晓萱
- xiaozhen: 晓甄
- 中文男声:
- yunxi: 云希
- yunxia: 云夏
- yunyang: 云扬
- 英文语音:
- jenny: Jenny (女声)
- aria: Aria (女声)
- guy: Guy (男声)
- 日语语音:
- nanami: Nanami (女声)
- keita: Keita (男声)
- 韩语语音:
- sunhi: SunHi (女声)
- inpyo: InPyo (男声)

使用示例:
```bash
# 使用云希语音
./run.sh input.mp4 --voice yunxi

# 使用晓伊语音
./run.sh input.mp4 --voice xiaoyi
```

## 注意事项
1. 确保已正确安装 FFmpeg
2. 配置 Azure Translator API 密钥
3. 保持网络连接稳定
4. 建议使用高质量的输入视频
5. 处理大文件时注意磁盘空间

## 常见问题
1. FFmpeg 相关错误
2. 网络连接问题
3. 内存使用问题
4. 临时文件清理
5. 字幕同步问题

## 开发计划
- [ ] 支持更多视频格式
- [ ] 优化语音识别准确度
- [ ] 添加批量处理功能
- [ ] 改进字幕样式定制
- [ ] 提供 Web 界面

## 贡献指南
欢迎提交 Issue 和 Pull Request

## 许可证
MIT License