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,如下:
image
图形窗体关键代码如下,或许不是很友好:

    #初始化窗体
    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)
目录
相关文章
|
4月前
|
Python
python 找到并去除文本中的全部链接
这篇文章提供了一个使用Python正则表达式找到并删除文本中所有链接的代码示例。
|
4月前
|
数据采集 算法 数据可视化
基于Python的k-means聚类分析算法的实现与应用,可以用在电商评论、招聘信息等各个领域的文本聚类及指标聚类,效果很好
本文介绍了基于Python实现的k-means聚类分析算法,并通过微博考研话题的数据清洗、聚类数量评估、聚类分析实现与结果可视化等步骤,展示了该算法在文本聚类领域的应用效果。
128 1
|
1月前
|
机器学习/深度学习 自然语言处理 API
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程。通过简单的代码示例,展示如何将文本转换为自然流畅的语音,适用于有声阅读、智能客服等场景。
179 3
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
54 2
|
2月前
|
机器学习/深度学习 自然语言处理 大数据
使用Python进行文本情感分析
【10月更文挑战第2天】使用Python进行文本情感分析
46 3
|
3月前
|
Linux 开发者 iOS开发
Python中使用Colorama库输出彩色文本
Python中使用Colorama库输出彩色文本
|
3月前
|
XML 数据格式 Python
Python技巧:将HTML实体代码转换为文本的方法
在选择方法时,考虑到实际的应用场景和需求是很重要的。通常,使用标准库的 `html`模块就足以满足大多数基本需求。对于复杂的HTML文档处理,则可能需要 `BeautifulSoup`。而在特殊场合,或者为了最大限度的控制和定制化,可以考虑正则表达式。
88 12
|
3月前
|
机器学习/深度学习 自然语言处理 算法
使用Python实现简单的文本情感分析
【9月更文挑战第13天】本文将介绍如何使用Python编程语言进行基础的文本情感分析。我们将通过一个简单的例子,展示如何利用自然语言处理库nltk和机器学习库sklearn来实现对文本数据的情感倾向性判断。文章旨在为初学者提供一个入门级的指导,帮助他们理解并实践文本情感分析的基本步骤和方法。
49 6
|
3月前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
55 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
3月前
|
Python
在Python中,文本查找和替换的常用操作
在Python中,文本查找和替换的常用操作,使用字符串方法进行查找和替换,使用正则表达式进行查找和替换,对所查找到的内容进行计数。
36 1