Помогите с программой "помощник"

Александр

Новичок
Пользователь
Апр 10, 2020
5
0
1
Код:
import speech_recognition as sr
import win32com.client
import keyboard
import webbrowser
import datetime
import random
pravda=True
speaker=win32com.client.Dispatch("SAPI.SpVoice")



def voicecommand():

    r = sr.Recognizer() # Создаем объект на основе библиотеки speech_recognition и вызываем метод для определения данных

    with sr.Microphone() as source:# Начинаем прослушивать микрофон и записываем данные в source

        print("Говорите")# Просто вывод, чтобы мы знали когда говорить

        r.pause_threshold = 1# Устанавливаем паузу, чтобы прослушивание началось лишь по прошествию 1 секунды

        r.adjust_for_ambient_noise(source, duration=1)# используем adjust_for_ambient_noise для удаления посторонних шумов из аудио дорожки

        audio = r.listen(source)# Полученные данные записываем в переменную audio пока мы получили лишь mp3 звук



    try: # Обрабатываем все при помощи исключений

        """

        Распознаем данные из mp3 дорожки.

        Указываем что отслеживаемый язык русский.

        Благодаря lower() приводим все в нижний регистр.

        Теперь мы получили данные в формате строки,

        которые спокойно можем проверить в условиях

        """

        zadanie = r.recognize_google(audio, language="ru-RU").lower()

        # что сказал пользователь

        print("Вы сказали:"+zadanie)# что сказал пользователь

        command=zadanie

      

    except sr.UnknownValueError:# Если не смогли распознать текст, то будет вызвана эта ошибка

        # Здесь просто проговариваем слова "Я вас не поняла"

        # и вызываем снова функцию command() для

        # получения текста от пользователя

        talk("Я вас не поняла")

        zadanie = voicecommand()



keyboard.add_hotkey('Ctrl', voicecommand)



name5=("Окжма")

name4=("Ок жма")

name3=("окжма")

name2=("ок жма")

name1=("okjma")

name=("ok jma")

b=input("Вызовите меня:")

if b==name or b==name1 or b==name2 or b==name3 or b==name4 or b==name5:

    print("Слушаю повелитель")

    speaker.Speak("слушаю повелитель")

    command=(' '.join(input("Введите вашу команду:").split()))

else:

    print("Меня зовут не " + (b))

    speaker.Speak("Меня зовут не" +(b))

    speaker.Speak("Назовите меня правильно")

    b=input("Назовите меня правильно:")

    if b==name or b==name1 or b==name2 or b==name3 or b==name4 or b==name5:

        print("Слушаю повелитель")

        speaker.Speak("Слушаю повелитель")

        command=(' '.join(input("Введите вашу команду:").split()))

    else:

        print("Бан")

        speaker.Speak("Бан")

        raise SystemExit



pravda=True

while pravda:

 

        napominanie3=1

        napominanie2=1

        napominanie1=1

        randomhislo=random.randint(1,100000)

        joke=random.randint(1,3)#переменная для показа шуток

        coin=random.randint(1,3)#переменная для команды броска монеты

        now=datetime.datetime.now()#команда для времини

        f=int(random.uniform(1,10))





 

        if joke==1 and (command=="Расскажи анекдот") or joke==1 and (command=="расскажи анекдот") or joke==1 and (command=="Пошути") or joke==1 and (command=="пошути"):

            print("Идут значит 2 рэпера, один в кепке, другой тоже звизды получит")

            speaker.Speak("Идут значит 2 рэпера, один в кепке, другой тоже звизды получит")

            command=(' '.join(input("Введите вашу команду:").split()))

      

        if joke==2 and (command=="Расскажи анекдот") or joke==2 and (command=="расскажи анекдот") or joke==2 and (command=="Пошути") or joke==2 and (command=="пошути"):

            print("Сидят две блондинки за столиком в кафе. Одна говорит: — Какой-то странный сегодня кофе. — Дура, это же чай. Официант: — Девочки, не ссортесь! Может еще какао?")

            speaker.Speak("Сидят две блондинки за столиком в кафе. Одна говорит: — Какой-то странный сегодня кофе. — Дура, это же чай. Официант: — Девочки, не ссортесь! Может еще какао?")

            command=(' '.join(input("Введите вашу команду:").split()))

      

      

        if joke==3 and (command=="Расскажи анекдот") or joke==3 and (command=="расскажи анекдот") or joke==3 and (command=="Пошути") or joke==3 and (command=="пошути"):

            print("Я никогда не обижаюсь, я просто меняю мнение о человеке")

            speaker.Speak("Я никогда не обижаюсь, я просто меняю мнение о человеке")

            command=(' '.join(input("Введите вашу команду:").split()))

      

        if coin==1 and (command=="Брось монету") or coin==1 and (command=="брось монету") or coin==1 and (command=="Брось монетку") or coin==1 and (command=="брось монетку"):

            print("Орел")

            speaker.Speak("Орёл")

            command=(' '.join(input("Введите вашу команду:").split()))

      

        if coin==2 and (command=="Брось монету") or coin==2 and (command=="брось монету") or coin==2 and (command=="Брось монетку") or coin==2 and (command=="брось монетку"):

            print("Решка")

            speaker.Speak("Решка")

            command=(' '.join(input("Введите вашу команду:").split()))



        if coin==3 and (command=="Брось монету") or coin==3 and (command=="брось монету") or coin==3 and (command=="Брось монетку") or coin==3 and (command=="брось монетку"):

            print("Монетка упала ребром")

            speaker.Speak("Монетка упала ребром")

            command=(' '.join(input("Введите вашу команду:").split()))



        if(command=="Погода") or (command=="погода") or (command=="Покажи погоду") or (command=="покажи погоду") or (command=="открой погоду"):

            pravda=False

            print("Открываю")

            speaker.Speak("Открываю")

            webbrowser.open('https://yandex.ru/pogoda/tomsk?utm_source=serp&utm_campai..', new=1)

            pravda=True

            command=(' '.join(input("Введите вашу команду:").split()))

      

        if(command=="Вк") or (command=="вк") or (command=="Открой вк") or (command=="открой вк") or 'вк' in command:

            pravda=False

            print("Открываю")

            speaker.Speak("Открываю")

            webbrowser.open("https://vk.com/feed",new=1)

            pravda=True

            command=(' '.join(input("Введите вашу команду:").split()))

      

        if(command=="Музыка") or (command=="музыка") or (command=="включи музыку") or (command=="Включи музыку"):

            pravda=False

            print("Включаю")

            speaker.Speak("Включаю")

            webbrowser.open("https://music.yandex.ru/home",new=1)

            pravda=True

            command=(' '.join(input("Введите вашу команду:").split()))



        if(command=="Ютуб") or (command=="ютуб") or (command=="включи видео") or  (command=="YouTube") or (command=="Youtube") or (command=="youtube") or (command=="Включи видео") or (command=="Открой ютуб") or (command=="открой ютуб"):                         

            pravda=False

            print("Открываю")

            speaker.Speak("Открываю")

            webbrowser.open("https://www.youtube.com",new=1)

            pravda=True

            command=(' '.join(input("Введите вашу команду:").split()))
Привет , помогите пожалуйста сделать так чтобы можно было просить выполнения команд не только с клавиатуры но и с помощью микрофона .Например чтобы когда мы нажимаем Ctrl программа слушала что мы говорим и преобразовывала это в текст(это сделано в def voicecommand(): )но надо сделать так чтобы сказанные нами слова отображались в переменной command=(' '.join(input("Введите вашу команду:").split())) . Тоесть нас попросили "Введите вашу команду: а мы нажали Ctrl нас послушали преобразовали в текст и записала а мы нажали на Entr и в зависимости от нашей команды выполнялось определённое дейсвие . сейчас это можно только через клавиатуру
 
Последнее редактирование:

Rud356

Модератор
Команда форума
Модератор
Апр 5, 2020
44
21
8
Отформатируй, пожалуйста, код с помощью специальной кнопки.
 

Вложения

  • 1586516449335.png
    1586516449335.png
    9,1 КБ · Просмотры: 2
  • Мне нравится
Реакции: Александр

Александр

Новичок
Пользователь
Апр 10, 2020
5
0
1
Отформатируй, пожалуйста, код с помощью специальной кнопки.
вот сделал надеюсь у вас получится мне помочь
 
Последнее редактирование:

Форум IT Специалистов