Jul-12-2022, 07:50 PM
i learned i new way to detect words but i cant figure out how to make the right answer come out in the if statement.
its just repeating the 3 statements. Its seems like its only seeing the last phrase_F.
its just repeating the 3 statements. Its seems like its only seeing the last phrase_F.
from speech_recognition import Recognizer, Microphone from gtts import gTTS import subprocess import time from fuzzywuzzy import fuzz from fuzzywuzzy import process recognizer = Recognizer() # On enregistre le son with Microphone() as source: print("Dite un fruit ou un légume 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é !") # Reconnaissance de l'audio try: print("Reconnaissance du texte...") text = recognizer.recognize_google( recorded_audio, language="fr-FR" ) print("Vous avez dit : {}".format(text)) phrase_O = [u"Ouvrir la lumière de l’entrée", u"Ouvrir lumière entrée?", u"Ouvrir lumièrel’entrée"] maPhrase = text phrase_A = [u"Allumer la lumière de l’entrée", u"Allumer lumière entrée?", u"Allumer lumièrel’entrée"] maPhrase_A = text phrase_F = [u"Fermer la lumière de l’entrée", u"Fermer lumière entrée?", u"Fermer lumièrel’entrée"] maPhrase_F = text (modele, score) = process.extractOne(maPhrase, phrase_O) (modele, score) = process.extractOne(maPhrase_A, phrase_A) (modele, score) = process.extractOne(maPhrase_F, phrase_F) print(modele, score) ph = score def Auto_reponse(): tts.save('out.mp3') cmd = ['mpg321', '-q', 'out.mp3'] subprocess.call(cmd) if ph >= 90: tts = gTTS(u"La lumière de l’entrée est allumée", lang="fr") Auto_reponse() elif ph >= 90: tts = gTTS(u"La lumière de l’entrée est pas allumée", lang="fr") Auto_reponse() elif ph >= 90: tts = gTTS(u"La lumière de l’entrée est éteinte", lang="fr") Auto_reponse() #if found_word: #speech() #else: #speech2() except Exception as ex: print(ex)