Voici le projet d’assistant vocal HA que j’ai en tête depuis un petit moment, et je cherche à trouver une solution pour avoir mon propre système DIY de reconnaissance vocale associé à Assist.
Voilà l’idée :
Prérequis que j’ai ou vais installer :
des haut parleurs dans toutes les pièces chez moi, le tout connecté à HA (pour musique et TTS)
des bandes à leds adressables (commandé par ESP32) dans toutes les pièces en éclairage indirect, connecté à HA, pour la lumière dite « de circulation » (on entre dans une pièce, une lumière indirecte s’allume. Plus personne, elle s’éteind. toussa, toussa)
Concept :
Un boitier avec un ESP32 (ou équivalent) avec un micro reconnait un mot clé de commande (Jarvis ou Marvin ou Alexa, whatever), enregistre les quelques secondes de la commande vocale qui suit en wav, transmet au RPI Home Assistant par wifi, transcrit le wav en texte, transmet à Assist qui traite la commande.
Accessoirement (et parce que je suis un nerd en puissance ! - et qu’il faut que ça fasse classe - ou frime selon les goûts)
Lors du wake up, utiliser les bandes leds de la pièce pour faire un truc du genre : LED Strip trail effect - YouTube (ça sert de retour visuel indiquant que la commande est en traitement). Une fois la commande traitée, dire (tts) « OK » ou alors un truc genre « Bien, maître » => pour les psychopathes mégalos.
Contraintes non négociables :
fonctionne en local (zero cloud)
total DIY (no GAFAM, no techno propriétaire)
electro-efficient (conso électrique super mini)
encombrement tout réduit
boitier esp+micro satellite alimenté par usb facile à installer un peu n’importe où dans n’importe quelle pièce
Et donc, après quelques recherches, j’ai découpé mon système comme suit :
un esp32 avec un micro et une extension genre tenserflow pour la reconnaissance du wake-word, puis enregistrement wav
une instance Rhasspy qui fait du Speech to Text depuis le wav
un transfert du texte généré vers Assist
Accessoirement HA doit pouvoir savoir de quelle pièce est émise la commande pour gérer le contexte (il y aurait un boitier satellite par pièce)
Quelqu’un aurait connaissance d’un projet similaire ou de briques (hard ou soft) déjà existantes pour faire avancer mon projet ?
Je suis capable d’adapter du code existant mais pas de me taper le projet en entier, n’ayant pas trop encore de bagage avec les technos ESP ou instance Rhasspy ou faire causer tout le monde ensemble.
Comme toujours, question, remarques ou critiques bienvenues !
Et d’avance, merci.
NabuCasa ayant aquis Rhasspy, et ce qui est dit dans les liens partagés par @Giga77 ils va clairement y avoir des choses dans ce sens.
Les briques sont en train de se mettre ne place.
A l’heure actuelle, je ne sais pas si quelqu’un a réussi à tirer quoi que ce soit de Assist en Français. Ceux que j’ai entendu ne sont pas allé loin et mes tests se sont terminés sur des echecs
Mais bon Assist c’est tout nouveau, il faudra 2 ou 3 releases supplémentaires pour arriver à quelque chose, et j’ai peur que de se lancer en l’état c’est devoir perdre pas mal de temps pour combler en DIY des trous qui le seront dans une release.
Le problème principale je pense sera le matériel. avoir des micros aussi efficaces qu’une Echo ça va pas être évident. Et c’es là dessus qu’il faudrait se pencher le plus je pense.
Je pensais faire un truc du genre si qqun annonce « ok Google » ou « Alexa », la requête part dans le service concerné.
Et un wake word pour HA qui se limite en local
Perso, j’ai pas Alexa , j’ai juste un Google Mini et un Nest Hub que je n’utilise que pour faire du TTS
J’irai explorer les pistes indiquées ici plus tard; là chuis en weekend
Aller, je déterre . Avec la maj 2023.5 as tu avancer sur le sujet. Je suis assez curieux. La problématique pour moi est les micros. Le dot amazon possède un quartet de micro longue portée, faudrait trouver l equivalance pr le brancher sur un esp.
As tu avancer ds tes recherches?
Ouai enfin, j’ai vu la demo sur l’atom, je suis assez dubitatif quand même Je ne possède pas d amazon dot, mais mes parents oui. et il faut dire que j’étais assez bluffé de la puissance des micros. dans l’autre pièce, tu arrivais a faire marcher alexa. Là on est pas sur un micro ou il faut parler a 5 cm du bins.
et en plus t’as un haut parleur integré sur le dot, amazon a quand même fait un super produit. il faudrait le même hardware mais sans la partie logiciel. Je pense qu’a l’heure de l’open source, il ya tous ce qui faut pour reproduire ca, mais mes compétences hélas ne le permettent pas.
pour raviver ce thread, j’ai suivi la conférence d’hier sur YT ici la video explique comment faire son propre voice assistant NO-CLOUD a base d’un ESP32 + un micro et un micro ampli pour y connecter un haut parleur.
faut un peu de patience, la partie ESP32 n’est pas au début de la video mais ca vaut la peine, d’ailleurs j’ai commandé le matos sur AlieX
Voilà voilà
installé mpd (service), j’ai un media_player en plus (pratique)
ajouté tout ça dans HA
Openwakeword marche bien (même des fois un peu trop, il récupère des trucs aléatoirement, depuis la TV), l’enregistrement des ordres est propre (wav sans trop de bruit).
PAR CONTRE : whisper est dans les choux complet ! il ne comprend rien, j’ai beau tweeker dans tous les sens, essayer d’autres modèles ou paramètre, nada : y capte keud
Du coup, je me demandais si je peux utiliser un truc cloud dans mon pipeline, en attendant d’avoir quelque chose capable de traiter du STT (genre GPU, TPU Coral, whatever…)
Si qqun a des infos/idées/tutos, je prends; c’est le dernier truc qui me manque pour faire mon assistant local.
A noter que je prends aussi si qqun sait comment créer plusieurs wakewords parce que je voudrais que ça déclenche des pipelines différents.
Vosk foirasse lamentablement avec des erreurs docker (j’utilise pas docker) ou des trucs du genre : main.py: error: argument --correct-sentences: invalid float value: ‹ null ›