код перестаёт распознавать голос после первого ввода (speech_recognition)
стало интересно попробовать сделать своего "голосового помощника", столкнулся с проблемой, что вводя некоторые команды, такие как "открой сайт Вконтакте", код выполняет, то, что должен, но после этого перестаёт реагировать на голос и распознавать речь. Такие команды, как "профиль", где код просто открывает ссылку на мой профиль вконтакте, код выполняет, и при повторном вводе этой же команды он продолжает работать, распознавать речь и выполнять команду. Также я изучал питон и модули самостоятельно, поэтому буду рад узнать о возможных доработках и упрощениях того, что я написал. Важно отметить, что при запуске кода и во время его работы, должна быть включена английская раскладка, иначе код не будет вводить текст в поиске
from tkinter import Menu
import speech_recognition as sr
import os
import pykeyboard as PyKeyboard
import numpy
import pyttsx3
import pyaudio
import webbrowser
import datetime
import time
import pyautogui as pg
import pyperclip3 as pc
from fuzzywuzzy import fuzz
pk = PyKeyboard
mic = sr.Microphone(device_index=1)
r = sr.Recognizer()
koef = 0
while koef != 1:
koef = 0
with mic as source:
print("базарь че надо")
audio = r.listen(source)
try:
voice = r.recognize_google(audio, language = 'ru-RU')
print('[log] распознано:', voice)
YT = 'открой канал'
SITE = 'открой сайт'
cmd = voice.split(' ')
#print(cmd)
if len(cmd) < 2:
print('вы сказали ', voice)
command = voice
if len(cmd) > 1:
command = cmd[0] + ' ' + cmd[1]
print('команда: ', command)
search = voice.split(' ',2)
#print(search)
if len(search) < 3:
rsearch = ''
elif len(search) > 2:
rsearch = search[2]
print('найти: ', rsearch)
if command =='профиль':
webbrowser.open('удалил ссылку')
if command == YT:
pc.copy(rsearch)
webbrowser.open('https://www.youtube.com/')
pg.click(851, 94)
time.sleep(3)
pg.click(851, 94)
time.sleep(1)
pg.hotkey('ctrl', 'v')
pg.press('enter')
print('готово')
if command == 'Открой сайт':
webbrowser.open('https://www.google.ru/')
pc.copy(rsearch)
pg.click(963, 471)
time.sleep(1)
pg.hotkey('ctrl', 'v')
pg.press('enter')
if voice == 'До встречи':
koef = 1
except sr.UnknownValueError:
print("[log] не распознано")
except sr.RequestError as e:
print("Could not request results from Google Speech Recognition service; {0}".format(e))