我正在用python和tkinter创建语音助手,并使用pyinstaller将其转换为可执行文件。命令行是:
pyinstaller -F -w main.py
这是我的代码:
import pyttsx3
from pyttsx3.drivers import sapi5
import speech_recognition as sr
import time
from tkinter import *
from datetime import datetime
engine = pyttsx3.init()
rate = engine.getProperty("rate")
engine.setProperty("rate", 175)
volume = engine.getProperty("volume")
engine.setProperty("volume", 0.75)
voices = engine.getProperty("voices")
engine.setProperty("voice", voices[2].id)
window = Tk()
var = StringVar()
var1 = StringVar()
class App:
def __init__(self):
window.title("Voice-Assistant")
window.geometry("1280x720")
window.resizable(False, False)
window.iconbitmap(r"C:\Users\itsju\Documents\KarenDef\Projects\Karen10\IconofKaren.ico")
karenW = Frame(window, bg="#3498db")
karenW.place(relwidth=1, relheight=0.5, x=5, y=365)
spokeW = Frame(window, bg="#1a5276")
spokeW.place(relwidth=1, relheight=0.5, x=5)
karenT = Label(karenW, bg="#3498db", fg="white", font=("Consolas", 16), textvariable=var1, wraplength=1230, justify="left")
karenT.place(x=10, y=28)
spokeT = Label(spokeW, bg="#1a5276", fg="white", font=("Consolas", 16), textvariable=var, wraplength=1230, justify="left")
spokeT.place(x=10, y=28)
karenL = Label(karenW, bg="#3498db", fg="white", font=("Calibri 11 bold underline"), text="Karen")
karenL.pack()
spokeL = Label(spokeW, bg="#1a5276", fg="light blue", font=("Calibri 11 bold underline"), text="You")
spokeL.pack()
def talk(self, audio):
var1.set(audio)
window.update()
engine.say(audio)
engine.runAndWait()
def get_command(self):
r = sr.Recognizer()
with sr.Microphone() as source:
var1.set("Listening...")
window.update()
audio = r.listen(source)
spoke = ""
try:
var1.set("Recognizing...")
window.update()
spoke = r.recognize_google(audio, language='nl')
var.set(spoke)
except sr.UnknownValueError:
var1.set("Couldn't get that!")
window.update()
time.sleep(0.25)
var.set("")
except sr.RequestError:
var1.set("Check your internet connection!")
window.update()
time.sleep(0.5)
var.set("")
return spoke.lower()
a = App()
while True:
spoke = get_command()
if 'hello' in spoke:
a.talk("Hello there!")
break
所以当这个被转换后,我运行这个程序,它将“监听…”打印到我的应用程序中。然后,如果我说了类似“你好”的话,我的程序就会识别它并说“你好!”返回不过,这是一个例外!如果我用一个终端转换我的程序,命令行:pyinstaller -F main.py
没有-w
它可以正常工作!但是我不想要一个终端和我的tkinter应用程序被打开
希望有人能帮我解决这个奇怪的问题!谢谢
我使用以下代码隐藏带有语音识别库的控制台:
相关问题 更多 >
编程相关推荐