Вот сам код причём в console нет какой-либо ошибки а асистент не хочет говорить... не пойму в чём проблема
Python:
import os
import time
import speech_recognition as sr
from fuzzywuzzy import fuzz
import pyttsx3
import datetime
opts = {
"alias": ('змей', 'гарыныч', 'горыныч', 'змейка', 'змеечка', 'змеюсик'),
"tbr": ('скажи', 'произнеси', 'переведи', 'покажи','сколько','расскажи', 'пошути', 'покажи', 'покаж'),
"cmds": {
"ctime": ("сколько время", "текущее время", "время", "который час", "тайм", "сейчас времени"),
"radio": ("включи радио", "вруби радио", "вруби музыку", "включи музыку", "вруби музло", "влючи музло", "вруби музон", "включи музон", "спой песню", "спой песенку", "включи песню", "включи песенку", "вруби песню"),
"stupid1": ("пошути", "расскажи анекдот", "расскажи шутку", "анекдот", "рассмеши", "рассмеши меня", "рассмеши нас"),
}
}
# Функции
def speak(what):
print( what )
speak_engine.say( what )
speak_engine.runAndWait()
speak_engine.stop()
def callback(recognizer, audio):
try:
voice = recognizer.recognize_google(audio, language = "ru-RU").lower()
print("[log] Распознано: " + voice)
if voice.startswith(opts["alias"]):
cmd = voice
for x in opts["alias"]:
cmd = cmd.replace(x, "").strip()
for x in opts ["tbr"]:
cmd = cmd.replace(x, "").strip()
# raspoznayom i vipolnyaem comandu
cmd = recognize_cmd(cmd)
execute_cmd(cmd["cmd"])
except sr.UnknownValueError:
print("[log] Голос не распознан")
except sr.RequestError as e:
print("[log] Неизвестная ошибка!")
def recognize_cmd(cmd):
RC = {"cmd": '', precent: 0}
for c, v in opts ['cmd'].items():
for x in v:
vrt = fuzz.ratio(cmd, x)
if vrt > RC['percent']:
RC['cmd'] = c
RC['percent'] = vrt
return RC
def execute_cmd(cmd):
if cmd == 'ctime':
now = datetime.datetime.now()
speak("Сейчас " + str(now.hour) + "часов" + str(now.minute) + "минут")
elif cmd == 'radio':
pass
elif cmd == 'stupid1':
speak("Я не умею петь ведь я змея и разраб не научил меня..., однако говорящая")
else:
speak("Команда не распознана"),
print("Команда не распознана")
# запуск
r = sr.Recognizer()
m = sr.Microphone(device_index = 0)
speak_engine = pyttsx3.init()
speak("Здравствуйте")
speak("Змейка слушает")
stop_listening = r.listen_in_background(m, callback)
while True: time.sleep(0.1) # loop