Je voudrais faire mon propre assistant vocal local

2-4s sur mon RPI4 avec Vosk.

Mon RPI4 est déjà chargé, c’est pas une option pour moi.
C’est bien comme idée si on a un home server un peu violent, mais sinon, sur du RPI ou des solutions Green/Yellow/etc., c’est pas ça (AMHA)

Hello @WarC0zes ,

Tu veux recycler un ancien rpi3 en wyoming-satellite ?

Sur un petit Nuc i3/8Go, HAOS, Frigate sans coral, Assist 100 % local avec 4 satellite… aucun pb et réponse assist en moins d’1 seconde :grin:

Oui, j’ai ca sous la main. Je voudrais aussi essayer un autre esp que mon atom echo.
En attendant si je peu faire des teste avec un rpi3 , pourquoi pas.

Wyoming satellite doit pouvoir tourner sur un RPI3 puisqu’il tourne sur un RPI zero 2.
Je l’ai sur un RPI4 de mon côté
rhasspy/wyoming-satellite: Remote voice satellite using Wyoming protocol (github.com)

Et l’install finger in the noze :
wyoming-satellite/docs/tutorial_installer.md at master · rhasspy/wyoming-satellite (github.com)

oui, l’installe a l’air simple. Faut que je trouve un micro et HP en USB.
Ca fonctionne pas sur le jack pour le HP ?

Si, ça fonctionne c’est juste un réglage à faire dans le menu

1 « J'aime »

Et ? cette demo de JLO , qui date, utilise un esp32 et assist… C’est déjà réalisable en natif sans réinventer la roue.
Le seul point où je te rejoint, c’est pour le LLM, mais là faut avoir de la "Grosse " ressource si tu veux du local.

Alors en fait pas tant que ça. Il existe déjà des modèles sympa à moins de 7b pour faire des trucs rudimentaires sympas. Certains fantasment déjà sur du Mistral sur un RPI5, mais je dirais que bof bof ça rame. Comme je disais, sur un homelab ça a du sens (si ya de la RAM et un GPU sympa). Le malheur, c’est que pour le moment, ya pas trop de solution à part à monter une machine avec un CPU potable, d’la RAM et un GPU un peu péchu. J’ai fouillé un peu pour trouver un NUC ou équivalent qui pourrait avoir un GPU… yapas !

J’étais très attentif à ce qu’il disent chez Nabu Casa l’autre jour à propos de ça (lors du dernier live), et effectivement, pour le moment, ce genre d’infra coûte dans les 1k€. Mais j’ai dans l’idée que tout le monde va nous mettre un peu des IA partout dans tous les sens, et qu’on va finir par héberger ses propres LLM & co chez soi.

Salut,
j’ai essayer sur mon rpi3, ca fonctionne :wink:
j’ai utiliser un micro de singstar de PS2, micro en jack brancher a un boitier en usb et le RPI la détecter :sweat_smile:
J’avais pas d’enceinte, j’ai utiliser des écouteurs.
projet bien sympa :+1:

1 « J'aime »

Hello,
J’avais un ancien respeaker 4 de l’époque de Rhasspy, mais le coup du micro PS2, c’est bien trouvé :+1:
Tu as du te rendre compte du « feu d’artifice » de mises à jours avant hier soir ( snowboy, porcupine, vosk…etc)
Pour info, je ne sais pas si tu l’utilise, mais Mike a aussi amélioré Assist-Microphone ( vu directement par wyoming maintenant) , par contre si déjà installé il ne se met pas à jour vers la nouvelle version. Il faut donc le désinstaller et installer le nouvel addon.

Il m’a aussi soufflé qu’il y aurait d’autres nouveautés prochainement :wink:

@+

Oui, j’ai vu plein de maj. Ta openwakeword qui a inclus la création d’un wake word custom.

Je connais pas. mais j’ai plus de port libre sur mon rpi.

je savais que ca pourrais servir un jour :stuck_out_tongue:

C’étais déjà le cas , mais la procédure fonctionne surtout pour des wakeword à consonnance anglophone

Ok, j’avais pas vu l’info.

Je pense prochainement tester assist avec une de mes cameras reolink externe en audio bidirectionnel.
Avec un peu d’imagination je trouverai certainement quelques cas d’usage intéressants ou fun :grin:

1 « J'aime »

Grâce à ce topic je viens de découvrir VOSK.
Et il faut dire que ça donne vraiment un intérêt pour faire de la reconnaissance vocale en local sans avoir une bête de course (j’ai un Raspberry Pi 4).

Même si j’ai l’intention de construire mes propres satellites vocaux j’ai commencé par travailler sur ce qu’il serait faisable de commander à la voix ou pas. J’ai eu de belles surprises et de moins bonne. Je viens faire ici le bilan de ce que je sais faire et de ce pourquoi j’aurais besoin d’aide.

Dans le répertoire « \share\vosk\sentences » j’ai créé le fichier « fr.yaml » dont voici le contenu

sentences:
  - (allume|éteint) (la|les) lumière[s]
  - (allume|éteint) <piece>
  - (allume|éteint) {ampoule}[ à <luminosite>]
  - (active|allume|désactive|éteint) {control}
  - (active|allume|désactive|éteint) [l']{equipement}
  - (ouvre|ferme) ((le|les) rideau[x] (de la|du) {piece}|{rideau})
  - passe l'aspirateur[ dans (<piece>|les wc|l'appartement)]
  - (stop|arrête) l'aspirateur
  - (renvoie|ramène) l'aspirateur à (la|sa) base

expansion_rules:
  piece: "([le|la|les] {piece}|l'{piece})"
  luminosite: "(cinq|dix|quinze|vingt|vingt-cinq|trente|quarante|cinquante|soixante|soixante-dix|soixante-quinze|quatre-vingt|quatre-vingt-dix|quatre-vingt-quinze|cent) pourcent"

lists:
  piece:
    values:
      - "salon"
      - "cuisine"
      - "entrer"
      - "chambre"
      - "toilette"
      - "salle de bain"
  ampoule:
    values:
      - "Plafonnier"
      - "GrandMarnier"
      - "Plafond"
      - "Miroir"
      - "Cuisine"
      - "Chambre"
      - "Entrer"
      - "Wc"
  control:
    values:
      - "salonAuto"
      - "cuisineAuto"
      - "chambreAuto"
      - "entrerAuto"
      - "salleDeBainAuto"
  equipement:
    values:
      - "ordinateur"
      - "imprimante3D"
  rideau:
    values:
      - "rideaux salon"
      - "rideauCuisine"
      - "rideauGauche"
      - "rideauDroit"

J’ai réussi donc à allumer et à éteindre la lumière, à ouvrir et à fermer les rideaux, et également à passer l’aspirateurs jusqu’à pouvoir choisir la pièce unique où l’aspirateur doit passer.

Mais il y a deux points qui m’embêtes :

  1. Le premier c’est pour régler la luminosité d’un éclairage.
    Je n’ai pas trouvé un moyen exhaustif pour indiquer le pourcentage de luminosité de mon ampoule. Je suis actuellement obligé d’indiquer en toutes lettres chacune des valeurs que je veux pouvoir fixer. Quelqu’un connaît-il une autre méthode ?
expansion_rules:
  luminosite: "(cinq|dix|quinze|vingt|vingt-cinq|trente|quarante|cinquante|soixante|soixante-dix|soixante-quinze|quatre-vingt|quatre-vingt-dix|quatre-vingt-quinze|cent) pourcent"
  1. Lorsque j’utilise une phrase comme déclencheur dans une automation la syntaxe de cette dernière est très similaire à celle de VOSK. Le problème c’est que les listes ou modèles contenus dans mon fichier YAML ne sont pas reconnus par l’automation. Y a t-il un moyen que les « expansion rules », par exemple, soit elle aussi transférer automatiquement pour les automations ?

Hello

Pourquoi as-tu créé des sentences dans Vosk alors que les sentences natives de HA couvrent ces domaines ?
Le réglage de luminosité/couleur fonctionne très bien avec les sentences natives à HA

@+

1 « J'aime »

Il faut croire que j’aime me compliquer la vie :sweat_smile:.
Blague à part c’est vrai que ça marche bien sans. Il va juste falloir que je retravaille les noms de certaines de mes entités et pièces ou ajouter quelques alias.
Merci beaucoup !

Par contre concernant le réglage de la luminosité j’ai un petit problème

Moi: allume l'entrée à cinquante pour cent
HA: Désolé, je ne connais pas la pièce cinquante pour cent
Moi: allume entrée à cinquante pourcent
HA: Luminosité réglée

Je ne comprends pas pourquoi le L apostrophe change la façon d’écrire « pour cent »

Il est annoncé dans la bêta d’avril une intégration ollama pour rendre nos assistants moins bêtes :

J’espère fort fort :crossed_fingers: