python实现游戏同步翻译字幕
python实现游戏同步翻译字幕
- 前言
- 思路
- 代码
- 部署方式
- 待改进
前言
为了愉快地学英语(玩galgame),用Python实现了实时CLANNAD中文字幕。
按下快捷键时会弹出半透明的中文翻译
思路
- 使用pykeyboard循环捕捉按键事件
- 使用PIL的ImageGrab截取需要翻译部分的图片
- 调用pytesseract进行ocr识别
- 调用百度的api翻译
- 使用wxPython的GUI显示到屏幕上
代码
import keyboard
import wx
from PIL import ImageGrab
import win32api
import http.client
import hashlib
import urllib
import random
import json
from pip._vendor.distlib.compat import raw_input
from PIL import Image
import pytesseract
wide=win32api.EnumDisplayMonitors(None, None)[0][2][2]
high=win32api.EnumDisplayMonitors(None, None)[0][2][3]
app=wx.App()
def show_win(text='default',x=0,y=0,high=1000,weight=300):'''text:要显示的内容x:显示框左上角的x坐标y:显示框左上角的y坐标high:显示框的高度weight:显示框的宽度'''global appwin = wx.Frame(None,title="翻译",pos=(x,y),size=(weight,high),style=wx.STAY_ON_TOP)#窗口属性win.SetTransparent(100)#透明度win.Show()font1 = wx.Font(50, wx.MODERN, wx.NORMAL, wx.NORMAL, False, '黑体')#字体大小等设置richText = wx.TextCtrl(win,value='',pos=(0,0),size=(weight,high))#文本框属性richText.SetInsertionPoint(0)richText.SetFont(font1)richText.AppendText(text)wx.FutureCall(20000, win.Destroy)#关闭时间20sapp.MainLoop()
def translate(content):'''参数:content: 翻译的内容返回翻译结果'''appid = '你的appID'secretKey = '你的secretKey 'httpClient = Nonemyurl = '/api/trans/vip/translate'q = contentfromLang = 'en' # 源语言toLang = 'zh' # 翻译后的语言salt = random.randint(32768, 65536)sign = appid + q + str(salt) + secretKeysign = hashlib.md5(sign.encode()).hexdigest()myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + signhttpClient = http.client.HTTPConnection('api.fanyi.baidu.com')httpClient.request('GET', myurl)# response是HTTPResponse对象response = httpClient.getresponse()jsonResponse = response.read().decode("utf-8")# 获得返回的结果,结果为json格式js = json.loads(jsonResponse) # 将json格式的结果转换字典结构dst = str(js["trans_result"][0]["dst"]) # 取得翻译后的文本结果return dst
def 监控():while True:#循环监听按键if keyboard.is_pressed('w'):ImageGrab.grab((int(wide*0.1),int(high*0.8),int(wide*0.9),int(high*0.95))).save('now.png')text = pytesseract.image_to_string(Image.open(r'now.png'))text=str(translate(text))show_win(text=text,x=int(wide*0.1),y=int(high*0.7),high=150,weight=2000)elif keyboard.is_pressed('q'):print('Quit!')break
if __name__=='__main__':监控()
部署方式
- 安装python以及所需要的包
- 安装tesseract
- 根据程序的注释设置相关的参数
- 直接运行
待改进
- 程序移植优化,可以快速选定英文的位置和中文要出现的位置
- 翻译自动出现
python实现游戏同步翻译字幕相关推荐
- python自动翻译视频字幕_python利用google翻译字幕文件方法代码示例
本篇文章小编给大家分享一下python利用google翻译字幕文件方法代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 首先加载模块 pip u ...
- python部落翻译_python利用google翻译 翻译字幕文件
python使用谷歌翻译api 翻译字幕文件 英文字幕确实让人头疼,因此,花了一天专门研究,用python实现了比较简单的翻译代码.仅有几十行 首先加载模块 pip uninstall googlet ...
- python google翻译,python利用google翻译方法实例(翻译字幕文件)
英文字幕确实让人头疼,因此,花了一天专门研究,用python实现了比较简单的翻译代码.仅有几十行 首先加载模块 pip uninstall googletrans git clone https:// ...
- python文件下载战_在您的Python平台游戏中放一些战利品
python文件下载战 这是正在进行的有关使用Pygame模块在Python 3中创建视频游戏的系列的一部分. 以前的文章是: 通过构建一个简单的骰子游戏,学习如何用Python编程 使用Pygame ...
- 使用 Python 进行游戏脚本编程
使用 Python 进行游戏脚本编程 作者 Bruce Dawson Humongous 娱乐公司 http://www.cygnus-software.com/papers/ 介绍 使用脚本语言可以 ...
- python五子棋游戏说明_python实现五子棋游戏(pygame版)
python实现五子棋游戏(pygame版) 发布时间:2020-10-11 17:05:18 来源:脚本之家 阅读:67 作者:king0964 本文实例为大家分享了python五子棋游戏的具体代码 ...
- python五子棋游戏控制台版_python实现五子棋游戏(pygame版)
本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下 目录 简介 实现过程 结语 简介 使用python实现pygame版的五子棋游戏: 环境:Windows系统+pytho ...
- Python开发游戏?也太好用了吧
程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 当然可以啦! 现在日常能够用到和想到的场景,绝大多数都可以用Python实现. 效果怎么样暂 ...
- python写好的代码怎么给别人使用-10分钟学会用python写游戏!Python其实很简单!...
原标题:10分钟学会用python写游戏!Python其实很简单! Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以在这里给各位看官们准备了高价值Python学习视频教程 ...
- python编程小游戏-python编程游戏有哪些
python编程游戏有哪些?下面给大家介绍几款由Python开发的游戏: 1.Github上面有个项目Free Python Games,里面集合了不少的Python开发的小游戏,能玩,也适合新手用来 ...
最新文章
- java打印四行等腰三角形_(c语言程序案例.doc
- Latex 添加多张图片技巧说明
- 《精通J2EE网络编程》中讲的JNDI 6.2 使用JNDI
- Bzoj1018 [SHOI2008]堵塞的交通traffic
- gwt的mvp模式_GWT MVP变得简单
- linux每隔多久调度y,Linux 进程调度+Linux系统一般执行过程 笔记
- Hashtable Dictionary[必看]
- 深度学习实战 | 使用Kera预测人物年龄
- node 连接mongodb
- Windows10上安装Keras 和 TensorFlow-GPU
- 字节跳动产品经理面经——飞书
- 测试回归结果分析软件,“3414”试验数据分析软件设计原理
- 尚硅谷ssm整合实战项目笔记
- 微会动微营销引擎:SEM效果提升的2大方向+5种能力+7个策略
- java中 字符串的补位
- 计科四班助教二月底至五月中旬点评与反馈
- 什么是一套完全私有的即时通讯系统
- 小程序 选择地区(地区选择器)
- 休闲平台,何去何从?(1)
- 树莓派远程连接工具VNC使用教程
热门文章
- 读《Redis入门指南》2
- LTspice基础教程-004.系统自带仿真库介绍
- MATLAB热障涂层成像,考虑孔隙细观特征的热障涂层脱粘缺陷超声检测数值模拟
- 完成端口(CompletionPort)详解
- tampermonkey 下载
- Eviews实现var模型
- 九联UNT401H零配置、芒果、南传、百视通等版本通刷固件及教程
- 渗透工具TotalPass:TotalPass 是一款默认口令/弱口令扫描工具
- python 过采样算法_欠采样(undersampling)和过采样(oversampling)会对模型带来怎样的影响?...
- 《数字信号处理》——(一).DTFT、DFT(python实现)