首页 > 解决方案 > 如果我没有说什么,语音识别就会停止,如何让它一直在听

问题描述

想要创建 2 个按钮来启动语音识别并继续,直到我点击按钮完成。问题是当我单击开始并且没有说它停止时:

import tkinter as tk
import speech_recognition as sr

window = tk.Tk()
window.title("Voice to Text")
window.geometry("300x350")

def startvoice():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("speak now")
        audio = r.listen(source)
    try:
        startvoice.voice2text = r.recognize_google(audio)
        print("you said:{}".format(startvoice.voice2text))
    except:
        print("Your voice not clear")

def finished():
    text_field.focus()
    text_field.delete('1.0', tk.END)
    text_field.insert('1.0', startvoice.voice2text)

text_field = tk.Text(master=window, height=20, width=40)
text_field.grid(column=0, row=2)


button1 = tk.Button(text="Start", width=16, command=startvoice)
button1.grid(column=0, row=0)

button1 = tk.Button(text="finish", width=16, command=finished)
button1.grid(column=0, row=1)


window.mainloop()

标签: pythonspeech-recognition

解决方案


根据文档,该listen方法有一个超时参数,这可能是您正在寻找的,例如

audio = r.listen(source, timeout=60)

会让你在放弃前一分钟。


推荐阅读