使用PyQt GUI 写一个朗读软件


使用PyQt GUI 写一个朗读软件


一只小胖子

[互联网运营 | 直播电商 | 广告行业] 从业者

2 人赞同了该文章


一直想找一款能朗读的软件,需支持批量朗读本地文件(如文本/PDF等). 但找了半天没有发现自己满意的. 所以就初次尝试使用PyQt的GUI加pyttsx3库自己用Python写了一个简单的内容朗读器.支持在不联网的情况下批量朗读内容(网页/文本/可编辑式PDF),支持调用近40种语音(包括常用的国语/粤语/英文等),能够倍速/音量/朗读人物调节.另外软件支持自定义保存和加载播放列表,包括统计播放次数,朗读内容查看及文件筛选等. 这样以后朗读内容时只需先批量添加内容,然后选中单项或批量多项内容后播放即可,总之如播放音乐一样操作就可以啦. 哈哈... 终于可以摆脱每读完第一篇内容,下一篇内容又要切换的繁琐了..


一 .查找现有的方案

1.Edge浏览器朗读 :

优点是:效果较好,而且支持文本/网页/PDF 缺点是:1.不能连续播放,播放完当前网页或PDF后需手动切换至下一个文档或网页播放 2.有的网页或者PDF进行阅读时会卡住,所以需要先处理下,如网页用简悦或自己用Python库处理下简化格式,针对PDF则提取出文本内容再来朗读.

2.基于浏览器插件:

使用了两款Chrome/Edge浏览器插件,使用时需要选中网页内容再进行朗读,不能批量朗读,也不能自动朗读下一个内容,也不能支持网页外的文本类及PDF类文件朗读.

有哪些将网页上文本转换成语音进行朗读的应用或者扩展?12 赞同 · 4 评论回答

3.阅读软件-朗读女

找了一圈,在Windows下找到一款软件,名字就是朗读女,看了一下,能阅读各类格式的文档,功能支持上还真不错,就是感觉安装配置有点麻烦,而且手上Windows用的少,暂时就没下载试了.

朗读女www.443w.com/tts/

4.较有名的讯飞有声

只有移动端应用,没有发现桌面端的应用.而且功能上也不支持批量添加链接/文件进行朗读.就算使用模拟器在桌面能运行起来,也是实现不了我要批量添加朗读本地文件的功能.

5.福昕PDF阅读器

比较麻烦,每阅读一个文件又得去点一次播放,而且每次打开新的PDF文件,点播放时又会使用系统初始的语音设置.另外在朗读效果上相对不太满意.

6.系统的朗读/辅助功能

使用了mac系统的Say命令,朗读效果还行,但和pyttsx3对比了下,还是决定使用pyttsx3来实现.


二 .使用自己的方案

1.采用的方案: (pyttsx3 组件,本地不需联网)

想想,自己的需求也不复杂,于是就想着能不能使用Python上的轮子自己搞搞,然后发现以下几篇有参考价值的文章 .

Python文本语音识别模块大比拼,看看青铜与王者的差别!www.jianshu.com/p/39b17deef489

使用Python将任正非400+篇演讲批量转化为语音www.jianshu.com/p/05f9874b6989

由于不太想联网使用,也不想生成太多的mp3,生成耗时且文件占用磁盘.最终考虑使用了Python pyttsx3 组件库来实现.这个库的使用比较简洁,功能相当强大了,可以支持多个朗读者,朗读速度,朗读音量设置.而且支持保存朗读为mp3文件,非常nice!

pyttsx3pypi.org/project/pyttsx3/

朱卫军:利用Python将PDF文档转为MP3音频280 赞同 · 23 评论文章

注意使用pyttsx3时的坑: https://github.com/nateshmbhat/pyttsx3/issues

这里常见的会踩一个坑,在这里提及一下,使用pyttsx3在多线程中调用有个Bug,具体链接如下:

How to use pyttsx in a python threadstackoverflow.com/questions/48025641/how-to-use-pyttsx-in-a-python-thread

所以你使用时,调用pyttsx3的runAndWait()方法时记得在UI界面的子线程另起子进程来调用.


2.备选的方案:(使用语音服务商提供的转换服务)

详细可参考以下链接,原文作者对常见的在线转换服务进行了对比,最终推荐使用的是腾讯的在线转换服务.

一粒米饭:Python生成vlog系列(一):Python语音合成指北6 赞同 · 0 评论文章

另外还可以使用GitHub上有人提及推荐的谷歌TTS语音转换库,有时间可以再尝试下,作为备用.

https://github.com/desbma/GoogleSpeechgithub.com/desbma/GoogleSpeech


三 .方案的实现步骤

1.安装相关的依赖库:

pip install pyttsx3  # 语音朗读/生成mp3pip install pdfplumber  # pdf转换pip install pyqt5  # 界面开发pip install pyinstaller  # 打包发行from bs4 import BeautifulSoup  # 网页解析from pdfminer.pdfparser import PDFSyntaxError  # pdf解析

2.实现业务功能:

主要功能界面如下图,包括批量添加朗读文件/开启批量朗读/保存朗读列表/加载朗读列表/设置朗读语音/朗读数据统计/当前朗读状态展示/文本内容查看等.

应用主界面
界面的介绍
选择项状态
列表的管理
便携小功能

3.打包Python脚本

打包这一块,暂时还没有尝试,所以就先不写了.所以这里发个代码先,有时间再整个通用的独立运行包.

Python 打包成 exe,太大了该怎么解决?2909 赞同 · 111 评论回答


由于第一次使用PyQt组件来开发小应用,所以不是很熟练,另外如果对你有用,或者测试使用中发现什么问题,也乐意欢迎你的反馈.

我是一只热爱学习的小胖子,如果你也热爱学习,并且对SuperMemo感兴趣,欢迎你转发和评论!


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容