&lt;?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>机翻 on Yuko's Blog</title><link>https://blog.amamiyayuuko.com/tags/%E6%9C%BA%E7%BF%BB/</link><description>Recent content in 机翻 on Yuko's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><atom:link href="https://blog.amamiyayuuko.com/tags/%E6%9C%BA%E7%BF%BB/index.xml" rel="self" type="application/rss+xml"/><item><title>用Chatgpt机翻整本哲学书，然后超越蓝江</title><link>https://blog.amamiyayuuko.com/p/use-chatgpt-for-translation/</link><pubDate>Tue, 28 Mar 2023 21:20:00 +0800</pubDate><guid>https://blog.amamiyayuuko.com/p/use-chatgpt-for-translation/</guid><description>&lt;p&gt;Chatgpt被开发出来许多奇奇怪怪的用途。&lt;a href="https://www.iplaysoft.com/chatgpt-api-tools.html"&gt;异次元软件&lt;/a&gt;那边收集了一堆基于其API的第三方程序，&lt;a href="https://www.appinn.com/tag/chatgpt/"&gt;小众软件&lt;/a&gt;那边也收集了许多。我这里是找到一个叫做 &lt;code&gt;bilingual_book_maker&lt;/code&gt; 的python程序，能调用openai API机翻整本外文书生成双语的epub，但是因为这个东西是python程序，要用命令行去调用，等作者做成exe又遥遥无期，用起来比较困难，所以我写个教程来简单地使用这个工具。&lt;/p&gt;
&lt;p&gt;在进入这篇教程之前，首先我要列出一张清单，确认你有这些东西：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;有待翻译的外文书，txt或者epub都行，但是不可以是pdf&lt;/li&gt;
&lt;li&gt;github账号&lt;/li&gt;
&lt;li&gt;git客户端，可以是命令行，但如果你是小白我推荐用&lt;a href="https://desktop.github.com"&gt;github desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;文本编辑器，理论上来说windows自带的记事本也可以，但是还是推荐你用VSCode、Sublime Text之类的&lt;/li&gt;
&lt;li&gt;已经绑卡的openai账号&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果这些你都有了，那我们可以进入正文。&lt;/p&gt;
&lt;p&gt;如果没有，那请直接从网页右侧的目录跳转到文章最后一节，那是一个简化方案。&lt;/p&gt;
&lt;p&gt;如果你有openai账号，但是觉得我这个路子又是搞github又是修改配置文件特别麻烦，那可以跳到这篇文章的倒数第二章，那个方法省事，就已经封装成一个程序了。&lt;/p&gt;
&lt;h2 id="0首先你需要给openai账号绑定银行卡"&gt;0.首先你需要给openai账号绑定银行卡&lt;/h2&gt;
&lt;p&gt;这个虽然在前文的那个列表里也提到了，但是因为很麻烦，所以再提一嘴。网上给的教程基本都是用的depay的虚拟卡，我用的也是这个法子，但是我得先说一句，这个法子给的虚拟卡非常坑爹，如果你有条件还是最好找国外的哥们搞张卡，不然真的太坑了。&lt;/p&gt;
&lt;p&gt;使用depay虚拟卡绑定openai的流程如下&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;注册&lt;a href="https://depay.depay.one/web-app/register-h5?invitCode=715205&amp;amp;lang=zh-cn"&gt;dapay&lt;/a&gt;账号，这里可以使用我的邀请码&lt;code&gt;715205&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;给depay提交非常恶俗的个人信息之后，可以开一张虽然免费但是月费巨高的卡&lt;/li&gt;
&lt;li&gt;给depay充值虚拟币（没错，depay只能先充值虚拟币再兑换成美元）&lt;/li&gt;
&lt;li&gt;为了搞虚拟币，你还得注册一个虚拟币交易平台，比如说&lt;a href="https://www.ouyicn.cafe/join/85118482"&gt;欧易&lt;/a&gt;，这里你还可以使用我的邀请码&lt;code&gt;85118482&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在交易平台上面买USDT，&lt;strong&gt;等待24小时候后&lt;/strong&gt;把币冲到depay账户上，转换成USD再冲到卡里，在经过漫长的等待和N手抽手续费之后，终于实现卡的解锁&lt;/li&gt;
&lt;li&gt;最后在&lt;a href="https://platform.openai.com/account/billing/overview"&gt;openai的billing页面&lt;/a&gt;绑卡，这一步需要用浏览器的无痕模式，挂美国节点，然后账单地址随便填写一个美国的地址（我填了谷歌总部，但是可能填一个免税州地址更好一点）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样子你就得到了一个绑卡的openai账号。绑卡对于openai至关重要，因为不绑卡的账号api响应速度奇慢无比，基本没法实现翻译一本书的任务。&lt;/p&gt;
&lt;h2 id="1从人家的项目仓库里偷活"&gt;1.从人家的项目仓库里偷活&lt;/h2&gt;
&lt;p&gt;首先我们找到人家的&lt;a href="https://github.com/yihong0618/bilingual_book_maker"&gt;项目仓库地址&lt;/a&gt;，点击人家右上角的Fork按钮，进行一个活的偷。&lt;/p&gt;
&lt;p&gt;然后用github desktop这个工具把偷来的活拷贝到本地。准备工作完成。下一步就要开始编辑人家的文件了。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282150327.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282150411.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;h2 id="2设置api-key"&gt;2.设置API key&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282151064.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282152920.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;p&gt;我们先进网页，按照如图所示的步骤添加一个名为 &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; 的secret，内容则是在&lt;a href="https://platform.openai.com/account/api-keys"&gt;openai的API管理页面&lt;/a&gt;设置好的API。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282155330.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;h2 id="3放入需要翻译的文件编辑workflows文件"&gt;3.放入需要翻译的文件，编辑workflows文件&lt;/h2&gt;
&lt;p&gt;之前把人家的仓库偷活偷到了本地。现在要做的事情是&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;首先把人家的test_books文件夹删掉，这个是人家测试翻译是否正常用的文件夹，我们用不着&lt;/li&gt;
&lt;li&gt;把需要翻译的书放在根目录下，记下文件名。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;比如说我这个目录的文件结构就是&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;│ .dockerignore
│ .gitignore
│ disclaimer.md
│ Dockerfile
│ LICENSE
│ make_book.py
│ prompt_template_sample.json
│ prompt_template_sample.txt
│ README-CN.md
│ README.md
│ requirements.txt
│ setup.py
│ Sex_and_the_Failed_Absolute.epub
│ 
├─.github
│ └─workflows
│ make_test_ebook.yaml
│ 
└─book_maker
 │ cli.py
 │ obok.py
 │ utils.py
 │ __init__.py
 │ __main__.py
 │ 
 ├─loader
 │ base_loader.py
 │ epub_loader.py
 │ helper.py
 │ srt_loader.py
 │ txt_loader.py
 │ __init__.py
 │ 
 └─translator
 base_translator.py
 caiyun_translator.py
 chatgptapi_translator.py
 deepl_translator.py
 google_translator.py
 gpt3_translator.py
 __init__.py
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这里别的都不用在意，唯一需要注意的就是 &lt;code&gt;Sex_and_the_Failed_Absolute.epub&lt;/code&gt; ，这个是我打算要翻译的书，记下来文件名，等下用得着。&lt;/p&gt;
&lt;p&gt;然后找到 &lt;code&gt;\.github\workflows\make_test_ebook.yaml&lt;/code&gt; 这个目录下的这个文件，直接从&lt;a href="https://github.com/yuukoamamiya/bilingual_book_maker/blob/main/.github/workflows/make_test_ebook.yaml"&gt;我这个已经改好的文件&lt;/a&gt;依样画葫芦。代码不想看没关系，会改几个关键词就行。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt; name: translate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; run: &lt;span style="color:#f92672"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; python3 make_book&lt;span style="color:#f92672"&gt;.&lt;/span&gt;py &lt;span style="color:#f92672"&gt;--&lt;/span&gt;book_name &lt;span style="color:#e6db74"&gt;&amp;#34;Sex_and_the_Failed_Absolute.epub&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;--&lt;/span&gt;language zh&lt;span style="color:#f92672"&gt;-&lt;/span&gt;hans
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt; name: Rename &lt;span style="color:#f92672"&gt;and&lt;/span&gt; Upload ePub
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt;: env&lt;span style="color:#f92672"&gt;.&lt;/span&gt;OPENAI_API_KEY &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; null
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; uses: actions&lt;span style="color:#f92672"&gt;/&lt;/span&gt;upload&lt;span style="color:#f92672"&gt;-&lt;/span&gt;artifact&lt;span style="color:#a6e22e"&gt;@v2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; name: epub_output
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; path: &lt;span style="color:#e6db74"&gt;&amp;#34;Sex_and_the_Failed_Absolute_bilingual.epub&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里可以看到还提到了之前要翻译的那本书的名字，每次翻译不同的书都要改这个文件，改成和你要的那个文件相同。&lt;/p&gt;
&lt;p&gt;都改好了之后，在github desktop上把这些本地的修改推送到网上。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282206925.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;p&gt;那之后就可以去睡一觉，起来再看有没有翻译成功了。&lt;/p&gt;
&lt;h3 id="35为什么使用持续集成"&gt;3.5.为什么使用持续集成&lt;/h3&gt;
&lt;p&gt;顺便说一下这个的正经玩法是在本地用python跑，我因为搞不来本地的python运行环境所以是白嫖的微软服务器来跑这个。好处在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人家的服务器本来就在国外，不用担心openai被墙的问题&lt;/li&gt;
&lt;li&gt;本地跑这个程序需要python的运行环境，我弄不来&lt;/li&gt;
&lt;li&gt;本地跑这个程序需要一直开机，而这个可以睡前种菜第二天醒来收菜&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4翻译成功"&gt;4.翻译成功&lt;/h2&gt;
&lt;p&gt;如果报错了的话估计提前就给你发邮件了，如果第二天还没报错，那估计就是好的。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282210867.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;p&gt;可以用如图所示下载到翻译好的文件。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303282212797.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;p&gt;最后开始品鉴东欧郭楠又说了什么怪话。&lt;/p&gt;
&lt;h2 id="替代方案其一calibre插件-ebook-translator"&gt;替代方案其一：Calibre插件 Ebook Translator&lt;/h2&gt;
&lt;p&gt;这是&lt;a href="https://bookfere.com/post/1057.html"&gt;书伴&lt;/a&gt;做的一个工具，&lt;a href="https://github.com/bookfere/Ebook-Translator-Calibre-Plugin/releases"&gt;下载地址&lt;/a&gt;在此。&lt;/p&gt;
&lt;p&gt;相当简化了流程，填好api key设置好代理基本就是傻瓜式的了。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.amamiyayuuko.com/202303312132550.png" alt="" loading="lazy" decoding="async" /&gt;
&lt;/p&gt;
&lt;h2 id="6替代方案其二风声雨声"&gt;6.替代方案其二：风声雨声&lt;/h2&gt;
&lt;p&gt;我搞这个搞了超久才搞定，虽然这个流程已经简化过很多遍了，但是如果你还是嫌麻烦，可以用&lt;a href="https://fsys.app/invite/65BC5C"&gt;风声雨声&lt;/a&gt;这个人家已经搭建好的服务。记得用我的邀请码：&lt;code&gt;65BC5C&lt;/code&gt;。&lt;/p&gt;</description></item></channel></rss>