浅谈PyQt5中语音识别结合多线程

前不久我用PyQt5写语音识别,发现在调用语音识别代码模块时,界面会卡成白屏,后来在网上找到了问题所在——没有使用多线程。。。于是我就在网上找到了使用方法,想和大家分享,一起学习进步!

1.为什么我们要使用多线程?

看看我当时界面卡白屏的情况及代码:(界面我是用Python自带的designer设计的,你们也可以直接编程,我比较懒^_^)

 py名:login

# author: xiaowen  time:2021/11/21
from PyQt5.QtWidgets import QPushButton
from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader
from PySide2.QtCore import *
from PyQt5.QtCore import *
from PySide2.QtCore import QFile
from PyQt5 import QtWidgets
import sys
import time
import wave
import pyaudio
from aip import AipSpeech
import text

class Qq:

    def __init__(self):
        # 从文件中加载UI定义
        qfile_qq = QFile("D:/gui/qq-ui.ui")
        qfile_qq.open(QFile.ReadOnly)
        qfile_qq.close()
        self.ui = QUiLoader().load(qfile_qq)

        self.ui.button2.clicked.connect(self.handleCalc)    # 当button2被按下,调用槽函数handleCalc,进行登录

        self.ui.button2.clicked.connect(self.text_air)      # 当button2被按下,调用text_air进行语音控制功能
    def handleCalc(self):
        info1 = self.ui.lineEdit1.text()
        info2 = self.ui.lineEdit2.text()

        if info1 == "35" and info2 == "12":
            self.ui.close()
            text1.ui.show()

    def text_air(self):
        print("开始语音...")
        ret = get_audio(3)  # 识别语音指令
        # 翻译语音,
        result = recognize(ret)
        print(''.join(result['result']))  # ''.join(a)    表示将列表a转变为str类型
        if result["err_no"] == 0:
            text = result["result"][0]
            print(text)

        if '统计' in ''.join(result['result']):
            text1.u
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值