Inoft Vocal Engine Docs
Francais (V1)
Francais (V1)
  • Introduction
  • Installation
  • FAQ
  • Concepts des assistants vocaux
    • Activation par invocation
  • Fonctions partagés
    • Recevoir une requête
    • Etat à choix multiples
    • Synthèse vocal basique
    • Réponses avancées & SSML
      • SpeechsList
      • Speech
    • Montage audio dynamique
    • Réponses
  • Plateformes
    • Alexa
      • Elements visuels
        • Conditions d'hébergements d'images
        • Carte Basique
      • Fonctions
        • Untitled
    • Google Assistant
    • Samsung Bixby
    • SIRI
  • Classes et application
    • Démarrage rapide
    • Résumé de toutes les classes
    • InoftSkill (application)
    • InoftRequestHandler
    • InoftStateHandler
    • InoftDefaultFallback
    • InoftCondition
    • InoftHandler
    • InoftHandlersGroup
  • Fonctionnalitées partagées
  • Réponses
  • Classes
  • Conventions techniques
    • Noms de classes
    • Réutilisation des mêmes choix
Propulsé par GitBook
Sur cette page
  • A savoir
  • Additionner plusieurs textes
  • Synthèse cross-plateforme
  • Fonctionnement
  • Arguments
  • Exemple
  • Usage
  • Synthèse par plateforme
  • Fonctionnement
  • Example
  • Usage

Cet article vous a-t-il été utile ?

  1. Fonctions partagés

Synthèse vocal basique

Pour générer la réponse à renvoyer à votre utilisateur, il est fréquent d'utiliser de la synthèse vocal basique. C'est à dire, où vous avez besoin d'uniquement fournir un texte pour qu'il soit synthétisé en prenant la voix de la plateforme sur laquelle est l'utilisateur (si l'utilisateur est sur Alexa, votre texte sera synthétisé avec la voix d'Alexa. Sur Google Assistant, avec la voix que vous avez définis pour votre application, etc).

Pour cela vous utiliserez la fonction self.say() pour répondre la même chose peu importe la plateforme, et

Vous ne pouvez utiliser les fonctions des synthèses, uniquement si votre code est à l'intérieur d'une classe des classes pour créer des réponses dans votre application. Voir toutes les classes

A savoir

Additionner plusieurs textes

Si vous utiliser la fonction self.say plusieurs fois (ou self.say cross-platform suivi de la même fonction spécifique à une plateforme comme self.alexa.say). Vos différents messages seront mise bout à bout, à la place qu'uniquement le dernier message soit conservé.

Synthèse cross-plateforme

self.say(text_or_ssml: str)

Fonctionnement

Si vous voulez que votre application aille répondre vocalement à votre utilisateur avec le message sur toutes les plateformes, vous utiliserez la fonction self.say("Votre texte")

La voix de synthèse qui sera utilisé seras celle de la plateforme actuel sur laquelle l'utilisateur interagit avec votre application, et optionnellement pour Google Assistant la voix que vous avez choisi d'utiliser pour votre application dans la console de développement.

En utilisant cette synthèse basique, la génération de la synthèse vocal, ne se fait pas du côté de l'Inoft Vocal Framework. Le framework va uniquement envoyer à Alexa/Google Assistant/Bixby/etc... le texte à synthétiser, qui le sera de leurs coté. Contrairement par exemple au module de montage audio dynamique, cette technique ne créer aucun fichier audio que vous aurez besoin de stocker.

Arguments

text_or_ssml

Obligatoire | Attends une valeur de type str (texte)

Vous permet de spécifier le texte que vous voulez synthétiser. Vous pouvez également y passer un texte en format SSML (en apprendre plus sur le SSML et les réponses avancées)

Exemple

self.say("Bien le bonjour l'ami !")

Résultat de l'exemple cross-platform sur le simulateur d'Alexa

Résultat de l'exemple cross-platform sur le simulateur de Google Assistants

Usage

app.py
from inoft_vocal_framework import InoftSkill, \
    InoftRequestHandler, InoftDefaultFallback

class LaunchRequestHandler(InoftRequestHandler):
    def can_handle(self) -> bool:
        return self.is_launch_request()

    def handle(self):
        self.say("Bien le bonjour l'ami !")
        return self.to_platform_dict()

# Une classe de DefaultFallback est obligatoire dans toutes applications
class DefaultFallback(InoftDefaultFallback):
    def handle(self):
        self.say("J'ai pas compris mon ami !")
        return self.to_platform_dict()

def lambda_handler(event, context):
    skill = InoftSkill()
    skill.add_request_handler(LaunchRequestHandler)
    skill.set_default_fallback_handler(DefaultFallback)
    return skill.handle_any_platform(event=event, context=context)
    
# Uniquement si le fichier est lancer depuis une machine local (et non sur
# le cloud). L'application sera lancé en simulant le lancement d'un skill Alexa.
if __name__ == "__main__":
    from inoft_vocal_framework import Simulator
    event_, context_ = Simulator(event_type="alexa/start").get_event_and_context()
    print(f"\n\nFinal Output : {lambda_handler(event=event_, context=context_)}")

Pour déployer ce code et le lier à une application sur assistants vocaux, veuillez voir la page de déploiement ici

Synthèse par plateforme

Fonctionnement

Si vous souhaitez avoir une réponse différente en fonction de la plateforme, vous pouvez accéder à la fonction say de manière spécifique à chaque plateforme à la place d'y accéder en cross-plateforme. A la place d'y accéder via le classique self.say, accédez-y via self.alexa.say, self.google.say, ou self.bixby.say. Dès que vous accéder à une fonction via non pas directement via le terme self, mais via le terme self suivi du nom de la plateforme, soit vous utilisez une fonctionnalité spécifique à la plateforme, qui ne seras pas utiliser sur l'autre. Soit vous définissez un comportement spécifique pour votre application en fonction d'avec quel plateforme votre utilisateur utilise.

Example

self.alexa.say("Bienvenue dans le skill Alexa !")
self.google.say("Bienvenue dans l'action Google !")

Résultat de l'exemple spécifique à la plateforme sur le simulateur d'Alexa

Résultat de l'exemple spécifique à la plateforme sur le simulateur de Google Assistant

Usage

app.py
from inoft_vocal_framework import InoftSkill, \
    InoftRequestHandler, InoftDefaultFallback

class LaunchRequestHandler(InoftRequestHandler):
    def can_handle(self) -> bool:
        return self.is_launch_request()

    def handle(self):
        self.alexa.say("Bienvenue dans le skill Alexa !")
        self.google.say("Bienvenue dans l'action Google !")
        return self.to_platform_dict()

# Une classe de DefaultFallback est obligatoire dans toutes applications
class DefaultFallback(InoftDefaultFallback):
    def handle(self):
        self.say("J'ai pas compris mon ami !")
        return self.to_platform_dict()

def lambda_handler(event, context):
    skill = InoftSkill()
    skill.add_request_handler(LaunchRequestHandler)
    skill.set_default_fallback_handler(DefaultFallback)
    return skill.handle_any_platform(event=event, context=context)
    
# Uniquement si le fichier est lancer depuis une machine local (et non sur
# le cloud). L'application sera lancé en simulant le lancement d'un skill Alexa.
if __name__ == "__main__":
    from inoft_vocal_framework import Simulator
    event_, context_ = Simulator(event_type="alexa/start").get_event_and_context()
    print(f"\n\nFinal Output : {lambda_handler(event=event_, context=context_)}")

Pour déployer ce code et le lier à une application sur assistants vocaux, veuillez voir la page de déploiement ici

PrécédentEtat à choix multiplesSuivantRéponses avancées & SSML

Dernière mise à jour il y a 5 ans

Cet article vous a-t-il été utile ?