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
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.
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.
Poster un Commentaire