Domanda Assistente Vocale Migliorie

HaDoCk

Utente Iron
10 Agosto 2022
6
3
1
12
Ciao ragazzi sapreste aiutarmi ad ottimizzare un codice python riguardante il mio assistente vocale (JARVIS)
esso è un assistente che è un po come alexa o google home, sta sempre in ascolto e in base a quello che sente compie un azione o parla
ora io ho qualche problema:

1) devo assolutamente cambiare voce perché quella predefinita non si può sentire
2) devo far in modo che egli mi ascolti solo se pronuncio la parola di attivazione(Jarvis)
3) non capisce bene quello che dico e a volte non sente proprio e gli si deve ripetere la frase qualche volta per farglielo capire
4) è un programma molto lento infatti ci mette tempo sia ad avviarsi sia a compiere le azioni sia a capire quello che dico
5) io vorrei integrare ľapi key di chat gpt ma non riesco nonostante ho tentato tutte le soluzioni non va
 
Per Jarvis intendi lo script postato in questa discussione?


Non è così facile creare un assistente vocale come vorresti nonostante esistono vari servizi avanzati che offrono delle API. Ti dico perché:

  1. Il modulo che usi per "parlare" pyttsx3 è un semplice text to speech, al massimo puoi cambiare la voce della lingua e alterare il tono. Se vuoi una cosa più realistica serve uno strumento più avanzato
  2. Per fare questo ti serve configurare lo speech to text con un engine buono che funzioni offline altrimenti manderà tutto ciò che sente online per verificare che tu abbia detto "Jarvis". Leggi la documentazione sul loro repo.
  3. Lo risolvi scegliendo l'engine buono come da punto 2 e con le considerazioni finali
  4. Questo dipende da una miriade di cose, comunque non puoi aspettarti troppo da un programma in python che usa tool terzi prima in locale e poi online
  5. Come dovremmo saperlo noi? Non va non è un'informazione utile
Aggiungo altre considerazioni:
  • Le domande controllate dall'if sono troppo specifiche, basta che aggiunge un articolo che non hai detto non capisce più
  • Visto che jarvis marca sempre l'inizio del messaggio fai un indexOf: se manca fai continue al ciclo ascoltando di nuovo. Se c'è taglia la stringa immediatamente dopo lo spazio così puoi gestire tutte le situazioni "ehi jarvis" in un colpo solo
  • Invece di dover fare un if per ogni sito o playlist dovresti farne uno per "apri" e poi usare una mappa o database con i siti/comandi registrati salvata su file in modo che può apprendere nuove cose senza modificare il codice
 
  • Mi piace
Reazioni: --- Ra ---
Per Jarvis intendi lo script postato in questa discussione?


Non è così facile creare un assistente vocale come vorresti nonostante esistono vari servizi avanzati che offrono delle API. Ti dico perché:

  1. Il modulo che usi per "parlare" pyttsx3 è un semplice text to speech, al massimo puoi cambiare la voce della lingua e alterare il tono. Se vuoi una cosa più realistica serve uno strumento più avanzato
  2. Per fare questo ti serve configurare lo speech to text con un engine buono che funzioni offline altrimenti manderà tutto ciò che sente online per verificare che tu abbia detto "Jarvis". Leggi la documentazione sul loro repo.
  3. Lo risolvi scegliendo l'engine buono come da punto 2 e con le considerazioni finali
  4. Questo dipende da una miriade di cose, comunque non puoi aspettarti troppo da un programma in python che usa tool terzi prima in locale e poi online
  5. Come dovremmo saperlo noi? Non va non è un'informazione utile
Aggiungo altre considerazioni:
  • Le domande controllate dall'if sono troppo specifiche, basta che aggiunge un articolo che non hai detto non capisce più
  • Visto che jarvis marca sempre l'inizio del messaggio fai un indexOf: se manca fai continue al ciclo ascoltando di nuovo. Se c'è taglia la stringa immediatamente dopo lo spazio così puoi gestire tutte le situazioni "ehi jarvis" in un colpo solo
  • Invece di dover fare un if per ogni sito o playlist dovresti farne uno per "apri" e poi usare una mappa o database con i siti/comandi registrati salvata su file in modo che può apprendere nuove cose senza modificare il codice
Ciao!
innanzitutto grazie per la risposta, ci tengo a dire che io non so programmare in python e che ľintero programma è stato scritto da un intelligenza artificiale (da me è stato solo modificato secondo le mie esigenze) quindi non riesco a seguire i tuoi consigli a causa di ciò.
Vorrei imparare solo che non so da dove iniziare, qui nel forum ci sta una guida o qualcosa per aiutarmi?
 
Non puoi pretendere di far scrivere un programma complesso completamente ad un IA: anche perché spesso sono più gli errori che fa rispetto alle cose giuste, allo stato attuale. L'IA potresti utilizzarla per scrivere velocemente qualche funzione o qualche script, ma per poter adattare al meglio il tuo programma alle tue esigenze devi imparare a programmare, altrimenti non uscirà mai fuori nulla di decente. Sul forum ci sono già tante guide e riferimenti per imparare. Se ti interessa il machine learning, automazione, robotica e argomenti affini come questo, impara bene il Python. Ti linko la sezione apposita del forum:


😉😉😉
 
Ciao!
Confermo tutto quello che ha detto @CrazyMonk,
Fare un assitente vocale personalizzato richiede sicuramente delle capacità di programmazione software, non basta mettere insieme i pezzi scritti da un AI.
Mi permetto di suggerire alcuni progetti già esistenti per non dover re-inventare la ruota, entrambi integrabili su python.

Per la hotword detection:
Snowboy
Porcupine

Text To Speech personalizzabile:
TTS
Bark

Questi ultimi sono un po più GPU intensive, generare una voce con reti neuronali non è cosa da arduino..
Ogni progetto ha la sua documentazione che spiega come personalizzare il modello.
porcupine è licenziato ma è anche il più semplice da personalizzare.

Buon coding.