Skip to content

samyunwei/subtitle_agent

Repository files navigation

字幕优化与翻译工具

这是一个基于大型语言模型的字幕优化与翻译工具,专为处理机器翻译生成的不连贯字幕而设计。该工具利用 LangGraph 和 LangChain 构建高效翻译 Agent,提供准确、自然的翻译结果,同时优化字幕的连贯性和可读性。

功能特点

  • 字幕优化:修正翻译错误,删除重复内容,提高字幕流畅度
  • 多语言翻译:支持将字幕翻译为中文、英文、日文、韩文等多种语言
  • 批量处理:支持批量处理大量字幕,提高效率
  • 双重界面:提供命令行界面和友好的Web界面,满足不同用户需求
  • 进度反馈:实时显示处理进度,方便跟踪任务完成情况
  • 灵活配置:支持自定义语言模型、API密钥和处理参数

安装依赖

安装必要的库

pip install langgraph langchain-openai langchain-core pyyaml srt tqdm gradio numpy

配置

confs/config.yaml 文件中配置 API 密钥和翻译设置:

llms:
 - name: "openai"
   key: "your_openai_api_key"
   model: "gpt-4o"
   base_url: "https://api.openai.com/v1"
   
 - name: "local_llama"
   key: "1111"
   model: "llama3"
   base_url: "http://127.0.0.1:11434/v1"

translate:
 model: "openai"
 source_language: "en"
 target_language: "zh"

subtitles:
 model: "openai"
 source_language: "en"
 target_language: "zh"

使用方法

命令行界面

使用命令行处理字幕文件:

python cli_subitile.py input.srt -o output.srt -t 中文 --batch_size 10 --delay 1.0

参数说明:

  • input_file:输入SRT文件路径(必需)
  • -o, --output:输出SRT文件路径(可选,默认将在输入文件名后添加后缀)
  • -t, --translate:目标语言,如"中文"、"英文"等(默认为"中文")
  • --api_key:API密钥(可选,覆盖配置文件)
  • --base_url:API基础URL(可选,覆盖配置文件)
  • --model:使用的模型名称(可选,覆盖配置文件)
  • --batch_size:批处理大小(默认:10)
  • --delay:请求之间的延迟时间(秒)(默认:1.0)

Web界面

启动Web界面:

python web-ui.py

Web界面提供以下功能:

  • 上传字幕文件(SRT格式)
  • 选择目标语言
  • 设置批处理大小和请求延迟
  • 实时查看处理结果
  • 下载处理后的文件

在Python代码中使用

from subtitle_agent import SubtitleProcessingAgent

# 创建字幕处理代理
agent = SubtitleProcessingAgent(batch_size=10, request_delay=1.0)

# 处理字幕文件
agent.process_srt_file("input.srt", "output.srt", target_language="中文")

# 或者直接处理字幕内容
with open("input.srt", "r", encoding="utf-8") as f:
    srt_content = f.read()

processed_content = agent.process_srt(
    srt_content, 
    target_language="中文", 
    remove_repetitions=True
)

# 保存处理结果
with open("output.srt", "w", encoding="utf-8") as f:
    f.write(processed_content)

项目结构

字幕优化与翻译工具/
│
├── subtitle_agent.py      # 核心字幕处理代理实现
├── cli_subitile.py        # 命令行界面
├── web-ui.py              # Web界面
├── config.py              # 配置管理(未显示在代码中)
│
├── confs/
│   └── config.yaml        # 配置文件
│
└── README.md              # 项目文档

功能说明

字幕优化

  • 修正明显的翻译错误和语义不通顺的地方
  • 删除重复的字幕条目和内容
  • 保持字幕的自然流畅性
  • 确保每条字幕的长度适中,便于阅读

字幕翻译

  • 将字幕从源语言翻译为目标语言
  • 保持原始的字幕时间码和格式
  • 准确传达原文含义,同时符合目标语言的表达习惯

常见问题排查

API密钥问题

如果遇到API密钥相关错误,请检查:

  • 确保在config.yaml文件中正确设置了API密钥
  • 检查API密钥是否有效且未过期
  • 确保网络连接正常

翻译质量问题

如果翻译质量不理想:

  • 尝试使用更强大的模型(如从GPT-3.5切换到GPT-4)
  • 减小批处理大小,让模型更专注于每个字幕段落

性能问题

如果处理速度慢:

  • 增加批处理大小
  • 减少请求延迟(注意可能会触发API限制)
  • 考虑使用本地部署的语言模型

About

基于LLM的字幕工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages