python中文本到语音的循环失败

问题描述

下面给出的程序运行正常,但循环部分运行不正常。 这是错误消息: PermissionError: [Errno 13] Permission denied: 'TALK.mp3'。 该程序仅适用于第一次,当我重置它时,没有语音输出,并显示此异常。 任何人都可以向我解释代码有什么问题吗? 仅供参考,我是编程新手,所以如果您能详细说明解决方案,那将非常有帮助。

from tkinter import *
from gtts import gTTS
from playsound import playsound

root = Tk()
root.geometry('400x400')
root.config(bg = 'ghost white')
root.title('TEXT_TO_SPEECH')

Label(root,text = 'TEXT_TO_SPEECH',font='arial 20 bold',bg ='white smoke').pack()

Label(root,text ='Enter Text',font ='arial 15 bold',bg ='white smoke').place(x=15,y=70)

Msg = StringVar()

entry_field = Entry(root,textvariable =Msg,width ='50')
entry_field.place(x=18,y=100)

def Text_to_speech():
    Message = entry_field.get()
    speech = gTTS(text = Message)
    speech.save('TALK.mp3')
    playsound('TALK.mp3')

def Exit():
    root.destroy()

def Reset():
    Msg.set('')

Button(root,text = "PLAY",font = 'arial 15 bold',command = Text_to_speech,width =4).place(x=25,y=140)
Button(root,text = 'EXIT',command = Exit,bg = 'OrangeRed1').place(x=100,text = 'RESET',font='arial 15 bold',command = Reset).place(x=175,y =140)

root.mainloop()

解决方法

尝试以这种方式使用 os.remove() :


from tkinter import *
from gtts import gTTS
from playsound import playsound
import os

root = Tk()
root.geometry('400x400')
root.config(bg='ghost white')
root.title('TEXT_TO_SPEECH')

Label(root,text='TEXT_TO_SPEECH',font='arial 20 bold',bg='white smoke').pack()

Label(root,text='Enter Text',font='arial 15 bold',bg='white smoke').place(x=15,y=70)

Msg = StringVar()

entry_field = Entry(root,textvariable=Msg,width='50')
entry_field.place(x=18,y=100)


def Text_to_speech():
    os.remove('TALK.mp3')
    Message = entry_field.get()
    speech = gTTS(text=Message)
    speech.save('TALK.mp3')
    playsound('TALK.mp3')


def Exit():
    root.destroy()


def Reset():
    Msg.set('')


Button(root,text="PLAY",command=Text_to_speech,width=4).place(x=25,y=140)
Button(root,text='EXIT',command=Exit,bg='OrangeRed1').place(x=100,text='RESET',command=Reset).place(x=175,y=140)

root.mainloop()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...