ChatGPT API SRT 字幕翻译器
ChatGPT API SRT 字幕翻译器
noise介绍
该字幕翻译器不仅能够处理常见语言,还能够处理表情符号和单词乱序等非常规写作形式。然而,它可能并不总是产生确定性的输出并遵守线对线相关性,即使被指示遵循精确的指令并将模型参数设置为 0
,也可能会扰乱字幕的时间。temperature
该实用程序使用 OpenAI ChatGPT API 翻译文本,特别关注基于行的翻译,尤其是 SRT 字幕。转换器通过消除 SRT 开销、将文本分组到批次中来优化令牌的使用,从而在不过度消耗令牌的情况下实现任意长度的翻译,同时确保行输入和输出之间的一对一匹配。
Web界面:https://cerlancism.github.io/chatgpt-subtitle-translator
GitHub:https://github.com/Cerlancism/chatgpt-subtitle-translator
特征
- 正在进行的新工作:Web UI
- 基于行的批处理:避免每个请求的令牌限制,减少开销令牌浪费,在一定程度上保持翻译上下文
- 使用免费的 OpenAI 审核工具进行检查:如果模型极有可能拒绝翻译,则防止令牌浪费
- 流式处理进程输出
- 每分钟请求数 (RPM) 速率限制
- TODO:每分钟令牌数速率限制 (TPM)
- 进度恢复(仅限 CLI)- 缓解频繁的 API 网关错误和停机时间
- TODO:重试翻译部分
设置
参考资料: https://github.com/openai/openai-quickstart-node#setup
需要Node.js版本。本 README 假定 shell 环境
>= 16.13.0``bash
克隆此存储库并导航到该目录
1
git clone https://github.com/Cerlancism/chatgpt-subtitle-translator && cd chatgpt-subtitle-translator
安装要求
1
npm install
授予可执行权限
1
chmod +x cli/translator.mjs
复制到
1
.example.env
1
.env
1
cp .env.example .env
将您的 API 密钥添加到新创建的文件中
1
.env
命令行界面
1 | cli/translator.mjs --help |
1 | Usage: translator [options] |
选项:
--from <language>
源语言(默认:“”)--to <language>
目标语言(默认为“英语”)-i, --input <file>
输入包含此文件内容的源文本,格式为纯文本.srt
-o, --output <file>
输出文件名,默认基于输入文件名-p, --plain-text <text>
使用此纯文本参数输入源文本-s, --system-instruction <instruction>
使用此纯文本覆盖提示系统指令模板,忽略和选项Translate ${from} to ${to}``--from``--to
--initial-prompts <prompts>
JSON 翻译的初始提示(默认:"[]"
)--no-use-moderator
请勿使用 OpenAI API 审核端点--no-prefix-number
不要在行前面加上数字索引--no-line-matching
不要强制执行一对一的行数量输入输出匹配-l, --history-prompt-length <length>
为下一个请求批处理保留的提示历史记录长度(默认值:10)-b, --batch-sizes <sizes>
JSON Array 中翻译提示切片的递增顺序的批量大小(默认:"[10, 100]"
)每个翻译提示中要包含的行数,前提是它们估计在标记限制内。 如果输出行数量不匹配,该数字将根据数组中的值逐步减少,最终达到 1。
较大的批量大小通常会导致更高效的令牌利用率,并可能带来更好的上下文翻译。 但是,如果输出行数量不匹配或超过令牌限制,将导致令牌浪费,需要以较小的批处理大小重新提交。
ChatAPT 的其他选项:
-m, --model <model>
(默认值:)https://platform.openai.com/docs/api-reference/chat/create#chat/create-model`"gpt-4o-mini"`--stream
将进度输出流式传输到终端 https://platform.openai.com/docs/api-reference/chat/create#chat/create-stream-t, --temperature <temperature>
使用采样温度时,应设置一个较低的值,以便于翻译更具确定性(默认:) https://platform.openai.com/docs/api-reference/chat/create#chat/create-temperature`0.3``1`--top_p <top_p>
细胞核抽样参数,top_p概率质量 https://platform.openai.com/docs/api-reference/chat/create#chat/create-top_p--presence_penalty <presence_penalty>
根据新代币在文本中的存在对新代币的处罚 https://platform.openai.com/docs/api-reference/chat/create#chat/create-presence_penalty--frequency_penalty <frequency_penalty
根据新代币在文本中的频率对新代币的处罚 https://platform.openai.com/docs/api-reference/chat/create#chat/create-frequency_penalty--logit_bias <logit_bias>
修改指定标记在完成 https://platform.openai.com/docs/api-reference/chat/create#chat/create-logit_bias 中出现的可能性