ChatGPT API SRT 字幕翻译器
该字幕翻译器不仅能够处理常见语言,还能够处理表情符号和序等非常规写作形式。然而,它可能并不总是产生确定性的输出并遵守线对线相关性,即使被指示遵循精确的指令并将模型参数设置为 ,也可能会扰乱字幕的时间。temperature
的情况下实现任意长度的翻译,同时确保行输入和输出之间的一对一匹配。
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
-
克隆此存储库并导航到该目录
git clone https://github.com/Cerlancism/chatgpt-subtitle-translator && cd chatgpt-subtitle-translator
-
安装要求
npm install
-
授予可执行权限
chmod +x cli/translator.mjs
-
复制到
.example.env
.env
cp .env.example .env
-
将您的 添加到新创建的文件中
.env
命令行界面
cli/translator.mjs --help
Usage: translator [options] Translation tool based on ChatGPT API
选项:
-
--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-temperature0.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