Skip to main content

视频英文字幕翻译为中文字幕工具

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 最高

建议:

  • 快速预览:使用 tinybase
  • 正式使用:使用 smallmedium
  • 最高质量:使用 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 - 带字幕的视频(如果选择嵌入)

⚠️ 注意事项

  1. 首次运行会自动下载 Whisper 模型,请确保网络畅通
  2. 硬字幕会重新编码视频,耗时较长
  3. 软字幕只复制流,速度快但某些播放器可能不支持
  4. 确保系统已安装 FFmpeg
  5. 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

video_translate-1.0.0-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

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

Hashes for video_translate-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8f38f82f15779ec4f5bd4be2c2cceda0eb678c297afc6822a9ac0672f0fe4e08
MD5 3594d1c3b423a8064d3931fa850406a9
BLAKE2b-256 ca4b180be0e519f499dabf1995d34725e6d1045a8f6be0f43e4b0dab1cae7976

See more details on using hashes here.

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

Hashes for video_translate-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a39c314f4d9286c0dc82db5d081f3eb30a6a0bdbf02cc1c67c7a792b4c9ca8eb
MD5 0ddb83f2f9a60f539186ba57cf446783
BLAKE2b-256 aad0686e2f854123ceba84ee002a2d4a0c7bf39dc829ea05bca5c6609082d869

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page