голосовой помощник, добавление любого слова
Други, помогите в направление на путь истинный))))
Задача. Прописать в код функционал, что бы программка, при прослушивании микрофона понимала не только шаблонный текст из списка (hello), но и плюс какое то случайное слово сказанное в микрофон.
Например:
В списке hello слово шаблон "Привет", жёсткие рамки, ответ программы так же "Привет"
Хотелось бы:
Сказанное слово "Привет" + случайное произнесённое слово (например: "Привет друг" или "Привет Вася") воспринимался кодом так же, как просто - "Привет", ответ программы так же - "Привет" то есть игнорируем по сути второе сказанное слово, к слову Привет.
Я не волшебник и только учусь, прошу направить хотя бы в нужное русло) Мучал регулярки, но что то всё время идёт не так. Заранее спасибо
import speech_recognition as sr
import pyttsx3
import random
mic = sr.Microphone(device_index=2)
ansver_list = ['здравствуйте', 'приветствую', 'привет', 'рад вас слышать']
def speek(words):
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[3].id)
engine.say(words)
engine.runAndWait()
def command():
r = sr.Recognizer()
with mic as source:
audio = r.listen(source=mic)
try:
query = r.recognize_google(audio_data=audio, language='ru-RU').lower()
except:
query = command()
return query
hello = ['привет', 'здравствуй', 'приветствую']
def talking(query):
if query in hello:
print(speek(words=random.choice(ansver_list)))
else:
print(speek(words='я не понял ваш запрос'))
while True:
talking(command())
Ответы (1 шт):
Что-то типа такого:
if query.split()[0].lower() in hello:
То есть делим фразу на слова, берём первое слово, приводим в нижний регистр, после этого ищем в списке.