文本 ---> 语音转换器(Python实现)

简介: 本项目是一个简单的从文本到语音这样一个转换器的图形用户界面应用,使用了`Python`的`tkinter`库来构建界面,以及`pyttsx3`库来执行转换。以下是对该项目代码的详细解释,后面会附上完整项目代码

本项目是一个简单的从文本到语音这样一个转换器的图形用户界面应用,使用了Pythontkinter库来构建界面,以及pyttsx3库来执行转换。以下是对该项目代码的详细解释,后面会附上完整项目代码:

实现效果:
屏幕截图 2024-06-28 042959.png

一:导入模块

import pathlib  
import tkinter as tk  
import tkinter.ttk as ttk    
import tkinter.filedialog as filedialog  
import tkinter.messagebox as msgbox  
import pyttsx3
  • pathlib: 用于处理文件系统路径的面向对象的模块。
  • tkinter: Python的标准GUI库。
  • filedialog: 用于在GUI中打开文件对话框。
  • messagebox: 用于在GUI中显示消息框。
  • pyttsx3: 一个TTS库,可以将文本转换为语音。

二:定义Application

class Application(tk.Tk):  
    ...

这个类继承自tk.Tk,表示它是一个tkinter窗口应用。

三:__init__方法

def __init__(self):  
    ...

这是类的初始化方法。在这里,设置了窗口的标题、大小、图标,并初始化了pyttsx3引擎和一个字符串变量self.file_path用于存储选择的文本文件的路径。最后,它调用self.init_ui()来初始化用户界面。

四:init_ui方法

def init_ui(self):  
    ...

这个方法负责构建GUI。它创建了一个标签框架(LabelFrame)用于包含文本文件相关的控件,包括一个用于输入文件路径的Entry控件和一个 “选择” 按钮来触发文件的选择对话框。还添加了一个“转换为 MP3”按钮来触发从文本到语音的转换。

五:select_file方法

def select_file(self):  
    ...

当用户点击“选择”按钮时,这个方法会被调用。它使用filedialog.askopenfile打开一个文件选择对话框,并让用户选择一个文本文件。如果用户选择了一个文件,它会更新self.file_path字符串变量以存储文件的路径。

六:convert_to_mp3方法

def convert_to_mp3(self):  
    ...

当用户点击“转换为 MP3”按钮时,这个方法会被调用。它首先使用pathlib.Path处理文件路径,然后读取文件内容。接着,它使用pyttsx3引擎的save_to_file方法将文本内容转换为MP3文件,文件名与原始文本文件相同但扩展名为.mp3。最后,它显示一个消息框来通知用户文件已成功转换。

七:主程序

if __name__ == "__main__":  
    app = Application()  
    app.mainloop()

这是Python程序的入口点。它创建一个Application类的实例并启动其事件循环,从而显示GUI窗口并等待用户交互。待退出程序后,MP3文件会自动生成。

本项目完整源码

import pathlib
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.filedialog as filedialog
import tkinter.messagebox as msgbox
import pyttsx3

class Application(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("文本->语音转换器")
        self.geometry("600x320")
        self.iconbitmap("favicon.ico")
        self.engine = pyttsx3.init()
        self.file_path = tk.StringVar()
        self.init_ui()


    def init_ui(self):
        self.row1 = tk.LabelFrame(self, text="文本文件")
        self.txt_path = tk.Entry(self.row1, textvariable=self.file_path)
        self.txt_path.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=5, pady=5)

        self.btn_sel = tk.Button(self.row1, text="选择", command=self.select_file)
        self.btn_sel.pack(side=tk.RIGHT, pady=5, padx=5)
        self.row1.pack(fill=tk.X, padx=5, pady=5)

        self.btn_convert = tk.Button(self, text="转换为 MP3", command=self.convert_to_mp3)
        self.btn_convert.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)


    def select_file(self):
        txt_file = filedialog.askopenfile(initialdir=".", title="选择文件", filetypes=(('文件文件', '*.txt'),('所有文件', '*.*')))
        if txt_file:
            self.file_path.set(txt_file.name)

    def convert_to_mp3(self):
        filename = pathlib.Path(self.file_path.get())
        with open(filename, 'r', encoding='utf8') as f:
            self.engine.save_to_file(f.read(), f"{filename.stem}.mp3")
            self.engine.runAndWait()
        msgbox.showinfo("转换结果", "文件转换成功!")

if __name__ == "__main__":
    app = Application()
    app.mainloop()
目录
相关文章
|
4天前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:语言模型与文本生成
使用Python实现深度学习模型:语言模型与文本生成
34 5
|
5天前
|
机器学习/深度学习 自然语言处理 数据挖掘
使用Python和大模型进行数据分析和文本生成
Python语言以其简洁和强大的特性,成为了数据科学、机器学习和人工智能开发的首选语言之一。随着大模型(Large Language Models, LLMs)如GPT-4的崛起,我们能够利用这些模型实现诸多复杂任务,从文本生成到智能对话、数据分析等等。在这篇文章中,我将介绍如何用Python连接和使用大模型,并通过示例展示如何在实际项目中应用这些技术。
|
7天前
|
数据采集 前端开发 JavaScript
python语言通过简单爬虫实例了解文本解析与读写
python|通过一个简单爬虫实例简单了解文本解析与读写
|
15天前
|
API 语音技术 Python
【python的魅力】:教你如何用几行代码实现文本语音识别
【python的魅力】:教你如何用几行代码实现文本语音识别
|
4天前
|
Python
Python正则表达式详解:掌握文本匹配的魔法
Python正则表达式详解:掌握文本匹配的魔法
|
10月前
|
自然语言处理 Python
Python读取Word/PPT文件文本内容和图片内容
读取某个指定路径下的Word/PPT文件,并将其中所有的文本内容生成一个TXT文件,将所有的图片内容保存在一个文件夹里
299 0
|
存储 Linux 测试技术
Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
834 0
python小玩意——使用PIL模块将文本文字放在图片里面
python小玩意——使用PIL模块将文本文字放在图片里面
python小玩意——使用PIL模块将文本文字放在图片里面
|
JSON API 语音技术
Python 技术篇-获取requests里的二进制文本并保存为音频、图片文件,提取requests里的多媒体信息
Python 技术篇-获取requests里的二进制文本并保存为音频、图片文件,提取requests里的多媒体信息
777 0
Python 技术篇-获取requests里的二进制文本并保存为音频、图片文件,提取requests里的多媒体信息