[Python, Голосовые интерфейсы] Голосовой ассистент на Python (Виталий alfa 2.0)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет хабр! Меня зовут Глеб Пряхин, мне 14 лет, я написал голосового ассистента на python 3 и скомпилировал его в exe.(Ссылка на скомпилированный вариант)Прошу протестировать помощника и позадавать ему вопросы,если у вас появились вопросы или вы хотите написать в поддержку: в комментах под постом, или на эл. почту glebilic@gmail.com.Приступим к коду! Для начала импортируем модули:
import pyttsx3
import os
import time
import datetime
import speech_recognition as sr
import random
import webbrowser
import sounddevice as sd
Для добавления голосов скачиваем и устанавливаем RHvoice.Теперь ассистент читает файл с кол-во просмотров и подгружает файл tts, где хранится нумер голоса. Переменная num123 = количеству просмотров, а tts1 = нумеру голоса в синтезаторе речи.
f = open("sp.txt", "r")
num123 = f.read(1000)
num123 = int(num123)
f.close
f = open("tts.txt", "r")
tts1 = int(f.read(1))
f.close()
#синтез речи
tts = pyttsx3.init()
speak_engine = pyttsx3.init()
voices = speak_engine.getProperty('voices')
speak_engine.setProperty('voice', voices[tts1].id)
Простейшая шапка для программы:
os.system('cls' if os.name == 'nt' else 'clear')
print("ВИТАЛИЙ 2.0 ALFA \nBy Глеб Пряхин\n2021 \n-загрузка...")
Теперь мы читаем файл name и понимаем, что ужас! Наш пациент, ой то есть клиент не зарегистрировался в системе! Вызываем форму регистрации:
f = open('name.txt', 'r')
if f.read(1) == "":
os.system('cls' if os.name == 'nt' else 'clear')
tts.say("Добрый день, я Виталий, я здесь, что бы вывести ваше взаимодействие с компьютером на новый, продуктивный уровень. Давайте знакомится. Как вас зовут?")
tts.runAndWait()
r = sr.Recognizer()
with sr.Microphone(device_index = 1) as source:
print(' ')
r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов
print('...')
audio = r.listen(source)
print(' ')
try:
query = r.recognize_google(audio, language = 'ru-RU')
name = query.lower()
print(f'Вы сказали: {query.lower()}')
except:
print('-')
tts.say("Вас зовут")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Подтвердите пожалуйста.")
tts.runAndWait()
r = sr.Recognizer()
with sr.Microphone(device_index = 1) as source:
print(' ')
r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов
print('...')
audio = r.listen(source)
print(' ')
try:
query = r.recognize_google(audio, language = 'ru-RU')
ver = query.lower()
print(f'Вы сказали: {query.lower()}')
except:
print('-')
if "да" in ver or "подтверждаю" in ver:
f = open('name.txt', 'w')
f.write(name.title())
f.close()
tts.say("Готово! Теперь давайте поболтаем!")
tts.runAndWait()
else:
tts.say("напишите свое имя на клавиатуре")
tts.runAndWait()
name = input("Ваше имя: ")
tts.say("Готово! Теперь давайте поболтаем!")
tts.runAndWait()
f = open('name.txt', 'w')
f.write(name.title())
f.close()
Теперь, мы читаем кол-во просмотров, и понимаем что это "первый раз", поэтому начинаем читать инструктаж:
if num123 == 0:
tts.say("Но сначала я хочу научить основным командам: И так вот список моих команд:")
tts.runAndWait()
tts.say("Тут текст инструктажа")
tts.runAndWait()
Подготавливаем программу ко входу в центральный цикл:
#тут мы добавляем просмотр к счетчику просмотров
f = open("sp.txt", "w")
num123 = num123 + 1
num123 = str(num123)
num123 = f.write(num123)
f.close
#а тут читаем имя и создаем рандомное число
f = open('name.txt', 'r')
name = f.read(10)
r = random.randint(1,10)
В прошлом блоке мы сгенерировали рандомное число и занесли его в переменную r, теперь создадим elif`ки и зададим переменные cont, они понадобятся нам позже:
cont = ""
if r == 1:
tts.say("Добрый день")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Как дела?")
tts.runAndWait()
elif r == 2:
tts.say("Привет")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Чем могу помочь?")
tts.runAndWait()
elif r == 3:
tts.say("Привет привет")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Чем займемся?")
tts.runAndWait()
elif r == 4:
tts.say("Добрый день")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Хотите открою почту?")
tts.runAndWait()
cont = ("почта")
elif r == 5:
tts.say("Добрый день")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Открыть ютуб?")
tts.runAndWait()
cont = "ютуб"
elif r == 6:
tts.say("Привет")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Посмотрим кино?")
tts.runAndWait()
cont = "кино"
elif r == 7:
tts.say("Добрый день")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Что хотите узнать?")
tts.runAndWait()
elif r == 8:
tts.say("Приветики")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Хотите почитать последние новости?")
tts.runAndWait()
cont = "новости"
elif r == 9:
tts.say("Добрый день")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Где вы были?")
tts.runAndWait()
elif r == 10:
tts.say("Добрый день")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("Как дела?")
tts.runAndWait()
Входим в цикл:
while True:
cikl = cikl + 1
ca = 0
ra = random.randint(1,10)
an = ""
#распознание
r = sr.Recognizer()
with sr.Microphone(device_index = 1) as source:
print(' ')
r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов
print('...')
audio = r.listen(source)
print(' ')
try:
query = r.recognize_google(audio, language = 'ru-RU')
an = query.lower()
print(f'Вы сказали: {query.lower()}')
except:
print('-')
И создадим первую команду "да", помните переменную cont? Так вот она отличает ответ "да" на вопрос "открыть ютуб?", и "да" на вопрос "Включить новости?", если контекста нет, то он просто ответит стандартным ответом.
#да
if "да" in an and len(an) == 2 or "давай" in an or "почему-бы и нет" in an:
ca = 1
if cont == "почта":
f = open('email.txt', 'r')
if f.read(1) == "":
tts.say("Я совсем забыл, на каком сервисе зарегистрирована ваша почта! Пожайлуста выберете на экране нужную.")
tts.runAndWait()
a = 1
while True:
v = input("Вставьте ссылку для почтового сервиса.")
f = open('email.txt', 'w')
if "https" in v:
web = v
f.write(web)
f.close()
break
tts.say("открываю почту")
f = open('email.txt', 'r')
web = f.read(97)
f.close()
tts.runAndWait()
webbrowser.open(web)
elif cont == "ютуб":
tts.say("Хорошо, включаю его")
tts.runAndWait()
webbrowser.open('https://www.youtube.com/')
elif cont == "кино":
tts.say("Давайте подберем что нибудь на око")
tts.runAndWait()
webbrowser.open('https://okko.tv/')
elif cont == "новости":
tts.say("Открываю евроньюс!")
tts.runAndWait()
webbrowser.open('https://www.youtube.com/watch?v=E3rH3KdVWcc')
elif cont == "ютубпр":
tts.say("Вот, надеюсь вам понравится")
tts.runAndWait()
webbrowser.open('https://www.youtube.com/channel/UCy0uukwm4dOSFCGyfp8g2sw')
else:
tts.say("Это очень хорошо.")
tts.runAndWait()
Теперь перейдем к интернет командам. Я приведу по 1 примеру на каждый их вид:Супер простая команда открывающая один сайт:
elif "вк " in an or "вконтакте" in an:
ca = 1
tts.say("Включаю вконтакте")
tts.runAndWait()
webbrowser.open("https:/vk.com")
Команда, которая выполняет поиск по сайту:
elif "найди в интернете" in an:
ca = 1
tts.say("Выполняю поиск по запросу")
tts.runAndWait()
tts.say(an[an.find("ете")+3:])
tts.runAndWait()
sear = an[an.find("ете")+3:]
webbrowser.open("https://www.google.com/search?q=" + sear)
Команда открывающая сайт, который сохранен в файл, и может изменятся:
elif "почт" in an:
ca = 1
f = open('email.txt', 'r')
if f.read(1) == "":
tts.say("Я совсем забыл, на каком сервисе зарегистрирована ваша почта! Пожайлуста выберете на экране нужную.")
tts.runAndWait()
a = 1
while True:
v = input("Вставьте ссылку для почтового сервиса.")
f = open('email.txt', 'w')
if "https" in v:
web = v
f.write(web)
f.close()
break
Далее перейдем к командам для компа:Команда на выполнение команды в командной строке:
elif "если я скажу это" in an:
ca = 1
os.system('то помощник выполнит эту команду через командную строку')
tts.say("И скажет это")
tts.runAndWait()
tts.say(name) #а потом имя произнесет.
tts.runAndWait()
Команда на выключение компа:
elif "выключи компьютер" in an or "заверши работу" in an:
ca = 1
tts.say("Досвидания")
tts.runAndWait()
tts.say(name)
tts.runAndWait()
tts.say("До новых встреч. Идет завершение работы.")
tts.runAndWait()
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 10 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 09 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 08 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 07 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 06 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 05 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 04 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 03 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 02 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение через 01 секунд.")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear')
print("Выключение...")
time.sleep(1)
os.system('shutdown -s')
Заметки. Ассистент умеет хранить заметки, вот какой код работает для этого:
#память
elif "запомни" in an or "напомни" in an:
ca = 1
f = open("z1.txt", "a")
if an[len("запомни"):] == "":
tts.say("Заметка не может быть пустой! Если хотите создать новую, скажите запомни и то что вы хотите сохранить.")
tts.runAndWait()
print("Ошибка! Вы пытаетесь создать пустую заметку!")
else:
tts.say("Я запомнил, что бы прочитать эту заметку скажите, что ты помнишь?")
tts.runAndWait()
an45 = an[len("запомни"):] + ","
f.write(an45)
f.close()
elif "помн" in an:
ca = 1
f = open("z1.txt", "r")
if f.read(1) == "":
tts.say("Похоже у вас еще нет заметок. Если хотите создать новую, скажите запомни и то что вы хотите сохранить.")
tts.runAndWait()
else:
st = f.read()
print(st)
tts.say("И так вот что я помню:")
tts.runAndWait()
tts.say(st)
tts.runAndWait()
tts.say("Если хотите их удалить, скажите удалить все заметки.")
tts.runAndWait()
f.close()
elif "удалить все заметки" in an or "удали все заметки" in an:
ca = 1
print("Вы уверены?")
tts.say("Вы хотите удалить все заметки? Подтвердите пожайлуста.")
tts.runAndWait()
#распознание
r = sr.Recognizer()
with sr.Microphone(device_index = 1) as source:
print(' ')
r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов
print('...')
audio = r.listen(source)
print(' ')
try:
query = r.recognize_google(audio, language = 'ru-RU')
an = query.lower()
print(f'Вы сказали: {query.lower()}')
except:
print('-')
if an == "да" or "подтверждаю" in an or "утверждаю" in an:
ca = 1
print("Удаление...")
f = open("z1.txt", "w")
f.write("")
tts.say("Удаление заметок завершено.")
tts.runAndWait()
else:
print("Отмена...")
tts.say("Подтверждение не получено, заметки не удалены. Ну вы меня и напугали...")
tts.runAndWait()
f.close()
Еще пара полезных функций:
elif "настройки" in an:
ca = 1
tts1 = input("введите номер голоса:")
f = open("tts.txt", "w")
f.write(tts1)
f.close()
elif "замолчи" in an or "стоп" in an:
ca = 1
tts.say("Хорошо, микрофон выключен. Для продолжения работы нажмите энтр")
tts.runAndWait()
an4925479864 = input("[ПАУЗА] Нажмите enter: ")
tts.say("Привет-привет, чем займемся?.")
tts.runAndWait()
Смол толк. У меня он может быть выключен, если коротко, то смол толк это "разговор ни о чем" типа "как дела".
elif "виталий активируй диалоги" in an:
ca = 1
tts.say("Возможность диалогов активирована, О чём поговорим?")
tts.runAndWait()
f = open('dialogset.txt', 'w')
f.write("1")
f.close()
elif "виталий выключи диалоги" in an:
ca = 1
tts.say("Возможность диалогов отключена.")
tts.runAndWait()
f = open('dialogset.txt', 'w')
f.write("0")
f.close()
f = open('dialogset.txt', 'r')
an4897987 = f.read(1)
f.close()
if an4897987 == "1":
rsm = random.randint(1,3)
if "привет" in an or "здрав" in an:
ca = 1
if rsm == 1:
tts.say("Привет, чем могу пом очь?.")
tts.runAndWait()
elif rsm == 2:
tts.say("Добрый день.")
tts.runAndWait()
elif rsm == 3:
tts.say("Хэлоу.")
tts.runAndWait()
#пример фразы смол толк`а
elif "в1" in an or "в2" in an:
ca = 1
if rsm == 1:
tts.say("1в ответа")
tts.runAndWait()
elif rsm == 2:
tts.say("2в ответа.")
tts.runAndWait()
elif rsm == 3:
tts.say("3в ответа")
tts.runAndWait()
elif "как" in an and "дел" in an:
ca = 1
if rsm == 1:
tts.say("Как сказала-бы Алиса, у меня всё хорошо, но немного одиноко, обращайтесь ко мне по-чаще.")
tts.runAndWait()
elif rsm == 2:
tts.say("У меня прекрасно! Заходил на официальный канал проекта. Там очень интересно. Хотите посмотреть?")
tts.runAndWait()
cont = "ютубпр"
cikl = 0
elif rsm == 3:
tts.say("У меня всё прекрасно! А у вас?")
tts.runAndWait()
elif "хорошо" in an or "прекрасно" in an:
ca = 1
if rsm == 1:
tts.say("Я рад за вас, чем займемся?")
tts.runAndWait()
elif rsm == 2:
tts.say("Я рад за вас, у меня тоже всё хорошо.")
tts.runAndWait()
elif rsm == 3:
tts.say("Я рад за вас.")
tts.runAndWait()
А если ошибка? Или, что бот будет делать в случае, если не найдет ответа? Вот что. Кстати ассистент понимает, что не выполнил за цикл ни одной команды, если переменная ca = 0.
if an == "":
print("")
ca = 1
if ca == 0:
print("ошибка")
if ra == 1 or ra ==2:
tts.say("Ну наверное...")
tts.runAndWait()
elif ra == 3 or ra == 4:
tts.say("Даже не знаю.")
tts.runAndWait()
elif ra == 5 or ra == 6:
tts.say("Незнаю что на это ответить.")
tts.runAndWait()
elif ra == 7 or ra == 8:
tts.say("Я вас не то что бы понял, но по смыслу понял")
tts.runAndWait()
elif ra == 9 or ra == 10:
tts.say("Наверное я вас не правильно понял.")
tts.runAndWait()
Осталось только "обнулить", нет не этого, а переменный, что бы не было повторных сработок:
an = ""
if cikl == 2:
cikl = 0
cont = ""
Вот и весь мой код, если будете использовать, то, пожалуйста, укажите ссылку на этот пост в коде или интерфейсе.Вот ссылка на готовую и скомпилированную версию.Жду ваших советов, идей и критики в комментариях под постом и на почте: glebilic@gmail.com.Пока!
===========
Источник:
habr.com
===========
Похожие новости:
- [Python] Поиск известных паттернов на Forex с Python
- [Python, Big Data, Разработка под e-commerce, Управление продуктом] Как мы в СберМаркете боремся с товарами-призраками
- [Python, API, Браузеры, Веб-аналитика] Скрапинг современных веб-сайтов без headless-браузеров (перевод)
- [Open source, Python, Data Mining, Машинное обучение, Звук] Мы опубликовали современный Voice Activity Detector и не только
- Опубликована библиотека urm для Python
- [Python, Программирование, Машинное обучение] Соревнование KAGGLE по определению риска дефолта заемщика. Разработка признаков
- [API, Голосовые интерфейсы] Немного Web Speech API для современных веб-приложений
- [Python, Распределённые системы] Реализация распределённых вычислений на языке python с использованием технологии docker
- [Python, Программирование, Машинное обучение, DIY или Сделай сам] Пора избавляться от мышки или Hand Pose Estimation на базе LiDAR за 30 минут
- [Информационная безопасность] Google's Certificate Transparency как источник данных для предотвращения атак (перевод)
Теги для поиска: #_python, #_golosovye_interfejsy (Голосовые интерфейсы), #_golosovoj_assistent (Голосовой ассистент), #_pomoschnik (помощник), #_python, #_raspoznovanie_golosa (распознование голоса), #_python, #_golosovye_interfejsy (
Голосовые интерфейсы
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:27
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет хабр! Меня зовут Глеб Пряхин, мне 14 лет, я написал голосового ассистента на python 3 и скомпилировал его в exe.(Ссылка на скомпилированный вариант)Прошу протестировать помощника и позадавать ему вопросы,если у вас появились вопросы или вы хотите написать в поддержку: в комментах под постом, или на эл. почту glebilic@gmail.com.Приступим к коду! Для начала импортируем модули: import pyttsx3
import os import time import datetime import speech_recognition as sr import random import webbrowser import sounddevice as sd f = open("sp.txt", "r")
num123 = f.read(1000) num123 = int(num123) f.close f = open("tts.txt", "r") tts1 = int(f.read(1)) f.close() #синтез речи tts = pyttsx3.init() speak_engine = pyttsx3.init() voices = speak_engine.getProperty('voices') speak_engine.setProperty('voice', voices[tts1].id) os.system('cls' if os.name == 'nt' else 'clear')
print("ВИТАЛИЙ 2.0 ALFA \nBy Глеб Пряхин\n2021 \n-загрузка...") f = open('name.txt', 'r')
if f.read(1) == "": os.system('cls' if os.name == 'nt' else 'clear') tts.say("Добрый день, я Виталий, я здесь, что бы вывести ваше взаимодействие с компьютером на новый, продуктивный уровень. Давайте знакомится. Как вас зовут?") tts.runAndWait() r = sr.Recognizer() with sr.Microphone(device_index = 1) as source: print(' ') r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов print('...') audio = r.listen(source) print(' ') try: query = r.recognize_google(audio, language = 'ru-RU') name = query.lower() print(f'Вы сказали: {query.lower()}') except: print('-') tts.say("Вас зовут") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Подтвердите пожалуйста.") tts.runAndWait() r = sr.Recognizer() with sr.Microphone(device_index = 1) as source: print(' ') r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов print('...') audio = r.listen(source) print(' ') try: query = r.recognize_google(audio, language = 'ru-RU') ver = query.lower() print(f'Вы сказали: {query.lower()}') except: print('-') if "да" in ver or "подтверждаю" in ver: f = open('name.txt', 'w') f.write(name.title()) f.close() tts.say("Готово! Теперь давайте поболтаем!") tts.runAndWait() else: tts.say("напишите свое имя на клавиатуре") tts.runAndWait() name = input("Ваше имя: ") tts.say("Готово! Теперь давайте поболтаем!") tts.runAndWait() f = open('name.txt', 'w') f.write(name.title()) f.close() if num123 == 0:
tts.say("Но сначала я хочу научить основным командам: И так вот список моих команд:") tts.runAndWait() tts.say("Тут текст инструктажа") tts.runAndWait() #тут мы добавляем просмотр к счетчику просмотров
f = open("sp.txt", "w") num123 = num123 + 1 num123 = str(num123) num123 = f.write(num123) f.close #а тут читаем имя и создаем рандомное число f = open('name.txt', 'r') name = f.read(10) r = random.randint(1,10) cont = ""
if r == 1: tts.say("Добрый день") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Как дела?") tts.runAndWait() elif r == 2: tts.say("Привет") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Чем могу помочь?") tts.runAndWait() elif r == 3: tts.say("Привет привет") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Чем займемся?") tts.runAndWait() elif r == 4: tts.say("Добрый день") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Хотите открою почту?") tts.runAndWait() cont = ("почта") elif r == 5: tts.say("Добрый день") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Открыть ютуб?") tts.runAndWait() cont = "ютуб" elif r == 6: tts.say("Привет") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Посмотрим кино?") tts.runAndWait() cont = "кино" elif r == 7: tts.say("Добрый день") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Что хотите узнать?") tts.runAndWait() elif r == 8: tts.say("Приветики") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Хотите почитать последние новости?") tts.runAndWait() cont = "новости" elif r == 9: tts.say("Добрый день") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Где вы были?") tts.runAndWait() elif r == 10: tts.say("Добрый день") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("Как дела?") tts.runAndWait() while True:
cikl = cikl + 1 ca = 0 ra = random.randint(1,10) an = "" #распознание r = sr.Recognizer() with sr.Microphone(device_index = 1) as source: print(' ') r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов print('...') audio = r.listen(source) print(' ') try: query = r.recognize_google(audio, language = 'ru-RU') an = query.lower() print(f'Вы сказали: {query.lower()}') except: print('-') #да
if "да" in an and len(an) == 2 or "давай" in an or "почему-бы и нет" in an: ca = 1 if cont == "почта": f = open('email.txt', 'r') if f.read(1) == "": tts.say("Я совсем забыл, на каком сервисе зарегистрирована ваша почта! Пожайлуста выберете на экране нужную.") tts.runAndWait() a = 1 while True: v = input("Вставьте ссылку для почтового сервиса.") f = open('email.txt', 'w') if "https" in v: web = v f.write(web) f.close() break tts.say("открываю почту") f = open('email.txt', 'r') web = f.read(97) f.close() tts.runAndWait() webbrowser.open(web) elif cont == "ютуб": tts.say("Хорошо, включаю его") tts.runAndWait() webbrowser.open('https://www.youtube.com/') elif cont == "кино": tts.say("Давайте подберем что нибудь на око") tts.runAndWait() webbrowser.open('https://okko.tv/') elif cont == "новости": tts.say("Открываю евроньюс!") tts.runAndWait() webbrowser.open('https://www.youtube.com/watch?v=E3rH3KdVWcc') elif cont == "ютубпр": tts.say("Вот, надеюсь вам понравится") tts.runAndWait() webbrowser.open('https://www.youtube.com/channel/UCy0uukwm4dOSFCGyfp8g2sw') else: tts.say("Это очень хорошо.") tts.runAndWait() elif "вк " in an or "вконтакте" in an:
ca = 1 tts.say("Включаю вконтакте") tts.runAndWait() webbrowser.open("https:/vk.com") elif "найди в интернете" in an:
ca = 1 tts.say("Выполняю поиск по запросу") tts.runAndWait() tts.say(an[an.find("ете")+3:]) tts.runAndWait() sear = an[an.find("ете")+3:] webbrowser.open("https://www.google.com/search?q=" + sear) elif "почт" in an:
ca = 1 f = open('email.txt', 'r') if f.read(1) == "": tts.say("Я совсем забыл, на каком сервисе зарегистрирована ваша почта! Пожайлуста выберете на экране нужную.") tts.runAndWait() a = 1 while True: v = input("Вставьте ссылку для почтового сервиса.") f = open('email.txt', 'w') if "https" in v: web = v f.write(web) f.close() break elif "если я скажу это" in an:
ca = 1 os.system('то помощник выполнит эту команду через командную строку') tts.say("И скажет это") tts.runAndWait() tts.say(name) #а потом имя произнесет. tts.runAndWait() elif "выключи компьютер" in an or "заверши работу" in an:
ca = 1 tts.say("Досвидания") tts.runAndWait() tts.say(name) tts.runAndWait() tts.say("До новых встреч. Идет завершение работы.") tts.runAndWait() os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 10 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 09 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 08 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 07 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 06 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 05 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 04 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 03 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 02 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение через 01 секунд.") time.sleep(1) os.system('cls' if os.name == 'nt' else 'clear') print("Выключение...") time.sleep(1) os.system('shutdown -s') #память
elif "запомни" in an or "напомни" in an: ca = 1 f = open("z1.txt", "a") if an[len("запомни"):] == "": tts.say("Заметка не может быть пустой! Если хотите создать новую, скажите запомни и то что вы хотите сохранить.") tts.runAndWait() print("Ошибка! Вы пытаетесь создать пустую заметку!") else: tts.say("Я запомнил, что бы прочитать эту заметку скажите, что ты помнишь?") tts.runAndWait() an45 = an[len("запомни"):] + "," f.write(an45) f.close() elif "помн" in an: ca = 1 f = open("z1.txt", "r") if f.read(1) == "": tts.say("Похоже у вас еще нет заметок. Если хотите создать новую, скажите запомни и то что вы хотите сохранить.") tts.runAndWait() else: st = f.read() print(st) tts.say("И так вот что я помню:") tts.runAndWait() tts.say(st) tts.runAndWait() tts.say("Если хотите их удалить, скажите удалить все заметки.") tts.runAndWait() f.close() elif "удалить все заметки" in an or "удали все заметки" in an: ca = 1 print("Вы уверены?") tts.say("Вы хотите удалить все заметки? Подтвердите пожайлуста.") tts.runAndWait() #распознание r = sr.Recognizer() with sr.Microphone(device_index = 1) as source: print(' ') r.adjust_for_ambient_noise(source, duration=0.5) #настройка посторонних шумов print('...') audio = r.listen(source) print(' ') try: query = r.recognize_google(audio, language = 'ru-RU') an = query.lower() print(f'Вы сказали: {query.lower()}') except: print('-') if an == "да" or "подтверждаю" in an or "утверждаю" in an: ca = 1 print("Удаление...") f = open("z1.txt", "w") f.write("") tts.say("Удаление заметок завершено.") tts.runAndWait() else: print("Отмена...") tts.say("Подтверждение не получено, заметки не удалены. Ну вы меня и напугали...") tts.runAndWait() f.close() elif "настройки" in an:
ca = 1 tts1 = input("введите номер голоса:") f = open("tts.txt", "w") f.write(tts1) f.close() elif "замолчи" in an or "стоп" in an: ca = 1 tts.say("Хорошо, микрофон выключен. Для продолжения работы нажмите энтр") tts.runAndWait() an4925479864 = input("[ПАУЗА] Нажмите enter: ") tts.say("Привет-привет, чем займемся?.") tts.runAndWait() elif "виталий активируй диалоги" in an:
ca = 1 tts.say("Возможность диалогов активирована, О чём поговорим?") tts.runAndWait() f = open('dialogset.txt', 'w') f.write("1") f.close() elif "виталий выключи диалоги" in an: ca = 1 tts.say("Возможность диалогов отключена.") tts.runAndWait() f = open('dialogset.txt', 'w') f.write("0") f.close() f = open('dialogset.txt', 'r') an4897987 = f.read(1) f.close() if an4897987 == "1": rsm = random.randint(1,3) if "привет" in an or "здрав" in an: ca = 1 if rsm == 1: tts.say("Привет, чем могу пом очь?.") tts.runAndWait() elif rsm == 2: tts.say("Добрый день.") tts.runAndWait() elif rsm == 3: tts.say("Хэлоу.") tts.runAndWait() #пример фразы смол толк`а elif "в1" in an or "в2" in an: ca = 1 if rsm == 1: tts.say("1в ответа") tts.runAndWait() elif rsm == 2: tts.say("2в ответа.") tts.runAndWait() elif rsm == 3: tts.say("3в ответа") tts.runAndWait() elif "как" in an and "дел" in an: ca = 1 if rsm == 1: tts.say("Как сказала-бы Алиса, у меня всё хорошо, но немного одиноко, обращайтесь ко мне по-чаще.") tts.runAndWait() elif rsm == 2: tts.say("У меня прекрасно! Заходил на официальный канал проекта. Там очень интересно. Хотите посмотреть?") tts.runAndWait() cont = "ютубпр" cikl = 0 elif rsm == 3: tts.say("У меня всё прекрасно! А у вас?") tts.runAndWait() elif "хорошо" in an or "прекрасно" in an: ca = 1 if rsm == 1: tts.say("Я рад за вас, чем займемся?") tts.runAndWait() elif rsm == 2: tts.say("Я рад за вас, у меня тоже всё хорошо.") tts.runAndWait() elif rsm == 3: tts.say("Я рад за вас.") tts.runAndWait() if an == "":
print("") ca = 1 if ca == 0: print("ошибка") if ra == 1 or ra ==2: tts.say("Ну наверное...") tts.runAndWait() elif ra == 3 or ra == 4: tts.say("Даже не знаю.") tts.runAndWait() elif ra == 5 or ra == 6: tts.say("Незнаю что на это ответить.") tts.runAndWait() elif ra == 7 or ra == 8: tts.say("Я вас не то что бы понял, но по смыслу понял") tts.runAndWait() elif ra == 9 or ra == 10: tts.say("Наверное я вас не правильно понял.") tts.runAndWait() an = ""
if cikl == 2: cikl = 0 cont = "" =========== Источник: habr.com =========== Похожие новости:
Голосовые интерфейсы ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:27
Часовой пояс: UTC + 5