python - Python 语音识别在基于窗口的 GUI 应用程序中不起作用(它是一个带有隐藏控制台的 .exe 应用程序)
问题描述
我使用 pyqt5 python 创建了一个桌面应用程序。它可以从音频文件中生成文本。(为此我正在使用 python 语音识别)如果我使用 vs code、pycharm 和终端运行脚本,它工作得很好。但是当我将它转换为 .exe 文件并尝试运行它时;我可以运行应用程序 (GUI),但语音识别不起作用。但是,我也注意到,如果我将 .py 文件转换为基于控制台的 .exe,它也可以完美运行。这意味着语音识别功能在基于控制台的窗口中工作,而不仅仅是在基于窗口的应用程序中。但我的目标是创建一个基于窗口的应用程序,而不是基于控制台的应用程序。我认为问题出在语音识别功能上。
我使用这个命令来创建一个窗口化的 exe:pyinstaller --noconfirm --onefile --windowed "Python_file.py"
和我的语音识别功能
import speech_recognition as sr
class ThreadClass(QtCore.QThread):
any_signal = QtCore.pyqtSignal(str)
def __init__(self, parent=None):
super(ThreadClass, self).__init__(parent)
self.is_running = True
def run():
r = sr.Recognizer()
try:
audio = 'path/audio.wav'
text = r.recognize_google(audio, language= 'en-us')
except Exception as e:
print(e)
return e
self.any_signal.emit(text)
def stop(self):
self.is_running = False
self.terminate()
class Ui_Text_genarator(QMainWindow):
def __init__(self):
super(Ui_Text_genarator, self).__init__()
uic.loadUi('A_to_T.ui', self)
self.Generate_pushButton.clicked.connect(self.generate)
def generate(self):
self.thread = ThreadClass(lang, path, parent=None)
self.thread.start()
self.thread.any_signal.connect(self.my_function)
def my_function(self, text):
self.textEdit.setText(text)
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = Ui_Text_genarator()
ex.show()
sys.exit(app.exec_())
解决方案
推荐阅读
- python - Canny 边缘检测不适用于高斯模糊图像
- c# - Unity3D:检测鼠标是否单击了 UI 元素?
- javascript - 使用 Firebase 进行 Shopify 身份验证验证?
- java - Ctrl + Shift + L 快速搜索在 STS Spring Tools 4 和 Eclipse 中不起作用
- reactjs - 使用 useState 钩子时计数器不增加
- powershell - 使用 Add() 方法填充数据时,无法在 Powershell 中使用 foreach 迭代字符串 HashSet
- sql - 没有重复的源目标表
- c++ - 访问模板化成员数组时出现问题
- python - 在 Python 中使用 re.sub 时如何排除单词?
- python - 不间断服务器客户端连接[Python]