Skip to content

maoxig/nonebot-plugin-manga-translator

Repository files navigation

nonebot

nonebot-plugin-manga-translator

基于Nonebot2的图片/漫画翻译插件

nonebot license pypi python

💿安装

通过pipnb安装;

  • 使用nb: 在机器人目录下命令行使用 nb plugin install nonebot_plugin_manga_translator
  • 使用pip(不推荐): pip install nonebot_plugin_manga_translator 之后在机器人pyproject.toml里的plugins = []列表追加"nonebot_plugin_manga_translator"

📖简介

  1. 适配多种api,将收到的图片翻译并发送翻译后的图片,支持批量操作

  2. 本插件0.2.0版本开始基于nonebot-plugin-alconna插件,适配了多平台(不一定稳定,欢迎提issue或pr),之前的版本只支持onebot.v11适配器

⚙️插件配置

配置驱动器​

为了适配多平台,从0.2.0以及之后的版本插件需要“客户端型驱动器”(如 httpx)来下载图片等,驱动器安装和配置参考 NoneBot 选择驱动器

同时需要在 .env.* 配置文件中启用对应的驱动器,例如:

DRIVER=~fastapi+~httpx

获取API

请在机器人目录下的.env.*里填写以下选项(至少填一个平台的),获取方式已整理好,见下方

个人感觉就漫画翻译而言,这几家API的效果大致为有道>=百度≈离线>=火山,且火山翻译对竖版日文的翻译效果很差

配置项 类型 默认值 示例 说明 API定价
有道翻译API - - - - 新用户送一定额度,梯度收费,0<月调用量<100w时,0.04元/张
youdao_app_key str "" youdao_app_key="xxxxx" 应用ID
youdao_app_secret str "" youdao_app_secret="xxxxxx" 应用秘钥
百度翻译API - - - - 每月1万次免费调用量,之后按梯度收费,最高0.04元/次
baidu_app_id str "" baidu_app_id="66666" APP ID
baidu_app_key str "" baidu_app_key="xxxxxx" 密钥
火山翻译API - - - - 每月前100张免费,之后0.04元/张
huoshan_access_key_id str "" huoshan_access_key_id="AK***" Access Key ID
huoshan_secret_access_key str "" huoshan_secret_access_key="UT**" Secret Access Key
离线翻译API - - - - 可能是电费?
offline_url str "" offline_url="http://127.0.0.1:5003" 见下方说明
其他翻译API(待更新) - - - -

🔑API获取

有道翻译
  1. 有道智云AI开放平台注册并登录后,进入控制台
  2. 在左侧自然语言翻译服务里的图片翻译里创建应用,选择服务和接入方式分别为图片翻译API,其他项随意。 Image text
  3. 创建后将应用ID应用秘钥按照上面的配置说明分别填入.env.*文件里即可
百度翻译
  1. 百度翻译开放平台注册并登录
  2. 找到产品服务图片翻译,申请创建
  3. 创建后在管理控制台总览中找到APP ID密钥,根据上面的配置说明填入.env.*文件
火山翻译
  1. 根据火山引擎的文档,按流程注册
  2. 创建好服务后获取到密钥,分别为Access Key IDSecret Access Key,然后点击Secret Access Key下的按钮显示出密钥
  3. 分别根据上面的配置说明填入.env.*文件
离线翻译 (该方案对设备配置要求较高,建议在有足够的硬盘空间、内存、显存,或有一台能为bot处理请求的服务器时考虑使用该方案)
  1. 参考manga-image-translator的说明,克隆仓库,并安装相关依赖(可能需要额外安装pydensecrf)

  2. 安装好依赖后,在仓库目录下运行

    python -m manga_translator -v --mode web --use-cuda
    # the demo will be serving on http://127.0.0.1:5003,此时会提供一个网页,可以点击打开
  3. 如果你的设备没有成功安装cuda(要求pytorch的版本和cuda对应,不对应请重装),请去掉参数--use-cuda,如果图片处理过程中爆显存,请改成--use-cuda-limited

  4. 你可以访问控制台给出的网址,尝试先本地翻译一张图片,此时会根据选项下载需要的模型(为防止下载失败,也可以提前手动下载)

  5. 如果bot和翻译器在同一台设备,那么.env填写offline_url="http://127.0.0.1:5003"即可,如果不在同一台设备,你可能还需要放行防火墙、端口转发等,并且填写内容也会有所变化

  6. 最后你可能还需要修改一下本插件的代码,找到本插件utils.pyoffline函数,根据注释和文档,修改字典data,从而指定你想要的OCR模型和翻译模型(目前是用了offline模型,你可以改成别的)

🎉命令

  1. 图片翻译 [图片]:单张图片翻译,也可以先发送/图片翻译再发送图片,可以如下组合

    1. 文字+图片
    2. 先文字,后图片
    3. 文字回复图片
  2. 多图片翻译 [图片]:n张图片翻译,将会以合并转发消息(如果平台支持,否则则一张一张发出)的形式发出,可以如下组合

    1. 先文字,后多张图片
    2. 文字+图片*n
  3. 切换翻译api [api]: 将该api优先级提到最高,目前有youdao baidu huoshan offline

未完待续

⭐效果图

效果图1 效果图2 效果图3 效果图4

🌙更新日志

点击展开
  • 2024-04-23:

    • 更新版本,这个版本起开始基于nonebot-plugin-alconna插件支持多适配器多平台(可能有bug),同时更新nonebot2依赖至2.2.0以上
  • 2023-06-09:

    • 更新插件元数据
  • 2023-05-03:

    • 更新说明文档
    • 适配火山翻译api,你可以选择接入火山翻译提供的API
  • 2023-05-01:

    • 添加切换api的功能,你可以将某个api优先级设为最高
    • 适配离线翻译apimanga-image-translator,现在你可以体验本地的翻译
  • 2023-04-28:

    • 插件发布

🐦计划

  • 适配离线翻译模型manga-image-translator

  • 支持更多API

  • 多平台适配

  • 支持指定源语言和目标语言

  • 完善插件

✨喜欢的话就点个star✨吧,球球了QAQ

About

基于nonebot2的图片/漫画翻译插件,适配多种API,将图片翻译并返回图片

Resources

License

Stars

Watchers

Forks

Languages