Google Assistant : Actions SDK Jouer avec les sons et avec SSML

Dans le précédent article Google Home : Dialogue avec Actions SDK, nous avons vu comment dialoguer avec Google Home. Dans cet article, nous allons voir comment effectuer plusieurs manipulations audio avec Google Home, à savoir épeler un mot et jouer un son.

Le projet que nous développerons dans cet article

Nous partirons du projet développé dans le précédent article Google Home : Dialogue avec Actions SDK disponible sur le tag v0.1 sur le dépôt MisterAnimals sur GitHub. Nous allons ajouter le cri des animaux à ce projet.

Webservice

Ajout de l’interrogation d’une information sur l’animal

Nous allons repartir de notre fichier index.js du projet, et ajouter une action pour le cri des animaux :

Nous avons donc notre méthode qui est capable de comprendre une demande sur le cri d’un animal. Nous allons donc en profiter également la méthode respondToAnimal() afin d’inclure le cri dans la liste des choix proposés à l’utilisateur :

Ajout des sons des cris des animaux

Firebase Hosting

Voici une collection de bruits d’animaux : animaux.zip

Dans notre dossier MisterAnimals, nous allons ajouter un dossier public qui contiendra lui-même un dossier sounds.

 mkdir -R public/sounds

Maintenant, nous allons ajouter une configuration concernant le hosting dans firebase.json. Il s’agit simplement d’indiquer que l’on ignore les fichiers affectés aux autres plateformes, et que nous déclarons le répertoire public comme étant le répertoire public.

Nous pouvons désormais déployer nos fichiers avec les sons des animaux :

firebase deploy --only hosting

Webservice

Nous allons maintenant ajouter les cris des animaux dans notre tableau des animaux, ce qui donne :

Il ne nous reste plus qu’à modifier la fonction getSound().Nous allons utiliser la balise <audio> pour jouer un son, et la balise <speak> pour indiquer que la réponse contient des méta-données :

Il ne nous reste plus qu’à déployer nos fonctions :

firebase deploy --only functions

Et voilà, il ne vous reste plus qu’à tester votre application pour écouter le bruit d’un animal :

Google Home Simulator

Plus loin avec SSML

Dans l’exemple précédent, nous avons utilisé le langage SSML (pour Speech Synthesis Markup Language). Le langage SSML permet beaucoup de possibilités dans la manière de parler d’un assistant. Nous avons vu comment jouer un fichier audio, mais il existe d’autres options. Nous allons commencer par entourer chaque réponse de l’assistant par des balises <speak> afin qu’il les analyse comme du SSML. Le contenu de notre fichier index.js devient donc :

Marquer une pause

Maintenant, nous pouvons remarquer que l’assistant répond souvent « Très bien« , avant d’enchaîner sur une autre question. En parlant naturellement, on aurait tendance à exprimer une pause juste après avoir dit « Très bien » dans ce contexte. Nous pouvons demander à l’assistant par exemple de faire une pause de une seconde, à l’aide de la balise <break> :

Épeler un mot

Nous savons que la femelle du lièvre est la hase, et son petit le levraut. On peut raisonnablement penser que quelqu’un entendant ses mots pour la première fois ait quelques difficultés à les écrire. Il pourrait être intéressant, lorsque l’assistant donne ces informations, qu’il les épelle également. C’est également possible à l’aide de la balise <say-as>. Ainsi, nous allons modifier le code concernant le lièvre comme suit :

Autres usages

Il existe d’autres balises pour d’autres usages au SSML. Pour plus d’informations, rendez-vous sur la page de référence SSML de la documentation du Actions SDK.

Conclusion

Nous avons vu dans cet article comment améliorer le retour audio de l’assistant à l’aide du langage SSML. Dans un prochain article, nous verrons comment authentifier l’utilisateur dans une nouvelle application.

En attendant, le code de la version de l’application telle qu’elle est à la fin de cet article est disponible au tag v0.2 du dépôt GitHub MisterAnimals.

Twitter
Vous avez aimé cet article ? N’hésitez pas à me suivre sur Twitter pour être informé des prochains.
Développeur Android freelance depuis Avril 2016, je partage sur mon blog aussi bien que dans des meetups.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *