pyttsx3 не выговаривает фразы
Уважаемые знатоки,
cтолкнулся с одной проблемкой во время учебы разработки на питоне - написал простой голосовой помощник. работает отличныо, исполняет разные команды. Под конец, дабы сделать общение интереснее, решил закинуть диалоговые фразы, шутки и т.д. Все фразы которые закинул, возвращались если правильно задать вопрос (все работает). Только на две фразы нет никакой реакции - каково твое будущее и не пали контору. Так же методом print не выводится желаемый реультат.
Рабочий код
elif "кто тебя создал" in query:
speak("меня создал сам бог.")
Если задать вопрос "кто тебя создал", получаю вербальны и письменный ответ "меня создал сам бог."
НО
Нерабочий код
elif "Не пали контору" in query:
speak("а что я такого сказала?")
Если сказать "не пали контору" не происходит ничего, ответа нет. Если заменить "не пали контору" на любое другое значение, все работает.
А теперь внимание, вопрос - существует ли какой-нибуть зарезервированы словарь, который не будет произносить pyttsx3?
Гонг, минута пошла)
Ответы (1 шт):
Есть вариант что он распознает вашу речь и первая буковка заглавная(то есть примерно так "Не пали контору"), а вы поставили строгое равенство, вот и не работает. Я предлагаю поднимать регистр распознанной фразы(.upper()) и сравнивать с надписью написанной капсом(то есть "НЕ ПАЛИ КОНТОРУ").Так же возможно не правильное написание в условии("е" и "ё" и тд).
Уточняйте в следующие разы библиотеки(тут вы не указали как речь то распознаете)
Вот накидал вариант с вашими фразами. Удачной учебы!
import speech_recognition as sr # не забудьте установить
mic = sr.Microphone(device_index = 0) #свой индекс
r = sr.Recognizer()
with mic as source:
audio = r.listen(source)
try:
text = r.recognize_google(audio,language='ru-RU')
print ("Вы сказали \"" + text + "\"")
except sr.UnknownValueError:
print("Не понял")
except sr.RequestError:
print("Нет ответа от серверов гуугла".format(e))
if "НЕ ПАЛИ КОНТОРУ" in text.upper():
print("а что я такого сказала?")
elif "КАКОВО ТВОЁ БУДУЩЕЕ" in text.upper():
print("Не знаю")
