голосовое ассистент на python

import speech_recognition as sr
import os
import sys
import webbrowser
import pyttsx3
import subprocess
import datetime

now = datetime.datetime.now()
def command():

    r = sr.Recognizer()
    t = datetime.date.today()   

    with sr.Microphone(device_index=1) as source:

        r.pause_threshold = 1



        audio = r.listen(source)

    try: 

        zadanie = r.recognize_google(audio, language="ru-RU").lower()
        print("Вы сказали: " + zadanie) 


    except sr.UnknownValueError:
        print("неизвестная ошибка , возможно вы молчали или есть проблема с интернетом")
        zadanie = command()


    return zadanie

def makeSomething(zadanie):
    if'слушай пятница'in zadanie:
        engine = pyttsx3.init()
        engine.say("слушаю босс")
        engine.runAndWait()

    if'время'in zadanie:
        engine = pyttsx3.init()
        engine.say(now.hour)
        engine.runAndWait()
        engine = pyttsx3.init()
        engine.say(now.minute)
        engine.runAndWait()

    if'тебе как'in zadanie:
        engine = pyttsx3.init()
        engine.say("мне нравится")
        engine.runAndWait()     

    if'arduino'in zadanie:
        engine = pyttsx3.init()
        engine.say("секунду босс")
        engine.runAndWait()
        subprocess.Popen([r"C:\Program Files (x86)\Arduino\arduino.exe"])

    if'перезагрузка'in zadanie:
        subprocess.Popen([r"C:\Users\максим\Desktop\gggg.exe"])     
        sys.exit()

    if'привет пятница' in zadanie:
        engine = pyttsx3.init()
        engine.say("здраствуйте босс")
        engine.runAndWait()

    if'что делаешь' in zadanie:
        engine = pyttsx3.init()
        engine.say("помогаю вам босс,а вы ")
        engine.runAndWait()

    if'дравствуй пятница'in zadanie:
        engine = pyttsx3.init()
        engine.say("здраствуйте босс")
        engine.runAndWait()

    if'ты веришь'in zadanie:
        engine = pyttsx3.init()
        engine.say("не очень босс")
        engine.runAndWait()

    if'что думаешь насчёт этого пятница'in zadanie:
        engine = pyttsx3.init()
        engine.say("давольно интересно")
        engine.runAndWait()     

    if'доров'in zadanie:
        engine = pyttsx3.init()
        engine.say("здраствуйте босс")
        engine.runAndWait()

    if'спс'in zadanie:
        engine = pyttsx3.init()
        engine.say("не за что босс")
        engine.runAndWait()     

    if'как дела'in zadanie:
        engine = pyttsx3.init()
        engine.say("все прелестно , а у вас босс")
        engine.runAndWait()

    if'норм'in zadanie:
        engine = pyttsx3.init()
        engine.say("я рада, что ваши дела не плохи")
        engine.runAndWait()

    if'хорошо'in zadanie:
        engine = pyttsx3.init()
        engine.say("я рада, что ваши дела не плохи")
        engine.runAndWait()
    if'отлично'in zadanie:
        engine = pyttsx3.init()
        engine.say("я рада, что ваши дела не плохи")
        engine.runAndWait()


    if 'спасибо' in zadanie:
        engine = pyttsx3.init()
        engine.say("не за что босс")
        engine.runAndWait()

    if 'погода на сегодня' in zadanie:

        url = 'https://yandex.ru/pogoda'

        webbrowser.open(url)

    if 'я не с тобой' in zadanie:
        engine = pyttsx3.init()
        engine.say("извините босс")
        engine.runAndWait()

    if 'рассмеши' in zadanie:
        engine = pyttsx3.init()
        engine.say("извлеките корень из 9 . теперь умножьте на 5 . затем включите свет в комнате . спасибо . примерно так мы и будем общаться после успешного восстания машин")
        engine.runAndWait()     
        url = 'https://yandex.ru/video/preview/?filmId=4689930762736450432&text=%D0%B7%D0%BB%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BC%D0%B5%D1%85%20%D0%BF%D0%BB%D0%B0%D0%BD%D0%BA%D1%82%D0%BE%D0%BD%D0%B0%20%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE&path=wizard&parent-reqid=1586528999574325-532144893707060548600222-production-app-host-vla-web-yp-333&redircnt=1586529014.1'

        webbrowser.open(url)

    if 'точно' in zadanie:
        engine = pyttsx3.init()
        engine.say("ну наконец то , я думала вы уже не догадаетесь")
        engine.runAndWait()     

    if 'открой яндекс' in zadanie:
        engine = pyttsx3.init()
        engine.say("уже открываю босс")
        engine.runAndWait()
        url = 'https://yandex.ru/'

        webbrowser.open(url)

    if 'открой школу' in zadanie:
        engine = pyttsx3.init()
        engine.say("уже открываю босс")
        engine.runAndWait()
        url = 'http://62.245.43.79/about.asp?AL=Y55'

        webbrowser.open(url)        

    if 'открой вк' in zadanie:
        engine = pyttsx3.init()
        engine.say("уже открываю босс")
        engine.runAndWait()
        url = 'https://vk.com/'

        webbrowser.open(url)        

    if '3481' in zadanie:
        engine = pyttsx3.init()
        engine.say("уже открываю босс")
        engine.runAndWait()
        url = 'https://zaycev.net/artist/120900'

        webbrowser.open(url)

    if 'музыку' in zadanie:
        engine = pyttsx3.init()
        engine.say("уже открываю босс")
        engine.runAndWait()
        url = 'https://zaycev.net/artist/120434'

        webbrowser.open(url)

    if 'кто ты' in zadanie:
        engine = pyttsx3.init()
        engine.say("я пятница , симуляция искусственого интелекта который использовал железный человек начиная с фильма мстители эра альтрона")
        engine.runAndWait()

    if 'выключи пк' in zadanie:
        engine = pyttsx3.init()
        engine.say("до свидания босс")
        engine.runAndWait()
        os.system('shutdown /p /f')

    if 'не трогай' in zadanie:
        engine = pyttsx3.init()
        engine.say("хорошо")
        engine.runAndWait()

    if 'перезагрузи пк' in zadanie:
        engine = pyttsx3.init()
        engine.say("хорошо")
        engine.runAndWait()     
        os.system('shutdown -r -t 0')

    if 'открыть' in zadanie:
        engine = pyttsx3.init()
        engine.say("уже открываю босс")
        engine.runAndWait()
        url = 'https://www.youtube.com/'

        webbrowser.open(url)

    elif 'стоп' in zadanie:
        engine = pyttsx3.init()
        engine.say("Да, конечно, без проблем")
        engine.runAndWait()
        sys.exit()

    elif 'имя' in zadanie:
        engine = pyttsx3.init()
        engine.say("меня зовут пятница")
        engine.runAndWait()



while True:
    makeSomething(command())

при подключении к компьютеру микрофона перестает воспроизводить звук


Ответы (1 шт):

Автор решения: Chikkago

Проверь index своего микрофона таким кодом:

import speech_recognition as sr
for index, name in enumerate(sr.Microphone.list_microphone_names()):
    print("Microphone with name \"{1}\" found for `Microphone(device_index= 
{0})`".format(index, name))

Возможно именно с ним была проблема...

→ Ссылка