Проблема с обнаружением горячих слов в SnowBoy
Привет, ребята, я пытаюсь запустить цикл while в моем коде, который запускает распознавание речи всякий раз, когда произносится горячее слово "virgo". Проблема в том, что снежный человек обнаруживает горячее слово, но я не знаю, как выполнить цикл while, когда горячее слово сработало. Любая помощь, пожалуйста? это может звучать глупо и должно быть относительно легко, но мой мозг сейчас в огне. благодарю вас!
import speech_recognition as sr
from textblob import TextBlob
import snowboydecoder
recognizer_instance = sr.Recognizer()
def detected_callback():
print ("tell me!")
detector = snowboydecoder.HotwordDetector("virgo.pmdl",sensitivity=0.5)
detector.start(detected_callback=snowboydecoder.play_audio_file,sleep_time=0.03)
detector.terminate()
while True:
with sr.Microphone() as source:
recognizer_instance.adjust_for_ambient_noise(source)
print("Listening...")
audio = recognizer_instance.listen(source)
print("copy that!")
try:
text = recognizer_instance.recognize_google(audio, language = "it-IT")
print("you said:\n", text)
except Exception as e:
break
1 ответ
Ваш while
цикл всегда "срабатывает", учитывая TRUE
, до тебя break
из этого. Чтобы запустить код внутри цикла, выполните, например:
while True:
if YOUR_TRIGGER_CONDITION:
with sr.Microphone() as source:
recognizer_instance.adjust_for_ambient_noise(source)
print("Listening...")
audio = recognizer_instance.listen(source)
print("copy that!")
try:
text = recognizer_instance.recognize_google(audio, language = "it-IT")
print("you said:\n", text)
except Exception as e:
break