Files
MoviePilot-Plugins/plugins/autosubv2/README.md
TimoYoung b942cf7cf5 v2.3
2025-06-06 17:20:28 +08:00

129 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI字幕自动生成(v2)
自动生成视频字幕,并使用大模型将字幕翻译成中文。
基于 [autosub](https://github.com/lightolly/MoviePilot-Plugins) 修改并适配v2感谢原作者
## 功能特点
- 支持从视频音轨中提取字幕使用faster-whisper
- 支持从视频内嵌字幕中提取字幕
- 支持从外挂字幕文件中提取字幕
- 支持使用大模型OpenAI将字幕翻译成中文
- 支持批量翻译以提高效率
- 支持使用滑动窗口配置上下文提高翻译连贯性
- 支持多种字幕提取语言偏好设置
- 支持监听媒体入库事件自动执行字幕生成
- 支持手动触发字幕生成任务
- 支持任务队列机制,确保并发安全
- 支持任务状态列表展示(等待中 / 进行中 / 已完成 / 失败)
## 配置说明
### 基础配置
| 配置项 | 说明 | 默认值 |
|----------|------------------------|--------|
| 启用插件 | 是否启用插件 | 否 |
| 清除历史记录 | 清除已完成的任务记录(完成、跳过或失败) | 否 |
| 媒体入库自动执行 | 监听到媒体入库事件后自动执行字幕生成 | 是 |
| 手动执行一次 | 保存配置后立即执行一次任务 | 否 |
| 发送通知 | 是否发送任务执行通知 | 否 |
| 文件大小MB | 最小处理的视频文件大小,小于该值的文件不处理 | 10 |
| 字幕源语言偏好 | 设置字幕提取的优先级策略 | 优先原音字幕 |
| 翻译为中文 | 是否使用大模型将字幕翻译成中文 | 是 |
### ASR配置语音识别
| 配置项 | 说明 | 默认值 |
|---------------------|------------------|------|
| 允许从音轨提取字幕 | 是否允许从视频音轨中提取字幕 | 是 |
| faster-whisper 模型选择 | 使用的 Whisper 模型大小 | base |
| 使用代理下载模型 | 是否使用代理下载模型 | 是 |
### 翻译接口配置
> 可选使用 ChatGPT 插件配置 或 自定义 OpenAI 接口参数
| 配置项 | 说明 | 默认值 |
|------------------|--------------------------------------|-------------------------|
| 复用ChatGPT插件配置 | 是否直接使用系统中已配置的 ChatGPT 插件参数 | 否 |
| 使用代理服务器 | 是否通过 MP 配置的代理访问 OpenAI 接口 | 否 |
| 兼容模式 | 是否启用兼容模式(绕过 `/v1` 路径拼接) | 否 |
| OpenAI API URL | 自定义 OpenAI 接口地址 | https://api.openai.com |
| API 密钥 | OpenAI 的 API Key | 无 |
| 自定义模型 | 使用的 LLM 模型名称(如 gpt-3.5-turbo | gpt-3.5-turbo |
### 翻译参数配置
| 配置项 | 说明 | 默认值 |
|---------------|------------------------------------|-----|
| 启用批量翻译 | 是否启用批量翻译以提高效率 | 是 |
| 每批翻译行数 | 每批处理的字幕行数 | 10 |
| 上下文窗口大小 | 翻译时考虑的上下文行数 | 5 |
| LLM请求重试次数 | 翻译失败时的重试次数 | 3 |
| 翻译英文时合并整句 | 对英文字幕先合并单词再翻译,提升翻译质量 | 否 |
### 手动运行配置
| 配置项 | 说明 | 默认值 |
|------|-----------------------|-----|
| 媒体路径 | 要处理的媒体文件或文件夹绝对路径,每行一个 | 空 |
## 字幕提取策略说明
字幕提取优先级:外挂字幕 > 内嵌字幕 > 音轨识别
字幕提取策略的选择主要取决于视频源语言和大模型的翻译能力。对于包含多语言字幕的非英语视频,建议根据以下原则选择策略:
1. 仅英文字幕
- 仅使用英文字幕作为翻译源
- 当视频无英文字幕时使用ASR提取
- 适用于大模型仅支持中英互译的场景
2. 优先英文字幕
- 优先使用英文字幕作为翻译源
- 无英文字幕时,使用其他语言字幕
- 当所有字幕都不存在时使用ASR提取
- 适用于大模型在英译中任务上表现更好的场景
3. 优先原音字幕
- 优先使用视频原始语言的字幕
- 无原音字幕时,使用英文字幕
- 当所有字幕都不存在时使用ASR提取
- 适用于大模型支持多语言翻译且翻译质量较好的场景
## 翻译方式说明
插件支持两种方式调用大模型进行翻译:
1. **复用 ChatGPT 插件配置**
- 开启“复用ChatGPT插件配置”后自动使用系统中维护的 ChatGPT 插件参数
- 包括 API Key、API URL、是否使用代理等
- 适合已有 ChatGPT 插件的用户快速部署
2. **自定义 OpenAI 接口参数**
- 关闭“复用ChatGPT插件配置”后可独立配置
- API 地址(支持反代)
- API Key
- 使用的模型
- 是否使用代理
- 是否启用兼容模式(避免 `/v1` 路径冲突)
---
## 注意事项
1. 翻译功能依赖大模型配置,使用前请确保已正确配置 OpenAI Key 或 ChatGPT 插件。
2. 首次使用音轨识别功能时,会自动从 HuggingFace 下载模型。开启"使用代理下载模型"选项会使用 MP 配置的代理。
3. 媒体路径支持单个文件或文件夹的绝对路径。选择文件夹时会递归处理其中的所有视频文件,外挂字幕将从媒体文件同级目录中查找。
4. 批量翻译通过一次处理多行字幕来减少 API 调用次数,提高效率。如果翻译结果与原文行数不匹配,系统会自动降级为逐行翻译。
5. 上下文窗口大小和批量翻译行数需要根据大模型的推理能力来调整。当模型能力不足时,过大的批量或上下文窗口可能会影响翻译质量。
6. 翻译后的中文字幕会打上“机翻”标签。
7. 插件运行时会启动一个后台线程用于消费任务队列,插件关闭时会清空队列并终止当前任务。
## todo
- 工作流/API接口
- 任务完成后调用媒体库刷新