python得读音_python3 - 文本读音器

本篇分享的是使用python3制作一个文本读音器,简单点就是把指定的文本文字转语音说出来;做这么个小工具主要是为了方便自己在平时看一些文章眼累的时候,可通过语音来帮助自己,当然如果你是小说迷,可以扩展成一个小说读音器。

1 pip install pyttsx3

这里我选择了pyttsx3工具,其实百度的语音接口很不错,不过有些麻烦,我们姑且忽略;先安装python的文字转语音的工具pyttsx3,来简单封装一个文字转语音的方法:

1 import pyttsx32

3 class ttsx(object):4 def __init__(self,rate=-10):5 self.rate =rate6

7 def sayText(self,str):8 self.engine =pyttsx3.init()9

10 #语速11 rate = self.engine.getProperty('rate')12 self.engine.setProperty('rate', rate +self.rate)13

14 #音量15 #volume = self.engine.getProperty('volume')16 #engine.setProperty('volume', volume - 0.25)17

18 #声音19 #voices = self.engine.getProperty('voices')20 #for voice invoices:21 # self.engine.setProperty('voice', voice.id)22 # print(voice.id)23

24 self.engine.say(str)25 self.engine.runAndWait()

这里采用系统默认的语音驱动,默认的语速过快,我们可以通过rate来设置下,然后可以通过调用说一句你想说的话,比如:

1 ttx =ttsx()2 ttx.sayText("我是神牛003,欢迎大家关注")

正常情况下,能够听到有电脑系统的语音,这里也没法演示;注意在语言播放的时候程序是阻塞的,self.engine.runAndWait()这句是关键;为了方便操作我加入了ui界面,先引用tkinter插件:

1 import tkinter2 from tkinter.constants import *

3 from tkinter import filedialog

这里初始化一个操作窗体并附加几个元素,图像界面有点low,如下:

cc21b94660d382e5f5dbf146ec1a1bb6414fa5e9.png

图形窗体关键代码如下,或许不是很友好:

1 #初始化窗体2 def tkMain(self,title,h=500,w=300):3 self.tk =tkinter.Tk()4 self.tk.title(title)5 self.tk.minsize(h,w)6 self.tk.resizable(False,False)7

8 tkinter.Label(self.tk, text="文本路径:").grid(row=0, column=0)9

10 self.entryvar =tkinter.StringVar()11 entry = tkinter.Entry(self.tk,textvariable = self.entryvar,borderwidth=2,width=50)12 entry.grid(row=0, column=1)13

14 tkinter.Button(self.tk,text="选择",command=self.selectPath).grid(row=0, column=2)15 tkinter.Button(self.tk,text="开读",command=self.readTxt).grid(row=0, column=3)16

17 self.txt =tkinter.Text(self.tk)18 self.txt.grid(row=1,columnspan=4)19

20 self.tk.mainloop()

再者通过filedialog并增加一个按钮事件来达到选择电脑磁盘中的某个文件,并读取txt内容显示在文本框中:

1 #选择文件2 def selectPath(self):3 self.filename =filedialog.askopenfilename() # 打开文件夹对话框4 ifnot self.filename:5 return

6

7 self.entryvar.set(self.filename) # 设置变量entryvar,等同于设置部件Entry8 self.txt.delete(0.0,"end")9 #加入到界面txt10 with open(self.filename,'r') asf:11 whileTrue:12 line =f.readline()13 if(line):14 self.txt.insert('insert',line)15 else:16 break

最后开读按钮事件只需要获取到文本框中内容,并调用读音方法就行了:

1 #读取txt中文本2 def readTxt(self):3 strTxt = self.txt.get(0.0,"end")4 self.sayText(strTxt)

内容来源于网络如有侵权请私信删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下python升级步骤

首先下载源tar包 可利用linux自带下载工具wget下载,如下所示: 1 # wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz 或自己去网上找,这里提供一个最新版的下载链接:http://xiazai.zol.com.cn/detail/33/320958.sht…

windows 下安装Simplejson方法

1.下载:http://pypi.python.org/pypi/simplejson/ 文件为压缩文件 2.解压:可以直接右键:解压文件.例如:D:/simplejson 3.开始---运行---输入命令:cmd 4.进入到目录(如:D:/simplejson&#xff09…

Vue(二十八)el-cascader 动态加载 - 省市区组件

1.后台接口为点击加载下一级 &#xff0c;传省市区id <template><el-cascaderv-model"selectedOptions"placeholder"请选择省市区":options"cascaderData"active-item-change"handleItemChange":props"{value: id,label…

用虚拟机安装了红帽后,我确实没设置用户名密码,但现在一打开就让输入用户名密码。这种情况该怎么办??

2011-05-05 15:22 提问者采纳破解root密码方法 1、在启动Linux时出现这个界面按e键。 2、按e键后出现选择界面 3、再按e键进入编辑状态。 4、用上、下键选择第二行以”kernel”开头的这一行&#xff0c;然后再按e键进入编辑状态 5、在此行的末尾&#xff0c;按空格键后输入sing…

Mongo数据库搭建

一、安装 1、首先下载Mongo程序&#xff0c;到官方网站上选择适合自己的版本下载&#xff0c;在这里我选择的win32平台下的程序包。解压之后配置相应的环境变量&#xff0c;即可在CMD命令窗口对Mongo进行操作。官方下载URL:http://www.mongodb.org/downloads 在该页面的下方有…

如何制作混合果汁?

天猫超市塞浦路斯Prima牌菠萝果汁汇源葡萄果汁 倒在一起。转载于:https://www.cnblogs.com/theodoric008/p/9792743.html

pl/postgresql_PostgreSQL PL / java简介

pl/postgresql现代数据库允许以多种语言编写存储过程。 一种常见的实现语言是java.NB&#xff0c;本文讨论了PostgreSQL特定的Java实现。 其他数据库的详细信息将有所不同&#xff0c;但概念将相同。 PL / Java的安装 在Ubuntu系统上安装PL / Java很简单。 我将首先创建一个新…

python输出文本和值_python读取文本中数据并转化为DataFrame的实例

在技术问答中看到一个这样的问题&#xff0c;感觉相对比较常见&#xff0c;就单开一篇文章写下来。 从纯文本格式文件 “file_in”中读取数据&#xff0c;格式如下&#xff1a;需要输出成“file_out”&#xff0c;格式如下&#xff1a;数据的原格式是“类别&#xff1a;内容”&…

欧拉回路与欧拉道路

图G的一个回路&#xff0c;若它恰通过G中每条边一次,则称该回路为欧拉(Euler)回路。如果一个图只是形成一个连通所有节点的链&#xff0c;且每一点只走一次&#xff0c;则成为欧拉道路。具有欧拉回路或欧拉道路的图称为欧拉图&#xff08;简称E图&#xff09;。有向图的欧拉回路…

小心DLL链接静态库时的内存错误

最近写的模块&#xff0c;在独立的应用程序中测试是没问题的&#xff0c;但把它装配成DLL后&#xff0c;再在另一个应用程序中调用时却出现了内存错误。程序的模块链接关系大概是这样的&#xff1a; module就是我所写的模块&#xff0c;在这里被封装为DLL&#xff0c;因为要使用…

阿里试用,女朋友逼着我给她排序

阿里试用排序 抱歉&#xff0c;之前莫名其妙把配置文件给 ignore 了&#xff0c;已经修复&#xff0c;抱歉 前景提要 说来简直丢尽了钢铁直男的脸&#xff0c;没错&#xff0c;昨晚我在愉快的做着外包的活&#xff08;中国移动的小程序&#xff0c;自由职业&#xff0c;喂&…

用于Elasticsearch成绩单的Java客户端

在本演讲中&#xff0c;我将介绍用于Elasticsearch和Spring Data Elasticsearch的三个不同的客户端。 首先&#xff0c;让我们看一下Elasticsearch的一些基础知识。 弹性搜索 为了介绍elasticsearch&#xff0c;我使用的定义直接来自Elastic网站。 Elasticsearch是基于JSON的…

springmvc是什么_当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?

前文Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;通过把Model&#xff0c;View&#xff0c;Controller分离&#xff0c;将web层进行职责解耦&#xff0c;把复杂的web应用分成逻辑清晰的几部分&#xff0c;简化开发&#xff0c;减少出…

怎么用python画饼状图_Python入门进阶:Python绘制饼图到Microsoft Excel

原标题&#xff1a;Python入门进阶&#xff1a;Python绘制饼图到Microsoft Excel 来自&#xff1a;Linux迷https://www.linuxmi.com/python-pie-chart-microsoft-excel.html 在本文中&#xff0c;我想向您展示使用Python向Microsoft Excel绘制饼图&#xff0c;为此我们将使用Xl…

Linux系统Shutdown命令定时关机详解

Linux系统下的shutdown命令用于安全的关闭/重启计算机&#xff0c;它不仅可以方便的实现定时关机&#xff0c;还可以由用户决定关机时的相关参数。在执行shutdown命令时&#xff0c;系统会给每个终端&#xff08;用户&#xff09;发送一条屏显&#xff0c;提示关机操作。定时关…

_ASSERTE(_CrtIsValidHeapPointer(pUserData))错误详解

可能原因&#xff1a;DLL和EXE主程序使用的不是同一个堆造成。 解决办法&#xff1a; 1. 采用谁分配谁释放的原则&#xff1b; 2. 绕过 new 和 delete&#xff0c;使用 GlovalAlloc 和 GlobalFree&#xff1b; 3. 更改工程选项&#xff0c; release 版本肯定不会出现这个失败&a…

【机器学习】【线性回归】梯度下降

文章目录 [toc]数据集实际值估计值估计误差代价函数学习率参数更新Python实现导包数据预处理迭代过程数据可视化完整代码 线性拟合结果代价结果 个人主页&#xff1a;丷从心 系列专栏&#xff1a;机器学习 数据集 ( x ( i ) , y ( i ) ) , i 1 , 2 , ⋯ , m \left(x^{(i)} , …

python api是什么_Python/C API

Python/C API Python/C API可能是被最广泛使用的方法。它不仅简单&#xff0c;而且可以在C代码中操作你的Python对象。 这种方法需要以特定的方式来编写C代码以供Python去调用它。所有的Python对象都被表示为一种叫做PyObject的结构体&#xff0c;并且Python.h头文件中提供了各…

Sublime Text插件列表

本文由伯乐在线 - 艾凌风 翻译&#xff0c;黄利民 校稿。英文出处&#xff1a;ipestov.com。欢迎加入翻译组。本文收录了作者辛苦收集的Sublime Text最佳插件&#xff0c;很全。 最佳的Sublime Text 插件 朋友们你们好&#xff01;我尝试着收集了最佳的ST插件&#xff0c;这些插…

C语言sendto()函数:经socket传送数据

相关函数&#xff1a;send, sendmsg, recv, recvfrom, socket头文件&#xff1a;#include <sys/types.h> #include <sys/socket.h>定义函数&#xff1a;int sendto(int s, const void * msg, int len, unsigned int flags, const struct sockaddr * to, int tole…