视频英文字幕翻译为中文字幕工具
Project description
🎬 视频字幕翻译工具
将视频自动识别语音、翻译成目标语言,并生成字幕文件或嵌入视频。支持 18 种语言互译。
✨ 功能特点
- 🎤 语音识别: 使用 OpenAI Whisper 进行高精度语音识别
- 🌐 多语言翻译: 支持 18 种语言互译(中、英、日、韩、法、德、西等)
- 🤖 多引擎支持: 支持 DeepSeek、OpenAI 等翻译引擎
- 📄 字幕生成: 支持 SRT、VTT、ASS 等多种字幕格式
- 🎥 字幕嵌入: 支持软字幕和硬字幕两种方式
- 🌍 双语字幕: 可选择生成双语字幕
- 💰 性价比高: DeepSeek API 价格实惠,翻译质量优秀
- 🏗️ 模块化设计: 易于扩展和维护
🌍 支持的语言
| 代码 | 语言 | 代码 | 语言 |
|---|---|---|---|
zh |
中文 | en |
English |
ja |
日本語 | ko |
한국어 |
fr |
Français | de |
Deutsch |
es |
Español | ru |
Русский |
pt |
Português | it |
Italiano |
nl |
Nederlands | pl |
Polski |
tr |
Türkçe | ar |
العربية |
hi |
हिन्दी | th |
ไทย |
vi |
Tiếng Việt | id |
Bahasa Indonesia |
使用 video-translate --list-languages 查看完整列表。
📁 项目结构
video-translate/
├── src/
│ └── video_translate/
│ ├── __init__.py # 包初始化
│ ├── __main__.py # 入口点
│ ├── cli.py # 命令行接口
│ ├── config.py # 配置管理
│ ├── models.py # 数据模型
│ ├── transcriber.py # 语音识别模块
│ ├── translator.py # 翻译模块
│ ├── subtitle.py # 字幕处理模块
│ ├── video.py # 视频处理模块
│ ├── pipeline.py # 处理流水线
│ └── utils.py # 工具函数
├── pyproject.toml # 项目配置
├── requirements.txt # 依赖列表
├── LICENSE # MIT 许可证
├── .gitignore # Git 忽略文件
└── README.md
📦 安装
1. 安装 uv(推荐)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. 克隆项目
git clone https://github.com/yourusername/video-translate.git
cd video-translate
3. 安装依赖
# 使用 uv 安装(推荐)
uv sync
# 安装包含开发依赖
uv sync --dev
# 或者使用 pip
pip install -e .
5. 安装 FFmpeg
macOS:
brew install ffmpeg
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
Windows: 下载并安装 FFmpeg
6. 设置 API Key
前往 DeepSeek 开放平台 注册并获取 API Key
export DEEPSEEK_API_KEY='your-api-key-here'
或者使用 OpenAI:
export OPENAI_API_KEY='your-api-key-here'
🚀 使用方法
命令行使用
# 基本用法(英文 → 中文)
video-translate video.mp4
# 或者使用 python -m
python -m video_translate video.mp4
多语言翻译示例
# 英文 → 中文(默认)
video-translate video.mp4
# 日语 → 中文
video-translate video.mp4 --source ja --target zh
# 英文 → 日语
video-translate video.mp4 --source en --target ja
# 中文 → 英文
video-translate video.mp4 --source zh --target en
# 韩语 → 日语
video-translate video.mp4 --source ko --target ja
# 法语 → 德语
video-translate video.mp4 --source fr --target de
命令行选项
| 选项 | 说明 |
|---|---|
-s, --source |
源语言代码 (默认: en) |
-t, --target |
目标语言代码 (默认: zh) |
--list-languages |
列出所有支持的语言 |
-o, --output |
指定输出目录 |
-m, --model |
Whisper 模型大小 (tiny/base/small/medium/large) |
--translator |
翻译引擎 (deepseek/openai) |
--api-key |
翻译 API Key |
--target-only |
只输出目标语言字幕,不含原文 |
--source-first |
源语言在上,目标语言在下 |
--no-embed |
不嵌入字幕到视频,只生成字幕文件 |
--hard-sub |
使用硬字幕(烧录到视频中) |
--font-size |
硬字幕字体大小 (默认: 24) |
更多示例
# 使用更大的模型提高识别准确度
video-translate video.mp4 --model large
# 只生成字幕文件,不嵌入视频
video-translate video.mp4 --no-embed
# 生成硬字幕(烧录到视频中)
video-translate video.mp4 --hard-sub
# 只输出目标语言字幕
video-translate video.mp4 --target-only
# 使用 OpenAI 翻译
video-translate video.mp4 --translator openai
# 指定输出目录
video-translate video.mp4 -o ./output
作为库使用
from video_translate import (
Config,
TranscriberConfig,
TranslatorConfig,
TranslationPipeline,
WhisperModel,
TranslatorType,
Language,
)
# 创建配置 - 日语翻译成中文
config = Config(
transcriber=TranscriberConfig(
model=WhisperModel.BASE,
language="ja" # 源语言
),
translator=TranslatorConfig(
type=TranslatorType.DEEPSEEK,
api_key="your-api-key",
source_language=Language.JAPANESE,
target_language=Language.CHINESE,
),
)
# 创建处理流水线
pipeline = TranslationPipeline(config)
# 处理视频
result = pipeline.process("video.mp4")
print(f"字幕文件: {result['subtitle_file']}")
print(f"输出视频: {result['output_video']}")
🤖 Whisper 模型选择
| 模型 | 大小 | 显存需求 | 速度 | 准确度 |
|---|---|---|---|---|
| tiny | 39M | ~1GB | 最快 | 较低 |
| base | 74M | ~1GB | 快 | 中等 |
| small | 244M | ~2GB | 中等 | 较高 |
| medium | 769M | ~5GB | 较慢 | 高 |
| large | 1550M | ~10GB | 慢 | 最高 |
建议:
- 快速预览:使用
tiny或base - 正式使用:使用
small或medium - 最高质量:使用
large
🔌 扩展翻译引擎
项目采用模块化设计,可以轻松添加新的翻译引擎:
from video_translate.translator import BaseTranslator
class MyTranslator(BaseTranslator):
@property
def name(self) -> str:
return "MyTranslator"
def translate_text(self, text: str, context: str = "") -> str:
# 实现翻译逻辑
pass
def translate_batch(self, texts: list[str]) -> list[str]:
# 实现批量翻译逻辑
pass
📁 输出文件
视频名_{语言代码}.srt- 字幕文件(如video_zh.srt,video_ja.srt)视频名_{语言代码}.mp4- 带字幕的视频(如果选择嵌入)
⚠️ 注意事项
- 首次运行会自动下载 Whisper 模型,请确保网络畅通
- 硬字幕会重新编码视频,耗时较长
- 软字幕只复制流,速度快但某些播放器可能不支持
- 确保系统已安装 FFmpeg
- Apple Silicon Mac 会自动使用 MPS 加速
🛠️ 开发
# 安装开发依赖
uv sync --dev
# 运行测试
uv run pytest
# 代码格式化
uv run black src/
# 代码检查
uv run ruff check src/
# 类型检查
uv run mypy src/
📄 License
本项目采用 MIT License 开源许可证。
Copyright (c) 2026 innovationmech
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
video_translate-1.0.0.tar.gz
(18.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file video_translate-1.0.0.tar.gz.
File metadata
- Download URL: video_translate-1.0.0.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f38f82f15779ec4f5bd4be2c2cceda0eb678c297afc6822a9ac0672f0fe4e08
|
|
| MD5 |
3594d1c3b423a8064d3931fa850406a9
|
|
| BLAKE2b-256 |
ca4b180be0e519f499dabf1995d34725e6d1045a8f6be0f43e4b0dab1cae7976
|
File details
Details for the file video_translate-1.0.0-py3-none-any.whl.
File metadata
- Download URL: video_translate-1.0.0-py3-none-any.whl
- Upload date:
- Size: 24.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a39c314f4d9286c0dc82db5d081f3eb30a6a0bdbf02cc1c67c7a792b4c9ca8eb
|
|
| MD5 |
0ddb83f2f9a60f539186ba57cf446783
|
|
| BLAKE2b-256 |
aad0686e2f854123ceba84ee002a2d4a0c7bf39dc829ea05bca5c6609082d869
|