Вопрос по функции split
Подскажите пожалуйста как реализовать, если в шаблоне слово парное, например "Как дела". Пример ниже в коде с функцией split работает только для единичного слова. Например, говорю - "Как дела дружище". Хотелось что бы программа принимала ввод, основываясь на шаблоне "Как дела". С помощью split уже вроде никак не реализовать? Буду благодарен за совет. Спасибо.
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.split()[0].lower() in hello:
print(speek(words=random.choice(ansver_list)))
else:
print(speek(words='я не понял ваш запрос'))
while True:
talking(command())
Ответы (2 шт):
Автор решения: Сергей Шашко
→ Ссылка
def talking(query):
query = query.lower()
temp = True
for x in hello:
if query.find(x) >=0:
print(query)
temp = False
break
if temp:
print('я не понял ваш запрос')
hello =['здравствуйте', 'приветствую', 'привет', 'рад вас слышать']
query = 'рад вас слышать'
talking(query)
рад вас слышать
Автор решения: Итан
→ Ссылка
Разобрался. В частности спасибо Сергею Шашко.
Вот так работает:
def talking(query):
for tr in hello:
if query.find(tr) >=0:
print(speek(words=random.choice(ansver_list)))
return
else:
print(speek(words='я не понял ваш запрос'))
while True:
talking(command())