python3-文本读音器
本篇分享的是使用python3制作一个文本读音器,简单点就是把指定的文本文字转语音说出来;做这么个小工具主要是为了方便自己在平时看一些文章眼累的时候,可通过语音来帮助自己,当然如果你是小说迷,可以扩展成一个小说读音器。
pip install pyttsx3
这里我选择了pyttsx3工具,其实百度的语音接口很不错,不过有些麻烦,我们姑且忽略;先安装python的文字转语音的工具pyttsx3,来简单封装一个文字转语音的方法:
import pyttsx3 class ttsx(object): def __init__(self,rate=-10): self.rate = rate def sayText(self,str): self.engine = pyttsx3.init() #语速 rate = self.engine.getProperty('rate') self.engine.setProperty('rate', rate + self.rate) #音量 #volume = self.engine.getProperty('volume') #engine.setProperty('volume', volume - 0.25) #声音 #voices = self.engine.getProperty('voices') #for voice in voices: # self.engine.setProperty('voice', voice.id) # print(voice.id) self.engine.say(str) self.engine.runAndWait()
这里采用系统默认的语音驱动,默认的语速过快,我们可以通过rate来设置下,然后可以通过调用说一句你想说的话,比如:
ttx = ttsx() ttx.sayText("我是神牛003,欢迎大家关注")
正常情况下,能够听到有电脑系统的语音,这里也没法演示;注意在语言播放的时候程序是阻塞的,self.engine.runAndWait()这句是关键;为了方便操作我加入了ui界面,先引用tkinter插件:
import tkinter from tkinter.constants import * from tkinter import filedialog
这里初始化一个操作窗体并附加几个元素,图像界面有点low,如下:
图形窗体关键代码如下,或许不是很友好:
#初始化窗体 def tkMain(self,title,h=500,w=300): self.tk = tkinter.Tk() self.tk.title(title) self.tk.minsize(h,w) self.tk.resizable(False,False) tkinter.Label(self.tk, text="文本路径:").grid(row=0, column=0) self.entryvar = tkinter.StringVar() entry = tkinter.Entry(self.tk,textvariable = self.entryvar,borderwidth=2,width=50) entry.grid(row=0, column=1) tkinter.Button(self.tk,text="选择",command=self.selectPath).grid(row=0, column=2) tkinter.Button(self.tk,text="开读",command=self.readTxt).grid(row=0, column=3) self.txt = tkinter.Text(self.tk) self.txt.grid(row=1,columnspan=4) self.tk.mainloop()
再者通过filedialog并增加一个按钮事件来达到选择电脑磁盘中的某个文件,并读取txt内容显示在文本框中:
#选择文件 def selectPath(self): self.filename = filedialog.askopenfilename() # 打开文件夹对话框 if not self.filename: return self.entryvar.set(self.filename) # 设置变量entryvar,等同于设置部件Entry self.txt.delete(0.0,"end") #加入到界面txt with open(self.filename,'r') as f: while True: line = f.readline() if(line): self.txt.insert('insert',line) else: break
最后开读按钮事件只需要获取到文本框中内容,并调用读音方法就行了:
#读取txt中文本 def readTxt(self): strTxt = self.txt.get(0.0,"end") self.sayText(strTxt)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring Boot(11)——使用Spring Cache
使用Spring Cache Spring提供了Cache抽象,它允许我们声明哪些bean的哪些方法的外部调用需要使用Cache。方法调用使用了Cache后,在调用真实方法前会先从缓存中获取结果,缓存中如果没有则会调用真实方法,这也是基于AOP实现的。关于Spring Cache的介绍不是本文的重点,如有需要可以参考笔者写的http://elim.iteye.com/blog/2123030。 在Spring Boot应用中使用Spring Cache需要在@SpringBootConfiguration标注的Class上添加@EnableCaching,这样就启用了Spring Cache。Spring Boot将根据Classpath下提供的Spring Cache实现类选择合适的实现者进行自动配置,支持的实现有基于Ehcache的实现、基于Redis的实现等,详情可参考org.springframework.boot.autoconfigure.cache.CacheConfiguration的源码。如果没有找到,则会使用基于ConcurrentMap的实现。 下面的代码中就启用...
- 下一篇
Python多版本情况下四种快速进入交互式命令行的操作技巧
因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇到Python傻傻分不清楚的情况,今天小编整理了四个操作技巧,以帮助大家解决这个“心头之痛”。 1、直接在命令行窗口中输入命令“python”,便可以进入命令行了,如下图所示。 不过此时默认弹出的是Python2版本,这是因为小编的电脑中Python的环境变量将Python2放在了Python3的前面,所以默认是弹出Python2版本。如果想默认弹出Python3版本的话,只需要将Python3的环境变量移至Python2的前面即可,在这里就不做演示了。如果有的小伙伴还不知道如何设置Python的环境变量,可以戳这篇文章:安装完Python之后,如何设置Python环境变量。 通过这种方式可以快速的进入Python命令行窗口,不过需要调整环境变量。 2、通过Python2和Python3的安装包路径进入命令行窗口,具体的操作如下,这里以Python3为例,Python2的操作类似。进入到Python3的安装包下,即有python.exe这个文件的目录下,如...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范