WItam, dopiero zaczynam naukę pythona, a więc jeśli jest tu jakiś głupi błąd, to proszę o wyrozumiałość. Sprawa wygląda tak. Mam pewwien skrypt, a konkretniej asystenta głosowego i wszystko działa pięknie po za jedną rzeczą. Po pewnym czasie przestaje on w ogóle reagować na komendy i jedyne co pozostaje to restart. Z góry dziękuję za każdą pomoc a tutaj kod:
# -*- coding: utf-8 -*-
from gtts import gTTS
import speech_recognition as sr
import os
import re
import sys
import webbrowser
import smtplib
import requests
import pyttsx3
import win32gui, win32con
from pynput.keyboard import Key, Controller
import time
import gc
def say(text):
engine = pyttsx3.init()
engine.say(text)
engine.runAndWait()
def myCommand():
gc.collect()
del gc.garbage[:]
r = sr.Recognizer()
with sr.Microphone() as source:
print('Czekam na rozkazy')
r.adjust_for_ambient_noise(source, duration=1)
audio = r.listen(source)
try:
command = r.recognize_google(audio, language="pl").lower()
print('Powiedziałeś: ' + command + '\n')
except sr.UnknownValueError:
print('Nie usłyszałem twojej komendy')
command = myCommand()
return command
def assistant(command):
if 'otwórz reddit' in command:
reg_ex = re.search('otwórz reddit (.*)', command)
url = 'https://www.reddit.com/'
if reg_ex:
subreddit = reg_ex.group(1)
url = url + 'r/' + subreddit
webbrowser.open(url)
print('Gotowe!')
elif 'otwórz stronę' in command:
reg_ex = re.search('otwórz stronę (.*)', command)
if reg_ex:
domain = reg_ex.group(1)
url = 'https://www.' + domain
webbrowser.open(url)
print('Gotowe!')
else:
pass
elif 'co tam' in command:
say('ciasteczko z superaśną czekoladą')
elif 'clear' in command:
os.system('CLS')
elif 'zamknij' in command:
keyboard = Controller()
time.sleep(2)
keyboard.press(Key.ctrl)
keyboard.press('w')
keyboard.release(Key.ctrl)
keyboard.release('w')
elif 'zmniejsz' in command:
Minimize = win32gui.GetForegroundWindow()
win32gui.ShowWindow(Minimize, win32con.SW_MINIMIZE)
elif 'szukaj' in command:
reg_ex = re.search('szukaj (.+)', command)
if reg_ex:
domain = reg_ex.group(1)
url = 'www.google.pl/search?client=opera&q=' + domain
webbrowser.open(url)
print('Gotowe!')
else:
pass
elif 'youtube' in command:
reg_ex = re.search('youtube (.+)', command)
if reg_ex:
domain = reg_ex.group(1)
url = 'https://www.youtube.com/results?search_query=' + domain
webbrowser.open(url)
print('Gotowe!')
else:
pass
elif 'exit' in command:
exit()
#opera
elif 'wyłącz operę' in command:
os.system("TASKKILL /F /IM opera.exe")
print('Gotowe!')
elif 'włącz operę' in command:
os.startfile("C:/Users/Ultro/AppData/Local/Programs/Opera/launcher.exe")
#steam
elif 'włącz steam' in command:
os.startfile("D:/Giereczki/Steam/Steam.exe")
elif 'wyłącz steam' in command:
os.system("TASKKILL /F /IM steam.exe")
say("Witaj mistrzu")
while True:
assistant(myCommand())
EDIT pojawił się jakiś nowy nie znany mi do tej pory error: