/LightWeight_VNR

实现对Galgame文本的抓取与翻译功能

Primary LanguagePython

LightWeight_VNR


截图

  • 抓取界面 screenshot_01
  • 小窗口 screenshot_02

说明

  • 本项目可调用Textractor来抓取Galgame的游戏文本
  • 本项目可调用Tesseract-OCR来抓取文字,支持日文简体中文繁体中文英文
  • 本项目可调用JBeijing有道词典百度翻译来实现翻译功能
  • 本项目可调用YukariTamiyasuVOICEROID2等来实现文本阅读功能
  • 本项目可满足离线使用的需求

使用方法

游戏列表

  • 填好游戏名称(可不填)、程序目录启动方式特殊码(没有可不填)后添加即可
    • 程序目录启动方式必须填,游戏名称若为空,添加时将程序名作为游戏名称
    • 转区运行需在设置-游戏中设置Locale Emulator路径
  • 修改游戏信息后按添加即可修改信息
  • 选择一项游戏后按删除即可删除
  • 选择一项游戏后按启动游戏即可启动游戏,并自动启动Textractor注入dll

Textractor

  • 设置Textractor目录,确保目录下有TextractorCLI.exetexthook.dll
  • 点击启动TR,选择游戏进程,再Attach注入dll
    • 若从游戏列表中启动游戏,则无需进行此步骤
    • 游戏进程栏也可手动输入游戏进程的pid
  • 选择钩子固定
    • 钩子列表频繁刷新,可先暂停再选择并固定,之后再继续
    • 钩子过长导致看不到文本内容,可按住鼠标左键向右拖动
  • dll注入后,游戏进程不关,则再次打开程序只需启动TR并选择、固定钩子即可
  • 特殊码使用之前必须确保dll已注入,且特殊码格式必须正确

OCR

  • 设置Tesseract-OCR路径
    • 确保该路径下至少包含:
      展开查看
        
        ├── tessdata
        │   ├── chi_sim.traineddata
        │   ├── chi_sim_vert.traineddata
        │   ├── chi_tra.traineddata
        │   ├── chi_tra_vert.traineddata
        │   ├── eng.traineddata
        │   ├── jpn.traineddata
        │   └── jpn_vert.traineddata
        │
        ├── libgcc_s_seh-1.dll
        ├── libgif-7.dll
        ├── libgomp-1.dll
        ├── libjbig-2.dll
        ├── libjpeg-8.dll
        ├── liblept-5.dll
        ├── liblzma-5.dll
        ├── libopenjp2.dll
        ├── libpng16-16.dll
        ├── libstdc++-6.dll
        ├── libtesseract-5.dll
        ├── libtiff-5.dll
        ├── libwebp-7.dll
        ├── libwinpthread-1.dll
        ├── tesseract.exe
        └── zlib1.dll
        
        
  • 截取屏幕上的某一区域,用鼠标划定区域,划定完按Enter
    • 截取完会直接显示截图图片和文本
    • ESC键退出截取界面
  • 截取后按连续,则开始以某一间隔在同一位置进行连续识别
    • 结束则结束连续识别
  • 根据程序显示的图片效果,可以调整阈值化方式阈值,来减小背景的影响

翻译

JBeijing

  • JBeijing启用并保存即可

有道

  • 注意:有道调用的不是API,而是本地的有道词典程序(不可最小化
  • 设置好有道词典路径后,点击启动有道,并切换到词典翻译页面
  • 若本程序获取的翻译文本错位,可尝试增加翻译间隔
  • 可以取消抓取翻译,并将词典的翻译栏拖在游戏窗口下方

百度

  • 注意:百度翻译是在线翻译,需要使用百度账号免费申请api,流程如下:
  1. https://api.fanyi.baidu.com/进入百度翻译开放平台
  2. 按照指引完成api开通,只需要申请通用翻译API
  3. 完成申请后点击顶部管理控制台,在申请信息一栏可获取APP ID密钥
  • 启用百度翻译前需要填写APP ID密钥并且保存

语音

Yukari(VOICEROID+ 结月缘)

  • 设置好Yukari路径后,点击启动Yukari即可(可最小化
  • 连续阅读:连续阅读抓取文本,即抓取到新文本时读取新文本
    • 阅读内容:勾上的内容会读取,反之忽略
    • 判断依据:有(的为角色对话,反之为旁白

Tamiyasu(VOICEROID+ 民安ともえ)

  • 同上

VOICEROID2

  • 设置好VOICEROID2路径启用即可(不需要打开)
  • 可选择VOICEROID2已拥有的的角色阅读
    • 角色名字为VOICEROID2路径下的Voice文件夹内的各个子文件夹名称
  • 可调整各项参数,同VOICEROID2软件界面的下方

文本

  • 文本去重数:文本重复的次数
    • 类型(重复2次为例)
      • aabbcc -> abc
      • abcabc -> abc
    • 智能去重:根据句子自动判断重复次数并去重,勾上后文本去重数失效
  • 垃圾字符表:去除文本中含的垃圾字符垃圾字符空格分隔
  • 正则表达式:将正则表达式中的所有()部分连接,剩下的去除

浮动窗口

  • 打开浮动窗口,会隐藏主窗口,并显示设置中启用的条目,包括原文、各种翻译
    • 可在抓取光学界面中打开浮动
  • 浮动窗口可通过按ESC右键关闭的方式退出
  • 浮动窗口包含暂停阅读的功能键,快捷键以及功能如下:
    • 暂停;,即暂停TextractorOCR的文本抓取
    • 阅读',即阅读当前抓取的文本

打包

  • 本项目可用Pyinstaller打包,命令:pyinstaller -Fw main.py
    • 注意要在32位Python环境下,否则某些功能可能会不可用

额外说明

  • 因界面排版问题,选择Microsoft YaHei Mono字体
  • 调用J北京YukariTamiyasu的代码参考了VNR的源码
  • 调用VOICEROID2的代码参考了Nkyoku/pyvcroid2项目