0

我是 Python 和 PysimpleGUI 的新手。我想为语音到文本创建一个简单的 GUI。Pysimple GUI 能做到吗?或者除了 PysimpleGUI 之外还有其他可以工作的 GUI 框架吗?现在我已经完成了 GUI 的创建,但有一些问题,我想为说话按钮创建一个代码,以便在我想停止获取语音时始终获取语音和停止按钮,但我不知道如何停止。当我测试程序将冻结并出现错误:

>Traceback (most recent call last):
  File "C:/Users/sumet3412/PycharmProjects/Speech2Txt/testPysimpleGUI.py", line 123, in <module>
    value = r.recognize_google(audio, language="en-US")
  File "C:\Users\sumet3412\PycharmProjects\Speech2Txt\venv\lib\site-packages\speech_recognition\__init__.py", line 672, in recognize_google
    if "alternative" not in actual_result: raise UnknownValueError()
speech_recognition.UnknownValueError
import speech_recognition as sr
import  PySimpleGUI as sg

r = sr.Recognizer()
m = sr.Microphone()

layout = [[sg.Text('Converter', font='Helvetica 15')],
          [sg.ReadButton('Speak'), sg.ReadButton('Stop')],
          [sg.Output(size=(80, 10))],
          [sg.Exit()]]

window = sg.Window('Speech Recognition').Layout(layout)

while True:
    event,values = window.Read()
    if event is None or event == 'Exit':
        break
    elif event == 'Speak':
        with m as source:
            r.adjust_for_ambient_noise(source)
            audio = r.listen(source)
            value = r.recognize_google(audio, language="en-US")
            print(value)

window.Close()
4

1 回答 1

0

响应较晚,但我创建了类似的内容,您可以在此行设置持续时间:

audio= r.listen(source,5)

这将起作用,因为这意味着音频将被捕获 5 秒钟然后转录。希望这可以帮助。

于 2019-11-19T13:37:08.397 回答