• Не Работает голосовой помощник?

    @Pilu Автор вопроса
    вот теперь выдаёт ошибку , не нашел это в коде В метод speak перед самими командами добавь:
    speak_engine = pyttsx3.init()
    Можешь исправить код , а то вообще не понимаю ?

    IndentationError: expected an indented block
    PS C:\Users\65> & D:/Python/python.exe c:/Users/65/Documents/sdc.py
    File "c:/Users/65/Documents/sdc.py", line 26
    try :
    ^
    IndentationError: expected an indented block
    PS C:\Users\65>

    import os
    import time
    import speech_recognition as sr
    from fuzzywuzzy import fuzz
    import pyttsx3
    import datetime

    # настройки
    opts = {
    "alias": ('джарвис'),
    "tbr": ('скажи','расскажи','покажи','сколько','произнеси'),
    "cmds": {
    "ctime": ('текущее время','сейчас времени','который час'),
    "stupid1": ('расскажи анекдот','рассмеши меня','ты знаешь анекдоты')
    }
    }

    # функции
    def speak(what):
    print(what)
    speak_engine = pyttsx3.init()
    speak_engine.say(what)
    speak_engine.runAndWait()

    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()

    # распознаем и выполняем команду
    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': '', 'percent': 0}
    for c,v in opts['cmds'].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 == 'stupid1':
    # рассказать анекдот
    speak("Мой разработчик не научил меня анекдотам ... Ха ха ха")

    else:
    print('Команда не распознана, повторите!')

    speak_engine = pyttsx3.init()

    speak("Добрый день, Егор")
    speak("Джарвис слушает")

    #Запуск программы
    r = sr.Recognizer()
    m = sr.Microphone(device_index = 2) # active microphone index

    while True:
    with m as source:
    audio = r.listen(source)
    callback(r, audio)