I want to introduce a message saying no voice command detected if nothing is said.
any tips?
any tips?
# https://stackoverflow.com/questions/71236203/setting-a-threshold-for-fuzzywuzzy-process-extractone from speech_recognition import Recognizer, Microphone from gtts import gTTS import subprocess import time from fuzzywuzzy import fuzz from fuzzywuzzy import process from playsound import playsound import os from datetime import datetime from pyowm import OWM from pyowm.utils.config import get_default_config currentDateAndTime = datetime.now() currentTime = currentDateAndTime.strftime("%H:%M:%S") recognizer = Recognizer() config_dict = get_default_config() config_dict['language'] = 'fr' owm = OWM('22b7aaf6688a49eaa3cc518ab1b76841', config_dict) mgr = owm.weather_manager() observation = mgr.weather_at_place('Montreal,CA') w = observation.weather def listen_audio(): global text with Microphone() as source: print("Dite une commande dans le microphone") print("Réglage du bruit ambiant... Patientez...") recognizer.adjust_for_ambient_noise(source) print("Vous pouvez parler...") recorded_audio = recognizer.listen(source) print("Enregistrement terminé !") try: print("Reconnaissance du texte...") text = recognizer.recognize_google( recorded_audio, language="fr-FR" ) print("Vous avez dit : {}".format(text)) except Exception as ex: print(ex) return text def Auto_speak(response): tts = gTTS(text=response, lang='fr') tts.save('out.mp3') playsound('out.mp3') os.remove('out.mp3') def respond(text): respond.has_been_called = False maPhrase = text phrase_A = ["ouvrir la lumière de l'entrée", "allumer la lumière de l'entrée"] phrase_B = ["fermer la lumière de l'entrée", "éteindre la lumière de l'entrée"] phrase_C = ["ouvrir la lumière du salon", "allumer la lumière du salon"] phrase_D = ["fermer la lumière du salon", "éteindre la lumière du salon"] phrase_E = ["quelle heure est-il?", "il est quelle heure?"] phrase_F = ["quel temps fait-il?"] (modele, score1) = process.extractOne(maPhrase, phrase_A) (modele, score2) = process.extractOne(maPhrase, phrase_B) (modele, score3) = process.extractOne(maPhrase, phrase_C) (modele, score4) = process.extractOne(maPhrase, phrase_D) (modele, score5) = process.extractOne(maPhrase, phrase_E) (modele, score6) = process.extractOne(maPhrase, phrase_F) print(modele) if score1 == 100: Auto_speak("La lumière de l’entrée est allumée") if score2 == 100: Auto_speak("La lumière de l’entrée est éteinte") if score3 == 100: Auto_speak("La lumière du salon est allumé") if score4 == 100: Auto_speak("La lumière du salon est éteinte") if score5 == 100: Auto_speak("Il est: {}".format(currentTime)) if score6 == 100: Auto_speak(f"Il fait: {w.temperature('celsius')['temp']} degrés.") respond.has_been_called = True while True: text = listen_audio() if respond.has_been_called: respond(text) else: print("aucune commande détectée") #print(bool(respond(text)))