Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将实时语音与Tkinter GUI接口_Python_Tkinter_Speech Recognition_Pocketsphinx - Fatal编程技术网

Python 将实时语音与Tkinter GUI接口

Python 将实时语音与Tkinter GUI接口,python,tkinter,speech-recognition,pocketsphinx,Python,Tkinter,Speech Recognition,Pocketsphinx,我想将pocketsphinx livespeech与Python tkinter GUI接口,这样GUI在前端可见,而livespeech在后端工作;livespeech代码总是先运行,直到我停止代码,GUI才会显示;所以我将无法执行我所需的任务 #*********************************** IMPORTING MODULES***************** import tkinter from tkinter import* import tkinte

我想将pocketsphinx livespeech与Python tkinter GUI接口,这样GUI在前端可见,而livespeech在后端工作;livespeech代码总是先运行,直到我停止代码,GUI才会显示;所以我将无法执行我所需的任务

    #*********************************** IMPORTING MODULES*****************
import tkinter
from tkinter import*
import tkinter.messagebox
import sqlite3
import os
from pocketsphinx import LiveSpeech, get_model_path


conn = sqlite3.connect('portal.db')
c = conn.cursor()

window = tkinter.Tk()
window.title("Smart Notice Board")

top = Canvas(window,width=400,height=200)
top.pack(fill=X)

def portal():
    print("2")

button_5 = Button(text='PORTAL SYSTEM', height = 2, width=17, activebackground = '#33B5e5', bg = 'brown', fg = 'white',command  = portal )
top.create_window(80,80, anchor='nw', window = button_5) 

#****************  TEXT TO SPEECH CODE***************

model_path = get_model_path()

speech = LiveSpeech(
    verbose=False,
    sampling_rate=16000,
    buffer_size=2048,
    no_search=False,
    full_utt=False,
    hmm=os.path.join(model_path, 'en-us'),
    lm=os.path.join(model_path, '8582.lm'),
    dic=os.path.join(model_path, '8582.dict')
)

for phrase in speech:
    print(phrase)
    a=str(phrase)
    if a == "HOME":
        print('ok')
        portal()
        print('1')
结果附在下面; 只有现场演讲

当代码退出时,GUI打开


是时候了解一下我是如何按照你的建议行事的了;在函数中划分这两个代码并在代码中包含\多处理,但结果中唯一的区别是现在它只打开livespeech(代码中的fun2),而不打开tkinter GUI(fun)以前,当代码停止时,它会打开GUI,但现在它不会这样做,GUI应该是主线程。尝试将GUI作为主线程,然后调用livespeech,当我退出代码时,仍然会打开GUI。您可以检查线程和主循环之间管道的正确实现。是时候了解我已按照您的建议采取行动了;在函数中划分这两个代码并在代码中包含\多处理,但结果中唯一的区别是现在它只打开livespeech(代码中的fun2),而不打开tkinter GUI(fun)以前,当代码停止时它会打开GUI,但现在它不会这样做,GUI应该是主线程。尝试将GUI作为主线程,然后调用livespeech,当我退出代码时仍然会打开GUI。您可以检查线程和主循环之间管道的正确实现。