基于PyQT5、PocketSphinx的python语音识别小程序

基于PyQT5,PocketSphinx的python语音识别小程序 1,使用说明 1,1 项目简介 参照微软cotana的工作方式,编写自己的一个python语音助手程序

本文包含相关资料包-----> 点击直达获取<-------

基于PyQT5、PocketSphinx的python语音识别小程序

1.使用说明

1.1 项目简介

参照微软cotana的工作方式,编写自己的一个python语音助手程序,借助PyQt5和Pipy,创建可视化窗口,能实现基本的语音识别功能,同时根据几个特定的关键词执行简单的行动(如music,readme等)。

1.2 项目功能要求

  • 实现语音识别,并将识别的内容在屏幕上打印出来

  • 设置几个命令关键词(music,readme),并实现相应的行动。若识别出的内容中包含设置的几个关键词,则程序执行相应的行动。

  • 设置两种识别模式:PocketSphinx中包含7个Recognizer API:程序中使用了两个API:recognize_sphinx和recognize_google。(两种识别模式可由用户自行选择,其中recognize_sphinx可直接在本地运行,但识别精度较低;recognize_google识别精度较高,但是使用recognize_google需要处于联网状态下且IP地址需要在境外,否则语音识别会出现错误)

  • 设置文本框:用户可直接在文本框中输入命令,其执行效力与语音输入等效

2.程序设计与实现

2.1 设计

python class Ui_MainWindow(object):

Ui_Mainwindow类加载图形化用户界面,控制界面布局,类中包含各种Label,PushButton,MenuBar控件。

python class myWindow(QtWidgets.QMainWindow):

mywindow类处理交互逻辑,类中包含各种执行函数,同时实现控件与函数的连接。

2.2 主要函数实现

声音监听与处理函数

```python def listen(self): # Working with Microphones mic = sr.Recognizer() with sr.Microphone() as source: # use the default microphone as the audio source audio = mic.listen(source) # listen for the first phrase and extract it into audio data try: if self.isgoogle: content = mic.recognize_google(audio) else: content = mic.recognize_sphinx(audio) except sr.RequestError: self.ui.label.setText("Something was wrong! Try again......")

COMMEND = ["music", "open"]
commend_is_music = re.search(COMMEND[0].lower(), content.lower())
commend_is_file = re.search(COMMEND[1].lower(), content.lower())
if commend_is_music:
    self.ui.label.setText("you said: \" " + content + "\"")
    win32api.ShellExecute(0, 'open', 'D:\\网易云音乐\\CloudMusic\\cloudmusic.exe', '', '', 1)
elif commend_is_file:
    self.ui.label.setText("you said: \"" + content + "\"")
    win32api.ShellExecute(0, 'open', 'D:\\Notpad++\\Notepad++\\notepad++.exe', '', '', 0)
else:
    self.ui.label.setText("you said: \" " + content + "\"\nIt's not a valid command.")

```

创建监听线程

python def listen_thread(self): self.ui.label.setText("I'm listening...... ") t1 = threading.Thread(target=self.listen) t1.setDaemon(True) t1.start()

文本处理函数

python def text_changed(self): content = self.ui.textbox.text() print(content) COMMEND = ["music", "open"] commend_is_music = re.search(COMMEND[0].lower(), content.lower()) commend_is_file = re.search(COMMEND[1].lower(), content.lower()) if commend_is_music: self.ui.label.setText("you typed: \" " + content + "\"") win32api.ShellExecute(0, 'open', 'D:\\网易云音乐\\CloudMusic\\cloudmusic.exe', '', '', 1) elif commend_is_file: self.ui.label.setText("you typed: \"" + content + "\"") win32api.ShellExecute(0, 'open', 'D:\\Notpad++\\Notepad++\\notepad++.exe', '', '', 0) else: self.ui.label.setText("you typed: \" " + content + "\"\nIt's not a valid command.")

创建文本处理线程

python def text_thread(self): t2 = threading.Thread(target=self.text_changed) t2.setDaemon(True) t2.start()

连接各类控件与相应函数

python self.ui.recognize_btn.clicked.connect(self.listen_thread)#语音识别按钮连接监听线程 self.ui.sphinx_bar.triggered.connect(self.sphinxbar_recognize)#sphinx模式触发 self.ui.google_bar.triggered.connect(self.googlebar_recognize)#google模式触发 self.ui.text_btn.clicked.connect(self.text_thread)#文本框输入确认按钮连接文本处理线程

3.测试截图

参考文献

  • 音乐智能耳机后台管理系统的设计与实现(中国地质大学(北京)·吕莹)
  • 基于用户行为的音乐推荐系统设计与实现(华中科技大学·郝陆风)
  • 面向垂直领域的知识图谱构建和智能问答系统设计与实现(北京邮电大学·王楠楠)
  • 基于SSM框架的语音管理平台的设计与开发(浙江工业大学·赵雨滴)
  • 基于分布式任务队列的表达力评测系统设计与实现(南京大学·褚东宇)
  • 音乐智能耳机后台管理系统的设计与实现(中国地质大学(北京)·吕莹)
  • 互动课堂系统的设计与实现(北京交通大学·李松)
  • 华泰平台部门小AI智能客服系统的设计与实现(南京大学·刘德宽)
  • 基于云服务的智能语音技术在智能家居中的应用(南京邮电大学·唐文凯)
  • 基于知识图谱的开放空间知识采集系统(中南民族大学·马荣香)
  • 基于云服务的智能语音技术在智能家居中的应用(南京邮电大学·唐文凯)
  • 手语合成系统的研究与实现(北京邮电大学·陶然)
  • 音乐智能耳机后台管理系统的设计与实现(中国地质大学(北京)·吕莹)
  • 智能电视语音搜索控制系统的设计与实现(华中科技大学·江哲)
  • 基于神经网络的英语学习app系统研发(东华大学·陈风驾)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码助手 ,原文地址:https://bishedaima.com/yuanma/35562.html

相关推荐

发表回复

登录后才能评论