利用python制作点读翻译软件(基于google api)

        摘要:实现点读功能,自动朗读翻译整段。
        完整代码git地址:https://github.com/luoqingyu/Read-translation-machine
程序思路:首先是获取要翻译和朗读的英文数据来源,这里假定我们正在阅读PDF,遇到一段有困难的话,我想要实现的是使用鼠标左键将句子整体选上实现朗读和翻译。
1.获取需要翻译的内容:选中需要翻译的句子,ctrl+c复制到剪切板上,利用python读取剪切板内容,获取带翻译数据。
2.朗读:获取到待翻译的数据后,调用pyttsx语言库对文本进行朗读。
3.翻译:获取剪切板内容后,调用googletrans库获取翻译结果。
4.界面显示:主要是显示翻译内容,使用tkinter库绘制界面。
实现效果:
分模块实现
1.获取截切板内容朗读   readCopy.py
#-*- coding: utf-8 -*-
import  win32clipboard
import  win32clipboard as wc                #用以获取剪切板内容的支持库
import  win32con
import pyttsx                               #语言支持库
import chardet
import timedef speakInit():                     engine = pyttsx.init()                  #初始化语音引起rate = engine.getProperty('rate')       #获取初始语速  初始为200我觉得有点快,改成了120engine.setProperty('rate', 120)         #修改初始语速voices = engine.getProperty('voices')   #选择发音人物,听了所有人物,觉得这个id的小姐姐声音好听engine.setProperty('voice', "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0")return  engine                          #返回一个初始化好的语言借口def getCopyText():                          #获取剪切板内容wc.OpenClipboard()copy_text= wc.GetClipboardData(win32con.CF_TEXT) wc.CloseClipboard()return  copy_textold_text = "hi"                             #剪切板内容更新了才进行朗读    if __name__ == "__main__":                  #测试函数old_text = "hi"engine = speakInit()                    #初始化语言接口while (1):time.sleep(1)                            #延时1s防止频繁访问剪切板print  chardet.detect(getCopyText())     #打印剪切板内容if (getCopyText() != old_text):          #如果剪切板更新了try:engine.say(getCopyText())time.sleep(1)engine.say(getCopyText())engine.runAndWait()old_text = getCopyText()except:pass
2.调用google翻译api    testtestGoogletrans.py
#-*- coding: utf-8 -*-
from googletrans import Translator               #倒入google翻译包def translate(sendwords):                        #编写中文翻译函数translator = Translator()return (translator.translate(sendwords,dest='zh-CN').text)if __name__ == "__main__":                        #测试函数print ('20')words= "We trained a large, deep convolutional neural network"translate(words)
3.编写界面和主函数    主函数使用了以上两个文件,请保持这些文件在一个文件夹中
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
import  tkinter as tk
from googletrans import Translator
import  readCopy
import  testtestGoogletrans                                        #倒入所需库old_text = ''
new_text = 'hi'
engine = readCopy.speakInit()
def update_timeText():                                            #差看剪切板文字是否更新global  old_textglobal  new_textnew_text = readCopy.getCopyText()print (new_text+ '+')                                         #显示内容方便调试print  (old_text+'-')if (new_text != old_text):try:words = new_textresult = testtestGoogletrans.translate(words)Label2.configure(text=result)Label2.packold_text =new_textwindow.after(1000, update_timeText)                  #程序精髓,1S后更新界面return   read_text()except:window.after(1000, update_timeText)                  #有异常也要更新else:window.after(1000, update_timeText)def read_text():                                     #读剪切板内容global  engineengine.say(new_text)engine.runAndWait()def init():                                         #界面初始化window = tk.Tk()Button1=tk.Button(window, text='再次朗读',  command=lambda:read_text())Button1.place(x=350,y=20)window.title('daydayup点读机')window.geometry('400x200')Label1=tk.Label(window,text='结果')Label1.place(x=10,y=10)Label2=tk.Label(window,text='*******', font = ("Arial, 14"),wraplength=300)Label2.place(x=20,y=40)return  Label2 ,windowif __name__ == "__main__":                   Label2,window=init()engine = readCopy.speakInit()new_text =  readCopy.getCopyText()try:words = new_textresult=testtestGoogletrans.translate(words)Label2.configure(text=result)Label2.place(x=20, y=40)Label2.pack()update_timeText()window.wm_attributes('-topmost', 1)window.mainloop()except:pass
整理完成
 

利用python制作点读翻译软件(基于google api)相关推荐

  1. 利用Python制作微信机器人(三)实现爬取JD商品价格

    从前两篇的博客来看,目前已经实现了机器人单向给微信发消息,和与机器人进行交互式发消息,详情如下: 利用Python制作微信机器人(一)机器人单向发消息 利用Python制作微信机器人(二)与机器人进行 ...

  2. 利用Python制作微信机器人(二)

    上次写了利用Python制作微信机器人,其中只实现了通过api来控制微信机器人来给自己发送消息,具体详情可查看: 利用Python制作微信机器人(一) 本篇博客主要编写如何是实现给微信机器人发送消息, ...

  3. 利用Python制作王者荣耀出装小助手,引来了老板的注意!

    导语 T_T并不玩这些游戏... 单纯来蹭个热点... 大概是因为蹭热点需要的技术含量比较低? 就这样吧~~~ 利用Python制作命令行版的王者荣耀出装小助手. Let's Go! 开发工具 Pyt ...

  4. 小哥哥你有98K吗?利用Python制作一款多功能变声器!

    前言 好吧,关于这句小哥哥你有98K吗?出自别人口中经常说的玩笑话,我也略懂一些游戏嘛.不过不常玩,废话不多说,开始咱们今天的教程,非常简单! 利用Python制作一款多功能变声器! 咱们首先登陆百度 ...

  5. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

  6. python拼图_利用python制作拼图小游戏的全过程

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 关注公众号:Python学习指南,回复"拼图"即可获取源码 环境搭建 安装P ...

  7. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  8. 利用python的scrapy框架爬取google搜索结果页面内容

    scrapy google search 实验目的 爬虫实习的项目1,利用python的scrapy框架爬取google搜索结果页面内容. https://github.com/1012598167/ ...

  9. python制作有道翻译软件

    python制作有道翻译软件 完整代码: import requests import hashlib import json,time,random import tkinter as tk hea ...

最新文章

  1. Confluence 6 创建一个空间
  2. Ubuntu 16.04 QT ‘usr/bin/ld cannot find -IGL‘
  3. PowerDesigner165安装婆姐汉花教程
  4. python测试代码运行时间_python测量代码运行时间方法
  5. 使用SDL打造游戏世界之入门篇 - 5
  6. Python入门基础--雨敲窗视频系列
  7. 李开复:21世纪最需要的7种人才
  8. 汇编语言——寻址方式的综合应用及转移指令的原理
  9. 沙场秋点兵(完整版)
  10. 20182319彭淼迪 2019-2020-1 《数据结构与面向对象程序设计》实验一报告
  11. 几种常见的4K高清视频信号传输方案对比
  12. 统计学(网易云可汗学院公开课笔记)
  13. (Modern Family S01E04) Part 2 PhilClaire Luke和Haley玩游戏 Haley想去音乐会父母不同意
  14. Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】
  15. hadoop安装-redhat
  16. 国内哪里培训python比较好-上海口碑好的Python培训机构是哪家
  17. ARM-GCC环境搭建:适用STM32/GD32的编译调试总结
  18. 【干货】教你如何下载去水印抖音短视频到手机
  19. 网络安全之入侵win7主机自学笔记
  20. 2021/06/29计算机视觉期末复习笔记整理

热门文章

  1. 2021-10-26快速测温电子体温计方案开发
  2. 操作系统实验:文件管理 C语言
  3. 吞吐量(TPS)、QPS、并发数、响应时间概念
  4. uniApp生成Excel,uniApp导出Excel,微信小程序生成Excel,微信小程序导出Excel
  5. 我们应该用什么酒袋来安全地运输葡萄酒?
  6. 基于SIMD和缓存友好的结构体数组排序算法(论文阅读笔记)
  7. 那些高级技术岗位,需要哪些具备能力?
  8. sqlalchemy 11 Alembic
  9. Lua中的面向对象实现探讨
  10. Hadoop:MapReduce应用