Advertisement
xosski

Voice 2 text

Oct 29th, 2024
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.42 KB | None | 0 0
  1. from libs_voice import *
  2.  
  3. get_user_name = f'''#!/bin/bash
  4. current_user=$(whoami);
  5. echo $current_user
  6. exit;# Завершаем выполнение скрипта
  7. '''
  8. # Убивает текущий процесс, запущенный текущим пользователем и соответствующий имени исполняемого скрипта.
  9. def kill_current_script():# Получаем идентификатор активного окна
  10. result = str(subprocess.run(['ps', 'aux'], stdout=subprocess.PIPE, text=True).stdout) # print(result)
  11. name_scrypt = sys.argv[0]
  12. # Вызываем скрипт
  13. user = subprocess.run(['bash'], input=get_user_name, stdout=subprocess.PIPE, text=True).stdout.strip()
  14. for line in result.split("\n"):
  15. user_name = ' '.join(line.split()[0]).replace(" ", "")
  16. process_name = ' '.join(line.split()[10:])
  17. if user_name==user and name_scrypt in process_name:
  18. pid_id = int(line.split()[1]) # или используйте другой индекс, если нужны другие данные
  19. # print(process_name)
  20. f = '''#!/bin/bash
  21. kill {} '''.format(pid_id)
  22. subprocess.call(['bash', '-c', f])#
  23.  
  24.  
  25. mutex = threading.Lock()# Создаем мьютекс
  26. def mic(driver):
  27. mutex.acquire() # Захватываем мьютекс
  28. primary_button = driver.find_element("id", "mic")
  29. style_value = primary_button.get_attribute("style")
  30. pattern = r"--(\w+)"
  31. result = re.search(pattern, style_value) # time.sleep(0.75)
  32. if result:
  33. res= (result.group(1))
  34. if res != "secondary-color": # print("on")
  35. driver.find_element("id", "mic").click() # выключить запись голоса
  36. time.sleep(0.75)
  37. driver.find_element("id", "mic").click() # включить запись голоса
  38. time.sleep(0.75)
  39. else:
  40. time.sleep(0.75)
  41. driver.find_element("id", "mic").click() # включить запись голоса
  42.  
  43. mutex.release() # Освобождаем мьютекс
  44.  
  45. def a():
  46. while 1:
  47. with keyboard.Listener(on_release=on_release, on_press=on_press) as listener:
  48. listener.join()
  49. driver=0
  50. try:
  51. prefs = {'safebrowsing.enabled': True,
  52. "credentials_enable_service": False,
  53. "profile.password_manager_enabled": False,
  54. "credentials_enable_service": False,
  55. "profile.password_manager_enabled": False,
  56. "profile.managed_default_content_settings.images": 0, # - Отключить загрузку CSS:
  57. # "profile.default_content_setting_values.javascript": 2, # - Отключить загрузку JavaScript:
  58. "profile.default_content_setting_values.cache": 0 # - Включить кэширование:
  59. }
  60. option = webdriver.ChromeOptions()
  61. option.add_experimental_option("prefs", prefs)
  62. option.add_experimental_option("excludeSwitches", ['enable-automation']) # убрать окно
  63. option.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36")
  64. option.add_argument("--use-fake-ui-for-media-stream") # звук
  65. option.add_argument("--disable-popup-blocking") # блок всплывающих окон.
  66. option.add_argument("--disable-blink-features=AutomationControlled")
  67. option.add_argument('--disable-web-security')
  68. option.add_argument("--disk-cache-size=0")
  69. option.add_argument("--media-cache-size=0")
  70. option.add_argument("--automatic-wait-for-preview")
  71. option.add_argument("--enable-features=WebRtcHideLocalIpsWithMdns")
  72. option.add_argument("--disable-site-isolation-trials")
  73. option.binary_location = '/usr/bin/google-chrome'
  74. option.add_argument("--disable-session-crashed-bubble")
  75. option.add_argument('--disable-infobars')
  76. option.add_argument('--user-data-dir=/home/egor/.config/google-chrome')
  77.  
  78. t1 = threading.Thread(target=a)
  79. t1.start()
  80. except Exception as ex1: # print(ex1) # driver.close() # driver.quit()
  81. pass
  82. get_user_name = f'''#!/bin/bash
  83. current_user=$(whoami);
  84. echo $current_user
  85. exit;# Завершаем выполнение скрипта
  86. '''# Убивает текущий процесс, запущенный текущим пользователем и соответствующий имени исполняемого скрипта.
  87. def kill_current_script():# Получаем идентификатор активного окна
  88. result = str(subprocess.run(['ps', 'aux'], stdout=subprocess.PIPE, text=True).stdout) # print(result)
  89. name_scrypt = sys.argv[0]
  90. user = subprocess.run(['bash'], input=get_user_name, stdout=subprocess.PIPE, text=True).stdout.strip() # Вызываем скрипт
  91. for line in result.split("\n"):
  92. user_name = ' '.join(line.split()[0]).replace(" ", "")
  93. process_name = ' '.join(line.split()[10:])
  94. if user_name==user and name_scrypt in process_name:
  95. pid_id = int(line.split()[1]) # или используйте другой индекс, если нужны другие данные # print(process_name)
  96. f = '''#!/bin/bash
  97. kill {} '''.format(pid_id)
  98. subprocess.call(['bash', '-c', f])#
  99.  
  100. def f1():
  101. try:
  102. global driver
  103. driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),
  104. options=option)
  105. driver.set_window_size(624, 568) # optiol
  106. driver.set_window_position(600, 250) # Открываем новое окно
  107. driver.get("https://www.speechtexter.com") # открыть сайт
  108. k.save_driver(driver)
  109. time.sleep(1.5)
  110. driver.find_element("id", "mic").click() # включить запись голоса # time.sleep(2.91)
  111. driver.minimize_window()
  112. except Exception as ex2: #
  113. if 'no such window: target window' in str(ex2):
  114. print("exit no such window: target window already closed")
  115. error_closse(driver) # print(ex2) # print("error")
  116. time.sleep(5)
  117. pass
  118. class MyThread(QtCore.QThread): # Определение класса потока
  119. mysignal = QtCore.pyqtSignal(str) # Объявление сигнала
  120. error_signal = QtCore.pyqtSignal(str) # Добавлено объявление сигнала ошибки
  121.  
  122. def __init__(self, parent=None): # Конструктор класса потока
  123. super(MyThread, self).__init__(parent) # Вызов конструктора базового класса
  124. f1()
  125. def run(self): # Метод, исполняемый потоком)
  126. while True: # Цикл, работающий постоянно
  127. try:# time.sleep(0.31)
  128. text0 = driver.find_element("id", "textEditor").text
  129. text = str(text0)
  130. if len(text) != 0 and text != None and text != "None":
  131. driver.find_element("id", "textEditor").clear() # удалить старый текст.
  132. text = str(text.lower()) + str(" ")
  133. text = repeat(text, k)
  134. if k.get_flag() == True:
  135. k.set_flag(False)
  136. text0 = text[0].upper() + text[1:]
  137. press_keys(text0)
  138. else:
  139. press_keys(text)
  140. print("+++++++++++++++")
  141. mic(driver)
  142. text = "None"
  143. except KeyboardInterrupt:
  144. error_closse(driver)
  145. break
  146. except Exception as ex2:
  147. print(ex2)
  148.  
  149. class MyWindow(QtWidgets.QWidget): # Определение класса главного окна
  150. def __init__(self, parent=None): # Конструктор класса окна
  151. self.mic = True
  152. super(MyWindow, self).__init__(parent) # Вызов конструктора базового класса
  153. self.tray_icon = QSystemTrayIcon(QtGui.QIcon("/mnt/807EB5FA7EB5E954/софт/виртуальная машина/linux must have/python_linux/Project/голос.png"), self)
  154.  
  155. menu = QMenu() # Создание контекстного меню для иконки в системном трее
  156. quit_action = QAction("Quit", self)
  157. quit_action.triggered.connect(self.quit_t) # Используйте метод quit, определённый ниже
  158. menu.addAction(quit_action)
  159.  
  160. self.mythread = MyThread() # Создание экземпляра потока
  161.  
  162. # Установка меню в трей
  163. self.tray_icon.setContextMenu(menu)
  164. self.tray_icon.setToolTip("OFF") # Установка начальной подсказки
  165. self.tray_icon.activated.connect(self.on_tray_icon_activated) # Привязываем обработчик к сигналу нажатия
  166. self.tray_icon.show()
  167. self.mythread.start()
  168.  
  169. def on_tray_icon_activated(self): # Данная функция
  170. driver.set_window_size(624, 568) # optiol
  171. driver.set_window_position(600, 250) # Открываем
  172. driver.find_element("id", "mic").click() # вкл-выкл запись голоса
  173. time.sleep(0.25)
  174. if self.mic== True:
  175. self.mic=False
  176. else:
  177. self.mic=True#
  178. self.tray_icon.setToolTip("ON" if self.mic else "OFF")
  179. self.tray_icon.show()
  180. driver.minimize_window()
  181.  
  182. def quit_t(self): # Метод обработки события закрытия окна
  183. QApplication.quit()
  184. kill_current_script()
  185. app = QApplication(sys.argv)
  186. window = MyWindow()
  187. sys.exit(app.exec_())
Tags: Voice google
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement