Rhasspy : Les slots

rhasspy

Dans cet article, tu l’auras compris nous allons voir les slots de rhasspy.

Déjà, qu’est ce qu’un slot et à quoi ça sert ? Il y a des listes de paramètre qui reviennent très régulièrement. Par exemple, la liste du paramètre piece qui contiendrait toutes les pièces possibles de la maison. Le but des listes de slots dans rhasspy est de créer ces listes dans des fichiers dédiés. Ensuite on peut faire appel à ces listes facilement et rapidement pour générer nos phrases.

Créons notre premier slot piece

On va dans l’onglet slots

slots

Puis on clique sur le bouton vert « New Slot »

On donne un nom au slot : piece (attention pas d’accent !!!!). On aurait aussi pu appeler room pour des raisons évidentes de compatibilité.

Mais attention, le nom du slot ici, c’est le nom du slot dans rhasspy. Ce n’est pas grave si le nom du slot dans rhasspy ne correspond pas au nom du slot dans nos intents. On verra que dans nos sentences, on va faire la liaison entre un slot rhasspy et un slot de l’intent déclaré dans notre sentences.ini

On clique sur « New Slot » .

Une fois de retour sur l’onget Slots et dans la liste déroulante piece, remplir d’une pièce par ligne

Clique sur le bouton bleu « Save Slots » et tu peux annuler l’entrainement pour le moment. Si tu regardes sur dans ton profil rhasspy, tu peux voir qu’un dossier slots est apparu et que celui-ci contient 1 fichier qui s’appelle piece. Hé bien ce fichier contient la liste des valeurs possibles pour le slot piece.

Il te faut maintenant créer tous les slots dont tu peux avoir besoin.

Quelques idées de slots.

Alors en plus de piece, voici quelques slots que j’utilise donc si ça peut te donner des idées

color

Slot qui contient les couleurs

violette
verte
rouge
blanc froid
blanche
vert
rose
jaune
blanc chaud
blanc
bleu
violet
orange

quantity_state

slot qui contient un certain niveau d’ouverture/fermeture des volets

un peu
un quart
complètement
à moitié
un tiers
pas du tout
deux tiers
trois quart

recurse_value

Permet de détecter un mot (tous, toutes etc) qui indique une récursion dans tous les sites enfants. Par exemple « Toutes les lumières du rez-de-chaussé ». Cela sous entends les objets de types lumière affectés à la pièce « Rez-de-chaussé », mais aussi toutes les lumières de toutes les pièces enfant de la pièce « Rez-de-chaussé ». Par exemple, toutes les lumières de la cuisine, toutes les lumières du salon etc.

Cela n’est intéressant que si tu as besoin de gérer la liste des items demandés en fonction d’un item parent

toutes
toute
tout
tous

Comment utiliser les slots ?

C’est simple, c’est dans les sentences et les intents.

sentences

Nous allons par exemple créer l’intent « RecupTemperature ».

[RecupTemperature]
quelle est la température  [(du | de | de la | des | dans l| dans la | dans le)($piece){piece}]
combien fait il [(du | de | de la | des | dans l| dans la | dans le)($piece){piece}]
Peux tu me dire combien il fait [(du | de | de la | des | dans l| dans la | dans le)($piece){piece}]
Peux tu me dire la température [(du | de | de la | des | dans l| dans la | dans le)($piece){piece}]

Ce qui nous intéresse tout particulièrement dans la ligne ci dessus, c’est ceci :

($piece){piece}

Là, je suis en train de dire : Si une des pièces listées dans notre liste de slots rhasspy piece ($piece) est présente, alors cette pièce sera listée dans le slot qui s’appelle piece ( {piece} ) de notre intent.

Comme je l’ai écrit plus haut, ce n’est pas grave si notre slot rhasspy n’a pas le même nom que notre slot de l’intent. Lorsqu’on crée une intent avec ses slots, on fait la liaison entre un slot rhasspy et le slot de l’intent. Par exemple :

($piece){room}

Le nom du slot de notre intent sera donc room et non plus piece. Là, je suis en train de dire : Si une des pièces listées dans notre liste de slots rhasspy piece ($piece) est présente, alors cette pièce sera listée dans le slot de l’intent qui s’appelle room ( {room} ).

En fait, tu l’auras compris, il faut que le nom du slot dans ta sentence corresponde au nom du slot de l’intent. Donc, si tu as des intents existantes, il faut s’assurer que pour chaque intent existante, ce sont les bons noms de slot qui sont demandés.

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.