📜  在Python中使用 Tkinter 的文本到语音 GUI 转换器(1)

📅  最后修改于: 2023-12-03 15:07:55.278000             🧑  作者: Mango

在Python中使用 Tkinter 的文本到语音 GUI 转换器

简介

Tkinter是Python常用的GUI库之一,可以用于开发各种窗口应用程序。本文将介绍如何使用Tkinter库实现一个文本到语音的GUI转换器。

程序功能

该程序需要实现以下功能:

  • 可以输入文本内容
  • 可以选择语音模式
  • 可以保存语音文件
实现步骤
安装依赖库

在使用之前需要安装pyttsx3playsoundtkinter库。可以使用pip进行安装:

pip install pyttsx3
pip install playsound
编写GUI界面

使用Tkinter创建GUI界面,包括文本输入框、语音模式选择、转换按钮和保存文件按钮。代码如下:

import tkinter as tk

root = tk.Tk()
root.title("文本到语音转换器")

# 文本输入框
text_input = tk.Text(root, width=50, height=10)
text_input.pack()

# 语音模式选择
var = tk.StringVar()
var.set("zh")
mode_choices = [("中文", "zh"), ("英文", "en")]
for text, mode in mode_choices:
    radio_btn = tk.Radiobutton(root, text=text, variable=var, value=mode)
    radio_btn.pack()

# 转换按钮
def convert():
    engine = pyttsx3.init()
    engine.setProperty("rate", 150)
    engine.setProperty("voice", var.get())
    engine.save_to_file(text_input.get("1.0", "end"), "output.mp3")
    engine.runAndWait()
    print("转换完成")

convert_btn = tk.Button(root, text="转换", command=convert)
convert_btn.pack()

# 保存文件按钮
def save():
    import os
    os.system("start output.mp3")

save_btn = tk.Button(root, text="保存文件", command=save)
save_btn.pack()

root.mainloop()
实现文本到语音转换

使用pyttsx3库实现文本到语音转换,同时可以设置语音速度和语音类型等属性。代码如下:

import pyttsx3

engine = pyttsx3.init()
engine.setProperty("rate", 150)
engine.setProperty("voice", "zh")
engine.say("你好,世界!")
engine.runAndWait()
实现保存语音文件

使用playsound库实现播放语音文件。代码如下:

import playsound

playsound.playsound("output.mp3")
运行程序

保存代码为text2speech.py,运行代码:

python text2speech.py

可以看到程序窗口:

Tkinter GUI窗口

输入文本并点击转换按钮:

转换过程

转换完成后可以点击保存文件按钮保存语音文件:

保存语音文件

总结

使用Tkinter和pyttsx3等库实现文本到语音转换功能非常简单,可以帮助我们快速开发各种语音相关的应用。