Fermer

décembre 23, 2019

Création de compétences vocales pour Google Assistant et Amazon Alexa


À propos de l'auteur

Tris est un technologue créatif à Greenwood Campbell, une agence numérique primée. Il est spécialisé dans l'innovation dans le secteur technologique, pour se connecter…
En savoir plus sur
Tris

Les assistants vocaux quittent la technologie émergente pour entrer dans la vie de tous les jours. En tant que développeur frontal, vous avez déjà les compétences nécessaires pour en créer un, alors plongons-nous dans les plates-formes.

Au cours de la dernière décennie, il y a eu un changement sismique vers les interfaces conversationnelles. Alors que les gens atteignent «l'écran de pointe» et commencent même à réduire l'utilisation de leur appareil avec des fonctionnalités de bien-être numérique intégrées à la plupart des systèmes d'exploitation.

Pour lutter contre la fatigue de l'écran, les assistants vocaux sont entrés sur le marché pour devenir une option privilégiée pour récupérer rapidement des informations. . Une statistique bien répétée indique que 50% des recherches seront effectuées par la voix en 2020. De plus, à mesure que l'adoption augmente, il appartient aux développeurs d'ajouter des "Interfaces conversationnelles" et des "Assistants vocaux" à leur ceinture d'outils.

Conception L'invisible

Pour beaucoup, se lancer dans un projet d'interface vocale (VUI) peut être un peu comme entrer dans l'inconnu. En savoir plus sur les leçons apprises par William Merrill lors de la conception pour la voix. Lire l'article →

Qu'est-ce qu'une interface conversationnelle?

Une interface conversationnelle (parfois abrégée en CUI, est une interface en langage humain. Elle est considérée comme une interface plus naturelle pour le grand public que le Interface graphique utilisateur graphique, que les développeurs frontaux sont habitués à créer. Une interface graphique oblige les humains à apprendre ses syntaxes spécifiques de l'interface (boutons de réflexion, curseurs et listes déroulantes).

Cette différence clé dans l'utilisation du langage humain rend CUI plus naturel pour les gens; il nécessite peu de connaissances et met le fardeau de la compréhension sur l'appareil.

Les CUI se présentent généralement sous deux formes: les chatbots et les assistants vocaux. Les deux ont connu une augmentation massive de l'adoption au cours de la dernière décennie grâce aux progrès de Traitement du langage naturel (NLP).

Comprendre le jargon vocal

( Grand aperçu )
Mot-clé Signification
Compétence / Action Une application vocale qui peut répondre a seri es d'intentions
Intention Action prévue pour que l'habileté accomplisse, ce que l'utilisateur veut que l'habileté fasse en réponse à ce qu'il dit.
Énoncé La ​​phrase qu'un utilisateur dit ou prononce. [19659018] Wake Word Mot ou expression utilisé pour démarrer l'écoute d'un assistant vocal, p.ex. «Hey google», «Alexa» ou «Hey Siri»
Contexte Les informations contextuelles contenues dans un énoncé, qui aident la compétence à réaliser une intention, par exemple «Aujourd'hui», «maintenant», «quand je rentrerai à la maison».

Qu'est-ce qu'un assistant vocal?

Un assistant vocal est un logiciel capable de NLP (Natural Language Processing). Il reçoit une commande vocale et renvoie une réponse au format audio. Ces dernières années, la portée de la façon dont vous pouvez interagir avec un assistant se développe et évolue, mais le cœur de la technologie est le langage naturel, beaucoup de calculs, le langage naturel.

Pour ceux qui recherchent un peu plus de détails: [19659029] Le logiciel reçoit une demande audio d'un utilisateur, traite le son en phonèmes, les éléments constitutifs du langage.

  • Par la magie de l'IA (spécifiquement Speech-To-Text), ces phonèmes sont convertis en une chaîne de approximative request, celle-ci est conservée dans un fichier JSON qui contient également des informations supplémentaires sur l'utilisateur, la demande et la session.
  • Le JSON est ensuite traité (généralement dans le cloud) pour déterminer le contexte et l'intention de la demande.
  • En fonction de l'intention, une réponse est renvoyée, à nouveau dans une réponse JSON plus grande, soit sous forme de chaîne, soit sous forme de SSML (plus d'informations plus loin).
  • La réponse est traitée en retour à l'aide de l'IA (naturellement l'inverse – Texte- To-Speech) qui est ensuite renvoyé à l'utilisateur. [19659034] Il se passe beaucoup de choses là-bas, dont la plupart ne nécessitent pas de réflexion. Mais chaque plate-forme fait cela différemment, et ce sont les nuances de la plate-forme qui nécessitent un peu plus de compréhension.
    ( Grand aperçu )

    Périphériques activés par la voix

    Les exigences pour qu'un périphérique être capable d'avoir un assistant vocal intégré est assez faible. Ils nécessitent un microphone, une connexion Internet et un haut-parleur. Des haut-parleurs intelligents tels que le Nest Mini et l'Echo Dot fournissent ce type de commande vocale à faible fi.

    La prochaine place dans les rangs est la voix + l'écran, ce qui est connu comme un appareil «multimodal» (plus sur ces derniers plus tard), et sont des appareils comme le Nest Hub et l'Echo Show. Comme les smartphones ont cette fonctionnalité, ils peuvent également être considérés comme un type d'appareil multimodal à commande vocale.

    Compétences vocales

    Tout d'abord, chaque plate-forme a un nom différent pour ses «compétences vocales», Amazon va avec des compétences, qui Je m'en tiendrai à un terme universellement compris. Google opte pour «Actions», et Samsung opte pour «capsules».

    Chaque plate-forme a ses propres compétences intégrées, comme demander l'heure, la météo et les jeux de sport. Les compétences créées par des développeurs (tierces parties) peuvent être invoquées avec une phrase spécifique ou, si la plate-forme le souhaite, peuvent être implicitement invoquées, sans phrase clé.

    Invocation explicite : "Hey Google , Parlez à . »

    Il est explicitement indiqué quelle compétence est demandée:

    Invocation implicite :« ​​Hé Google, quel temps fait-il aujourd'hui? »

    Il est impliqué par le contexte de la demande quel service l'utilisateur veut.

    Quels assistants vocaux sont là?

    Sur le marché occidental, les assistants vocaux sont très bien une course de trois chevaux. Apple, Google et Amazon ont des approches très différentes de leurs assistants et, à ce titre, font appel à différents types de développeurs et de clients.

    Siri d'Apple

    Noms des périphériques : "Google Home, Nest" [19659005] Phrase de réveil : «Hey Siri»

    Siri compte plus de 375 millions d'utilisateurs actifs, mais par souci de concision, je ne vais pas trop dans les détails pour Siri. Bien qu'il puisse être globalement bien adopté et intégré dans la plupart des appareils Apple, il nécessite que les développeurs disposent déjà d'une application sur l'une des plates-formes Apple et qu'il soit écrit rapidement (tandis que les autres peuvent être écrits dans le favori de tous: Javascript). Sauf si vous êtes un développeur d'applications qui souhaite étendre l'offre de ses applications, vous pouvez actuellement ignorer Apple jusqu'à ce qu'il ouvre sa plate-forme.

    Assistant Google

    Noms des périphériques : "Google Home, Nest"

    Phrase de réveil : "Hey Google"

    Google possède le plus d'appareils des trois grands, avec plus d'un milliard dans le monde, cela est principalement dû à la masse d'appareils Android avec Google Assistant cuit en ce qui concerne leurs haut-parleurs intelligents dédiés, les chiffres sont un peu plus petits. La mission globale de Google avec son assistant est de ravir les utilisateurs, et ils ont toujours été très bons pour fournir des interfaces légères et intuitives.

    Leur objectif principal sur la plate-forme est d'utiliser le temps – avec l'idée de devenir une partie régulière des clients » routine quotidienne. En tant que tels, ils se concentrent principalement sur l'utilité, le plaisir en famille et les expériences délicieuses. Leur ajout récent de toile pour les jeux témoigne de cette approche. La plate-forme Google est beaucoup plus stricte pour les soumissions de compétences, et en tant que tel, leur répertoire est beaucoup plus petit.

    Amazon Alexa

    Noms des périphériques : «Amazon Fire, Amazon Echo»

    Phrase de réveil : «Alexa»

    Amazon a dépassé 100 millions d'appareils en 2019, cela provient principalement de la vente de leurs haut-parleurs intelligents et écrans intelligents, ainsi que de leur gamme «feu» ou de leurs tablettes et appareils de diffusion en continu.

    Les compétences développées pour Amazon ont tendance à viser l'achat de compétences. Si vous recherchez une plate-forme pour étendre votre e-commerce / service ou offrir un abonnement, Amazon est fait pour vous. Cela étant dit, le FAI n'est pas une exigence pour Alexa Skills, ils prennent en charge toutes sortes d'utilisations et sont beaucoup plus ouverts aux soumissions.

    Les autres

    Il y a encore plus d'assistants vocaux, comme Bixby de Samsung , Cortana de Microsoft et l'assistant vocal open source populaire Mycroft. Tous les trois ont un suivi raisonnable, mais sont toujours minoritaires par rapport aux trois Goliath d'Amazon, de Google et d'Apple.

    S'appuyant sur Amazon Alexa

    L'écosystème d'Amazons pour la voix a évolué pour permettre aux développeurs de développer toutes leurs compétences dans la console Alexa, donc comme exemple simple, je vais utiliser ses fonctionnalités intégrées.

    ( Grand aperçu )

    Alexa traite du traitement du langage naturel, puis trouve une méthode appropriée Intention, qui est transmise à notre fonction Lambda pour gérer la logique. Cela renvoie quelques bits conversationnels (SSML, texte, cartes, etc.) à Alexa, qui convertit ces bits en audio et visuels à afficher sur l'appareil.

    Le travail sur Amazon est relativement simple, car ils vous permettent de créer tous parties de vos compétences dans la console développeur Alexa. La flexibilité est là pour utiliser AWS ou un point de terminaison HTTPS, mais pour des compétences simples, tout exécuter dans la console Dev devrait être suffisant.

    Construisons une compétence Alexa simple

    Rendez-vous sur Amazon Console Alexa créez un compte si vous n'en avez pas et connectez-vous,

    Cliquez sur Créer une compétence puis donnez-lui un nom,

    Choisissez personnalisé comme modèle ,

    et choisissez Alexa-Hosted (Node.js) pour votre ressource backend.

    Une fois le provisionnement terminé, vous disposerez d'une compétence Alexa de base, votre intention sera conçue pour vous , et du code back-end pour vous aider à démarrer.

    Si vous cliquez sur le HelloWorldIntent dans vos intentions, vous verrez des exemples d'énoncés déjà configurés pour vous, ajoutons-en un nouveau en haut . Notre compétence s'appelle Hello World, alors ajoutez Hello World comme exemple d'énoncé. L'idée est de capturer tout ce que l'utilisateur pourrait dire pour déclencher cette intention. Cela pourrait être "Hi World", "Howdy World", et ainsi de suite.

    Que se passe-t-il dans l'accomplissement JS?

    Alors, que fait le code? Voici le code par défaut:

     const HelloWorldIntentHandler = {
    
        canHandle (handlerInput) {
    
            return Alexa.getRequestType (handlerInput.requestEnvelope) === 'IntentRequest'
    
                && Alexa.getIntentName (handlerInput.requestEnvelope) === 'HelloWorldIntent';
    
        },
    
        handle (handlerInput) {
    
            const speakOutput = 'Bonjour tout le monde!';
    
            return handlerInput.responseBuilder
    
                .speak (speakOutput)
    
                .avoir une réponse();
    
        }
    
    };
    

    Ceci utilise le ask-sdk-core et construit essentiellement JSON pour nous. canHandle permet à ask de savoir qu'il peut gérer des intentions, en particulier ‘HelloWorldIntent’. handle prend l'entrée et construit la réponse. Ce que cela génère ressemble à ceci:

     {
    
        "corps": {
    
            "version": "1.0",
    
            "réponse": {
    
                "outputSpeech": {
    
                    "type": "SSML",
    
                    "ssml": " Bonjour tout le monde! "
    
                },
    
                "type": "_DEFAULT_RESPONSE"
    
            },
    
            "sessionAttributes": {},
    
            "userAgent": "ask-node / 2.3.0 Node / v8.10.0"
    
        }
    
    }
    

    Nous pouvons voir que speak affiche ssml dans notre json, qui est ce que l'utilisateur entendra comme dit par Alexa.

    Building For Google Assistant

    ( Grand aperçu ])

    La façon la plus simple de créer des actions sur Google est d'utiliser leur console AoG en combinaison avec Dialogflow, vous pouvez étendre vos compétences avec Firebase, mais comme avec le tutoriel Amazon Alexa, simplifions les choses.

    Assistant Google utilise trois parties principales, AoG, qui traite de la PNL, Dialogflow, qui définit vos intentions, et Firebase, qui répond à la demande et produit la réponse qui sera renvoyée à AoG.

    Tout comme avec Alexa, Dialogflow

    Construisons une action sur Google

    Il existe trois plates-formes pour jongler à la fois avec la solution de Google, qui sont accessibles par trois consoles différentes, alors tabulez!

    Configuration de Dialogflow

    Commençons t en vous connectant à la console Dialogflow. Une fois connecté, créez un nouvel agent à partir du menu déroulant juste en dessous du logo Dialogflow.

    Donnez un nom à votre agent et ajoutez le "Google Project Dropdown", tout en sélectionnant "Créer un nouveau projet Google". [19659005] Cliquez sur le bouton créer, et laissez-le faire sa magie, cela prendra un peu de temps pour configurer l'agent, alors soyez patient.

    Configuration des fonctions Firebase

    Bon, maintenant nous pouvons commencer à brancher dans la logique d'exécution.

    Accédez à l'onglet Exécution. Cochez pour activer l'éditeur en ligne et utilisez les extraits JS ci-dessous:

    index.js

     'use strict';
    
    // Pour que vous ayez accès à l'objet de dialogue et de conversation
    const {dialogflow} = require ('actions-on-google');
    
    // Vous avez donc accès au contenu de la réponse à la demande >> functions.https.onRequest (app)
    fonctions const = require ('firebase-functions');
    
    // Créez une instance de dialogflow pour votre application
    const app = dialogflow ({debug: true});
    
    
    // Construire une intention qui sera satisfaite par Firebase,
    // le nom est le nom de l'intention sur laquelle le flux de dialogue passe
    app.intent ('Default Welcome Intent', (conv) => {
      
      // Toute logique supplémentaire va ici pour l'intention, avant de renvoyer une réponse pour que firebase gère
        return conv.ask (`Bienvenue dans une réalisation Firebase`);
      
    });
    
    // Enfin, nous exportons en tant que dialogflowFirebaseFulfillment pour que l'éditeur en ligne sache l'utiliser
    exports.dialogflowFirebaseFulfillment = functions.https.onRequest (app);
    

    package.json

     {
      "nom": "fonctions",
      "description": "Fonctions cloud pour Firebase",
      "scripts": {
        "lint": "eslint.",
        "serve": "firebase serve --only functions",
        "shell": "fonctions firebase: shell",
        "start": "npm run shell",
        "deploy": "firebase deploy --only functions",
        "logs": "fonctions firebase: log"
      },
      "moteurs": {
        "nœud": "10"
      },
      "dépendances": {
        "actions-sur-google": "^ 2.12.0",
        "firebase-admin": "~ 7.0.0",
        "firebase-functions": "^ 3.3.0"
      },
      "devDependencies": {
        "eslint": "^ 5.12.0",
        "eslint-plugin-promise": "^ 4.0.1",
        "firebase-functions-test": "^ 0.1.6"
      },
      "privé": vrai
    }
    

    Maintenant, revenez à vos intentions, accédez à Intention de bienvenue par défaut et faites défiler vers le bas jusqu'à la réalisation, assurez-vous que «Activer l'appel de webhook pour cette intention» est coché pour toutes les intentions que vous souhaitez réaliser avec javascript. Cliquez sur Enregistrer.

    ( Grand aperçu )

    Configurer AoG

    Nous approchons maintenant de la ligne d'arrivée. Rendez-vous sur l'onglet Intégrations, puis cliquez sur Paramètres d'intégration dans l'option Assistant Google en haut. Cela ouvrira un modal, alors cliquons sur test, qui intégrera votre Dialogflow avec Google, et ouvrira une fenêtre de test sur Actions sur Google.

    Sur la fenêtre de test, nous pouvons cliquer sur Talk to my test app (We will changer cela en une seconde), et le tour est joué, nous avons le message de notre javascript affiché sur un test de l'assistant google.

    Nous pouvons changer le nom de l'assistant dans l'onglet Développer, en haut.

    Happening In The Fulfillment JS?

    Tout d'abord, nous utilisons deux packages npm, actions-on-google qui fournit tout l'accomplissement dont AoG et Dialogflow ont besoin, et deuxièmement les fonctions firebase, qui vous l'avez deviné, contiennent des aides pour

    Nous créons ensuite l '«application» qui est un objet qui contient toutes nos intentions.

    Chaque intention qui est créée est passée «conv», qui est l'objet de conversation Actions sur Google envoyé. Nous pouvons utiliser le contenu de conv pour détecter des informations sur les interactions précédentes avec l'utilisateur (telles que leur ID et des informations sur leur session avec nous).

    Nous renvoyons un «objet conv.ask», qui contient notre message de retour au utilisateur, prêt pour lui à répondre avec une autre intention. Nous pourrions utiliser 'conv.close' pour mettre fin à la conversation si nous voulions y mettre fin.

    Enfin, nous emballons tout dans une fonction HTTPS Firebase, qui traite de la logique de requête-réponse côté serveur pour nous.

    Encore une fois, si nous regardons la réponse qui est générée:

     {
    
      "charge utile": {
    
        "Google": {
    
          "expectUserResponse": vrai,
    
          "richResponse": {
    
            "objets": [
    
              {
    
                "simpleResponse": {
    
                  "textToSpeech": "Welcome to a firebase fulfillment"
    
                }
    
              }
    
            ]
    
          }
    
        }
    
      }
    
    }
    
    

    Nous pouvons voir que conv.ask a vu son texte injecté dans la zone textToSpeech . Si nous avions choisi conv.close le expectUserResponse serait réglé sur false et la conversation se terminerait après la remise du message.

    Tierce partie Constructeurs de voix

    Tout comme l'industrie des applications, à mesure que la voix gagne du terrain, des outils tiers ont commencé à apparaître pour tenter d'alléger la charge sur les développeurs, leur permettant de construire une fois déployer deux fois.

    Jovo et Voiceflow sont actuellement les deux plus populaires, en particulier depuis l'acquisition de PullString par Apple. Chaque plate-forme offre un niveau d'abstraction différent, donc cela dépend vraiment de la façon dont vous êtes simplifié comme votre interface.

    Extension de vos compétences

    Maintenant que vous avez commencé à construire une compétence de base "Hello World", il y a beaucoup de cloches et de sifflets qui peuvent être ajoutés à votre compétence. Ce sont la cerise sur le gâteau des assistants vocaux et donneront à vos utilisateurs beaucoup de valeur supplémentaire, conduisant à une personnalisation répétée et à des opportunités commerciales potentielles.

    SSML

    SSML signifie langage de balisage de synthèse vocale et fonctionne avec une syntaxe similaire à HTML, la principale différence étant que vous créez une réponse parlée, pas un contenu sur une page Web.

    «SSML» en tant que terme est un peu trompeur, il peut faire bien plus que la synthèse vocale! Vous pouvez avoir des voix allant en parallèle, vous pouvez inclure des bruits d'ambiance, des pupitres (qui valent la peine d'être écoutés à part entière, pensez à des emojis pour des phrases célèbres) et de la musique.

    Quand dois-je utiliser SSML? ; cela fait une expérience beaucoup plus attrayante pour l'utilisateur, mais ce qui est également le cas, est de réduire la flexibilité de la sortie audio. Je recommande de l'utiliser pour des zones de discours plus statiques. Vous pouvez y utiliser des variables pour les noms, etc., mais à moins que vous n'ayez l'intention de construire un générateur SSML, la plupart des SSML vont être assez statiques.

    Commencez par un discours simple dans votre compétence, et une fois terminé, améliorez les zones qui sont plus statique avec SSML, mais obtenez votre cœur avant de passer aux cloches et aux sifflets. Cela dit, un rapport récent indique que 71% des utilisateurs préfèrent une voix humaine (réelle) à une voix synthétisée, donc si vous avez la possibilité de le faire, sortez et faites-le!

    ( Grand aperçu )

    Achats de compétences

    Les achats intégrés (ou FAI) sont similaires au concept d'achats intégrés. Les compétences ont tendance à être gratuites, mais certaines autorisent l'achat de contenu / abonnements «premium» dans l'application, elles peuvent améliorer l'expérience d'un utilisateur, débloquer de nouveaux niveaux sur les jeux ou permettre l'accès à du contenu payant.

    Multimodal [19659007] Les réponses multimodales couvrent bien plus que la voix, c'est là que les assistants vocaux peuvent vraiment briller avec des visuels complémentaires sur les appareils qui les prennent en charge. La définition des expériences multimodales est beaucoup plus large et signifie essentiellement plusieurs entrées (clavier, souris, écran tactile, voix, etc.).

    Les compétences multimodales sont destinées à compléter l'expérience vocale de base, fournissant des informations complémentaires supplémentaires pour booster l'expérience utilisateur. . Lorsque vous créez une expérience multimodale, n'oubliez pas que la voix est le principal vecteur d'information. De nombreux appareils n'ont pas d'écran, donc votre compétence doit encore fonctionner sans, alors assurez-vous de tester avec plusieurs types d'appareils; soit pour de vrai, soit dans le simulateur.

    ( Grand aperçu )

    Multilingue

    Les compétences multilingues sont des compétences qui fonctionnent dans plusieurs langues et ouvrent vos compétences à plusieurs marchés.

    Le la complexité de rendre vos compétences multilingues dépend de la dynamique de vos réponses. Compétences avec des réponses relativement statiques, par ex. renvoyer la même phrase à chaque fois, ou en utilisant uniquement un petit groupe de phrases, est beaucoup plus facile à rendre multilingue que d'étendre les compétences dynamiques.

    L'astuce avec le multilingue est d'avoir un partenaire de traduction fiable, que ce soit par le biais d'une agence ou d'un traducteur sur Fiverr. Vous devez pouvoir faire confiance aux traductions fournies, surtout si vous ne comprenez pas la langue dans laquelle vous le traduisez. Google translate ne coupera pas la moutarde ici!

    Conclusion

    S'il y avait un moment pour entrer dans l'industrie de la voix, ce serait maintenant. À la fois à ses débuts et à ses débuts, ainsi que dans le grand neuf, des milliards de dollars sont consacrés à sa croissance et à la présence d'assistants vocaux dans les foyers et les routines quotidiennes de tout le monde. construire, la plate-forme à utiliser doit briller ou, à défaut, utiliser un outil tiers pour couvrir vos paris et s'appuyer sur plusieurs plates-formes, surtout si votre compétence est moins compliquée avec moins de pièces mobiles.

    Je, pour ma part, suis enthousiasmé par l'avenir de la voix à mesure qu'elle devient omniprésente; la dépendance à l'écran diminuera et les clients pourront interagir naturellement avec leur assistant. Mais d'abord, c'est à nous de développer les compétences que les gens voudront de leur assistant.

     Editorial fracassant (dm, il)



  • Source link