Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import os
- from PyQt5.QtCore import Qt
- from PyQt5.QtWidgets import QMainWindow, QApplication, QSystemTrayIcon
- from PyQt5.QtGui import QIcon
- from tray_menu import TrayMenu
- from bot import Bot
- class CoputerVoiceControl(QMainWindow):
- def __init__(self):
- super().__init__()
- self.setWindowFlags(Qt.Desktop)
- self.tray_menu = TrayMenu(self)
- self.tray_menu.showMessage(
- "Голосовое управление компьютером",
- "Когда загорится зелёный скажите Анжела",
- QSystemTrayIcon.Information, 1000)
- self.bot = Bot()
- self.bot.status.connect(self.status_bot)
- self.bot.start()
- def status_bot(self, status):
- print(status)
- if status == "ready":
- self.tray_menu.setIcon(QIcon(self.resource_path("start.gif")))
- def resource_path(self, relative):
- if hasattr(sys, '_MEIPASS'):
- return os.path.join(sys._MEIPASS, relative)
- else:
- return os.path.join(os.path.abspath("."), relative)
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- coputer_voice_control = CoputerVoiceControl()
- coputer_voice_control.show()
- sys.exit(app.exec_())
- from PyQt5.QtCore import QCoreApplication
- from PyQt5.QtGui import QIcon
- class TrayMenu(QSystemTrayIcon):
- def __init__(self, parent):
- super().__init__(parent)
- self.parent = parent
- self.menu()
- def menu(self):
- self.show_action = QAction("О программе", self)
- self.quit_action = QAction("Выход", self)
- # self.show_action.triggered.connect(self.info)
- self.quit_action.triggered.connect(self.exit)
- self.tray_menu = QMenu(self.parent)
- self.tray_menu.addAction(self.show_action)
- self.tray_menu.addAction(self.quit_action)
- self.setContextMenu(self.tray_menu)
- self.setIcon(QIcon(self.resource_path("stop.gif")))
- self.show()
- def exit(self):
- self.hide()
- QCoreApplication.quit()
- def resource_path(self, relative):
- if hasattr(sys, '_MEIPASS'):
- return os.path.join(sys._MEIPASS, relative)
- else:
- return os.path.join(os.path.abspath("."), relative)
- import os
- import glob
- import speech_recognition
- from speech_recognition import (Microphone, Recognizer, UnknownValueError,
- RequestError)
- from PyQt5.QtCore import QThread, pyqtSignal, pyqtSlot
- class Bot(QThread):
- status = pyqtSignal(str)
- def __init__(self):
- super().__init__()
- self.microphone = Microphone()
- self.recognizer = Recognizer()
- @pyqtSlot()
- def run(self):
- print("Минутку тишины, пожалуйста...")
- with self.microphone as microphone:
- self.recognizer.adjust_for_ambient_noise(microphone)
- while True:
- self.status.emit("ready")
- try:
- with self.microphone as microphone:
- audio = self.recognizer.listen(microphone)
- self.status.emit("processing")
- text_value = self.recognizer.recognize_google(audio, language="ru_RU")
- print("Вы сказали: " + text_value)
- if text_value.lower() == "анжела":
- print("слушаю")
- self.commandExecution()
- except speech_recognition.UnknownValueError as error:
- self.status.emit("value_error")
- except speech_recognition.RequestError as error:
- self.status.emit("request_error")
- def commandExecution(self):
- print("Минутку тишины, пожалуйста...")
- #with self.microphone as source:
- # self.recognizer.adjust_for_ambient_noise(source)
- while True:
- self.status.emit("ready")
- try:
- with self.microphone as source:
- audio = self.recognizer.listen(source)
- self.status.emit("processing")
- text_value = self.recognizer.recognize_google(audio, language="ru_RU")
- print("Вы сказали комманду: " + text_value.lower())
- if text_value.lower() == "открой блокнот":
- os.popen("notepad")
- return
- elif text_value.lower() == "запусти игровой центр" or "открой игровой центр":
- if
- os.path.exists("C:\Users\ALEX\AppDataLocal\GameCenter\GameCenter.exe"):
- os.popen("C:\Users\ALEX\AppDataLocal\GameCenter\GameCenter.exe")
- else:
- os.popen("D:\Users\ALEX\AppDataLocal\GameCenter\GameCenter.exe")
- return
- except speech_recognition.UnknownValueError as error:
- self.status.emit("value_error")
- print("Command error: " + "UnknownValueError")
- except speech_recognition.RequestError as error:
- self.status.emit("request_error")
- print("Command error: " + "RequestError")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement