Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.06 KB | None | 0 0
  1. import sys
  2. import os
  3. from PyQt5.QtCore import Qt
  4. from PyQt5.QtWidgets import QMainWindow, QApplication, QSystemTrayIcon
  5. from PyQt5.QtGui import QIcon
  6. from tray_menu import TrayMenu
  7. from bot import Bot
  8.  
  9.  
  10. class CoputerVoiceControl(QMainWindow):
  11. def __init__(self):
  12. super().__init__()
  13.  
  14. self.setWindowFlags(Qt.Desktop)
  15.  
  16. self.tray_menu = TrayMenu(self)
  17. self.tray_menu.showMessage(
  18. "Голосовое управление компьютером",
  19. "Когда загорится зелёный скажите Анжела",
  20. QSystemTrayIcon.Information, 1000)
  21.  
  22. self.bot = Bot()
  23. self.bot.status.connect(self.status_bot)
  24. self.bot.start()
  25.  
  26. def status_bot(self, status):
  27. print(status)
  28. if status == "ready":
  29. self.tray_menu.setIcon(QIcon(self.resource_path("start.gif")))
  30.  
  31. def resource_path(self, relative):
  32. if hasattr(sys, '_MEIPASS'):
  33. return os.path.join(sys._MEIPASS, relative)
  34. else:
  35. return os.path.join(os.path.abspath("."), relative)
  36.  
  37. if __name__ == '__main__':
  38. app = QApplication(sys.argv)
  39. coputer_voice_control = CoputerVoiceControl()
  40. coputer_voice_control.show()
  41. sys.exit(app.exec_())
  42.  
  43. from PyQt5.QtCore import QCoreApplication
  44. from PyQt5.QtGui import QIcon
  45.  
  46.  
  47. class TrayMenu(QSystemTrayIcon):
  48. def __init__(self, parent):
  49. super().__init__(parent)
  50. self.parent = parent
  51. self.menu()
  52.  
  53. def menu(self):
  54. self.show_action = QAction("О программе", self)
  55. self.quit_action = QAction("Выход", self)
  56.  
  57. # self.show_action.triggered.connect(self.info)
  58. self.quit_action.triggered.connect(self.exit)
  59.  
  60. self.tray_menu = QMenu(self.parent)
  61.  
  62. self.tray_menu.addAction(self.show_action)
  63.  
  64. self.tray_menu.addAction(self.quit_action)
  65.  
  66. self.setContextMenu(self.tray_menu)
  67.  
  68. self.setIcon(QIcon(self.resource_path("stop.gif")))
  69.  
  70. self.show()
  71.  
  72. def exit(self):
  73. self.hide()
  74. QCoreApplication.quit()
  75.  
  76. def resource_path(self, relative):
  77. if hasattr(sys, '_MEIPASS'):
  78. return os.path.join(sys._MEIPASS, relative)
  79. else:
  80. return os.path.join(os.path.abspath("."), relative)
  81.  
  82. import os
  83. import glob
  84. import speech_recognition
  85. from speech_recognition import (Microphone, Recognizer, UnknownValueError,
  86. RequestError)
  87. from PyQt5.QtCore import QThread, pyqtSignal, pyqtSlot
  88.  
  89.  
  90. class Bot(QThread):
  91. status = pyqtSignal(str)
  92. def __init__(self):
  93. super().__init__()
  94.  
  95. self.microphone = Microphone()
  96. self.recognizer = Recognizer()
  97.  
  98. @pyqtSlot()
  99. def run(self):
  100. print("Минутку тишины, пожалуйста...")
  101. with self.microphone as microphone:
  102. self.recognizer.adjust_for_ambient_noise(microphone)
  103. while True:
  104. self.status.emit("ready")
  105. try:
  106. with self.microphone as microphone:
  107. audio = self.recognizer.listen(microphone)
  108. self.status.emit("processing")
  109. text_value = self.recognizer.recognize_google(audio, language="ru_RU")
  110. print("Вы сказали: " + text_value)
  111. if text_value.lower() == "анжела":
  112. print("слушаю")
  113. self.commandExecution()
  114. except speech_recognition.UnknownValueError as error:
  115. self.status.emit("value_error")
  116. except speech_recognition.RequestError as error:
  117. self.status.emit("request_error")
  118.  
  119. def commandExecution(self):
  120. print("Минутку тишины, пожалуйста...")
  121. #with self.microphone as source:
  122. # self.recognizer.adjust_for_ambient_noise(source)
  123. while True:
  124. self.status.emit("ready")
  125. try:
  126. with self.microphone as source:
  127. audio = self.recognizer.listen(source)
  128. self.status.emit("processing")
  129.  
  130. text_value = self.recognizer.recognize_google(audio, language="ru_RU")
  131. print("Вы сказали комманду: " + text_value.lower())
  132.  
  133. if text_value.lower() == "открой блокнот":
  134. os.popen("notepad")
  135. return
  136. elif text_value.lower() == "запусти игровой центр" or "открой игровой центр":
  137. if
  138. os.path.exists("C:\Users\ALEX\AppDataLocal\GameCenter\GameCenter.exe"):
  139.  
  140. os.popen("C:\Users\ALEX\AppDataLocal\GameCenter\GameCenter.exe")
  141. else:
  142.  
  143. os.popen("D:\Users\ALEX\AppDataLocal\GameCenter\GameCenter.exe")
  144. return
  145. except speech_recognition.UnknownValueError as error:
  146. self.status.emit("value_error")
  147. print("Command error: " + "UnknownValueError")
  148. except speech_recognition.RequestError as error:
  149. self.status.emit("request_error")
  150. print("Command error: " + "RequestError")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement