Salve a tutti ragazzi !! Ho bisogno di una vostra mano per un progetto che sto cercando di fare ovvero: Ho creato un assistente vocale in python in modo che riconosca la mia voce e invii comandi ir (voglio comandare un apparecchio hifi). Il problema è che non riesco a integrare nello script il comando ovvero quando dico play lui esegue il comando ma non succede nulla. Il comando che dovrei inviare è stato catturato con PiIR che funziona bene e che, lanciato da terminale è il seguente: piir play --gpio 17 --file denon.json play. Qualcuno sa come integrare questo comando nello script in modo che se lui sente play mi esegua quel comando? Vi lascio il codice che ho realizzato. Ho già i permessi per avere accesso anche ai gpio. In un attesa di una vostra gentile mano vi saluto
Code:
#!/usr/bin/env python3import speech_recognition as srimport pyttsx3import subprocessfrom datetime import datetime# Inizializza il motore TTS e imposta la voce italiana femminileengine = pyttsx3.init()engine.setProperty('voice', 'it+f3') # Assicurati che questa voce sia disponibile sul tuo sistemadef speak(text): engine.say(text) engine.runAndWait()def listen(): r = sr.Recognizer() with sr.Microphone() as source: print("In ascolto...") r.adjust_for_ambient_noise(source, duration=1) audio = r.listen(source) try: text = r.recognize_google(audio, language="it-IT") print("Hai detto: ", text) return text.lower() except sr.UnknownValueError: print("Non ho capito il comando.") except sr.RequestError as e: print("Errore nel servizio di riconoscimento; {0}".format(e)) return ""def main(): speak("Ciao, Dimmi come posso aiutarti.") while True: command = listen() if command == "": continue if "ciao" in command: speak("Ciao, come posso aiutarti?") elif "orario" in command: now = datetime.now().strftime("%H:%M") speak("L'orario attuale è " + now) elif "play" in command: speak("Eseguo il comando play") subprocess.run(["piir", "play", "--gpio", "17", "--file", "denon.json", "play"]) elif "esci" in command or "addio" in command: speak("Arrivederci, a presto!") break else: speak("Comando non riconosciuto, riprova.")if __name__ == "__main__": main()Statistics: Posted by Dende90 — Thu Feb 20, 2025 1:32 pm