(поиск похожих)
vectorizer = TfidfVectorizer(analyzer="char", ngram_range=(2, 3))
classifier_probability = LogisticRegression()
classifier = LinearSVC()
prepare_corpus()
while True:
# старт записи речи с последующим выводом распознанной речи
# и удалением записанного в микрофон аудио
voice_input = record_and_recognize_audio()
if os.path.exists("microphone-results.wav"):
os.remove("microphone-results.wav")
print(colored(voice_input, "blue"))
# отделение команд от дополнительной информации (аргументов)
if voice_input:
voice_input_parts = voice_input.split(" ")
# если было сказано одно слово - выполняем команду сразу
# без дополнительных аргументов
if len(voice_input_parts) == 1:
intent = get_intent(voice_input)
if intent:
config["intents"][intent]["responses"]()
else:
config["failure_phrases"]()
# в случае длинной фразы - выполняется поиск ключевой фразы
# и аргументов через каждое слово,
# пока не будет найдено совпадение
if len(voice_input_parts) > 1:
for guess in range(len(voice_input_parts)):
intent = get_intent((" ".join(voice_input_parts[0:guess])).strip())
if intent
command_options = [voice_input_parts[guess:len(voice_input_parts)]]
config["intents"][intent]["responses"](*command_options)
break
if not intent and guess == len(voice_input_parts)-1:
config["failure_phrases"]()
В чем проблема?
Скорее всего, в коде
Обсуждают сегодня