TJBOT comme illustration des services IBM Watson

Bonjour, Habr! Au printemps 2019, le prochain Think Developers Workshop a eu lieu, où tout le monde pouvait assembler un robot en carton TJBota exécutant IBM Watson Services. Sous le cutter se trouvent des instructions détaillées sur comment et comment assembler un tel robot, des liens utiles et des recettes simples qui démontrent certaines des capacités cognitives des services Watson, ainsi qu'une brève annonce de deux séminaires en juillet sur Watson Services dans le bureau de Moscou d'IBM.

image


Les services IBM Watson sont un système cognitif qui peut traiter le langage naturel, reconnaître des images et apprendre. Pour une utilisation pratique de ces services dans n'importe quelle application, une API existe.

TJBot est un projet open source conçu pour faciliter l'accès aux services Watson. Il s'agit d'un robot que chaque framboise pi et toute intelligence artificielle prête à l'emploi peuvent fabriquer. TJBot peut être relancé avec des recettes.

Les recettes sont des instructions pas à pas pour vous aider à connecter votre TJBot aux services Watson tels que la synthèse vocale, la reconnaissance visuelle et le traducteur de langue. Les recettes sont basées sur le Raspberry Pi.

Ce qui est nécessaire pour TJBota


  • Carte SD Raspberry Pi 3 + OS
  • Micro USB
  • Haut-parleur Bluetooth ou haut-parleur de 3,5 mm. prise audio
  • Entraînement servo
  • LED RGB NeoPixel (8 mm)
  • Maman maman et papa maman
  • Appareil photo Raspberry Pi
  • Alimentation
  • Boîtier (peut être imprimé sur une imprimante 3D ou découpé au laser dans du carton. Les dispositions nécessaires sont ici )



Les instructions de montage se trouvent ici .

Le schéma de connexion de la diode et du servo à la carte dans l'image ci-dessous.

image

Le boîtier est assemblé «autour» de la carte, vous devez donc d'abord écrire le système d'exploitation sur la carte mémoire.

Le moyen le plus simple est d'installer NOBS , mais tout autre Linux nous convient. Avant d'installer NOOBS, formatez la carte mémoire, téléchargez l'archive avec les fichiers d'installation et exportez-les sur votre ordinateur. Ensuite, vous devez transférer les fichiers du dossier NOOBS vers la carte mémoire. La première fois que vous démarrez Raspberry (avec une carte mémoire précédemment insérée), le menu d'installation du système d'exploitation s'ouvre. Des instructions détaillées peuvent être trouvées ici .

Préparation du programme


La première chose à faire est d'installer les packages:

curl -sL http://ibm.biz/tjbot-bootstrap | sudo sh – 

Téléchargez maintenant les recettes prêtes à l'emploi sur le github:

 git clone https://github.com/ibmtjbot/tjbot.git 

Accédez au répertoire avec la recette:

 cd tjbot / recipes / speech_to_text 

Ce dossier contient le fichier de configuration config.js et le fichier avec le script exécutable stt.js.

Installez npm:

 sudo apt-get install npm 

Connecter les services Watson


Pour utiliser les services Watson, vous devez suivre ces étapes.

Nous passons sur ce site .

image

Inscrivez-vous et accédez au répertoire. Dans le catalogue, nous recherchons le "speech to text". Speech to text est un service utilisé pour traduire la parole en texte. Vous pouvez accéder à l'API ici .

image

La synthèse vocale et la reconnaissance visuelle seront également nécessaires lorsque nous travaillerons avec la reconnaissance d'image. Nous cliquons sur la synthèse vocale, nous arrivons à la page avec une description de ce composant et des plans d'utilisation.

image

Un forfait gratuit nous suffit. Cliquez sur créer, puis dans le menu de gauche, accédez à Service Credentials.

image

À partir d'ici, vous devez copier les informations d'identification et APIKEY et les coller dans le fichier config.js.

 // Create the credentials object for export exports.credentials = {}; // Watson Speech to Text // https://www.ibm.com/watson/services/speech-to-text/ exports.credentials.speech_to_text = { "apikey": "...", "iam_apikey_description": "...", "iam_apikey_name": "...", "iam_role_crn": "...", "iam_serviceid_crn": "...", "url": "https://gateway-lon.watsonplatform.net/speech-to-text/api" }; 

Maintenant, si nous voulons ajouter un autre service Watson, dans le fichier de configuration, nous devrons ajouter un bloc avec apikey et url à chaque service, enveloppé dans la construction suivante:

 exports.credentials.[ text_to_speech/visual_recognition/speech_to_text ] = { … }; 

La renaissance de TjBota


Considérez le fichier avec le script de bot exécutable stt.js. Il a une fonction diskoParty () prête à l'emploi pour vérifier le fonctionnement du bot sans utiliser les services Watson. Cette fonction fait clignoter la diode du robot dans différentes couleurs.

 function discoParty() { for (i = 0; i < 30; i++) { setTimeout(function() { var randIdx = Math.floor(Math.random() * tjColors.length); var randColor = tjColors[randIdx]; tj.shine(randColor); }, i * 250); } } discoParty(); 

Dans le même script, il y a une fonction qui vous permet de changer la couleur de la diode en utilisant le discours du développeur.

Exécutez le script:

 sudo node stt.js 

Dites au bot «tournez la lumière bleue» pour changer la couleur de la diode en bleu, «allumez la lumière» pour allumer la diode ou «éteignez la lumière» pour l'éteindre. Couleurs prises en charge pour la reconnaissance (jusqu'à présent, seul l'anglais est pris en charge): jaune, vert, orange, violet, magenta, rouge, bleu, aqua et blanc.

TjBot a beaucoup de fonctions de base. Par exemple, pour vérifier le servo, vous pouvez utiliser la fonction tj.wave (), qui fait que le bot vous salue avec une vague de la poignée. Ces fonctions de description courte peuvent être trouvées ici .

Considérons maintenant le scénario suivant, utilisant à la fois la reconnaissance visuelle et la synthèse vocale.

La synthèse vocale est un service qui convertit le texte imprimé en parole à l'aide de diverses voix, touches et langues. Son API peut être trouvée sur le lien suivant. Le service de reconnaissance visuelle vous permet de décrire ce qui est montré sur l'image. Il reconnaît les visages des personnes avec une détermination de leur âge et sexe approximatifs, de la nourriture, des plats, des objets et peut rechercher des images similaires. L'API de ce service peut être trouvée ici . En utilisant ces services, nous apprendrons au bot à voir et à parler. Sur la base de l'image reçue de la caméra, les services Watson (reconnaissance visuelle) nous enverront un objet json avec des balises d'image comme réponse, et la synthèse vocale aidera à les exprimer.

Tout d'abord, créez des informations d'identification sur cloud.ibm.com. Nous les copions et les collons dans le fichier de configuration config.js.

Ensuite, modifiez le script exécutable stt.js. On y retrouve les lignes suivantes:

 // these are the hardware capabilities that our TJ needs for this recipe var hardware = ['led', 'microphone']; 

La matrice matérielle contient les périphériques de bot utilisés. Si nous voulons utiliser un servo dans le script, il sera nécessaire de signer «servo» dans le tableau, si nous avons besoin d'une caméra, nous ajouterons «caméra» au tableau, pour utiliser la colonne nous écrirons «haut-parleur».
Ainsi, notre script utilisera une colonne et une caméra, respectivement, nous nous connectons à la matrice matérielle.

 // these are the hardware capabilities that our TJ needs for this recipe var hardware = ['led', 'servo', 'camera', 'speaker', 'microphone']; // set up TJBot's configuration var tjConfig = { log: { level: 'verbose' }, speak: { language: 'en-US', // see TJBot.prototype.languages.speak voice: undefined, // use a specific voice; if undefined, a voice is chosen based on robot.gender and speak.language speakerDeviceId: "plughw:0,0" // plugged-in USB card 1, device 0; see aplay -l for a list of playback devices }, listen: { microphoneDeviceId: "plughw:1,0", // plugged-in USB card 1, device 0; see arecord -l for a list of recording devices inactivityTimeout: -1, // -1 to never timeout or break the connection. Set this to a value in seconds eg 120 to end connection after 120 seconds of silence language: 'en-US' // see TJBot.prototype.languages.listen }, }; 

A partir des fonctions de base de la bibliothèque tj, nous avons besoin des fonctions tj.see () et tj.speak ().

La fonction tj.see () crée une photo (l'objet est stocké dans le dossier tmp), l'envoie au cloud avec les services Watson, analyse l'image et produit un objet json composé de balises - mots décrivant la photo (vous pouvez choisir différentes descriptions et degrés de confiance) et Le pourcentage de fiabilité de ces balises. Nous afficherons le contenu de la réponse des services à la console.

La fonction tj.speak () peut transformer du texte utilisant les services Watson en un fichier son, puis le lire. De plus, si avec l'aide des services Watson une personne est détectée sur la photo, TJBot agitera le stylo.

 // instantiate our TJBot! var tj = new TJBot(hardware, tjConfig, credentials); tj.see().then(function(objects){ var tags = objects.map(function(object){ return object.class; }); if (tags.includes('person')){ tj.wave(); } console.log(tags); for(var i=0;i<tags.length;i++){ tj.speak(tags[i]); } }); 

Cette recette montre à quel point il est facile d'utiliser les services Watson dans votre projet. Une brève description de ces services et des liens vers ceux-ci figuraient déjà dans cet article . Essayez gratuitement tous les services Watson.

De plus, des séminaires auront lieu au bureau d'IBM à Moscou très prochainement, au cours desquels vous pourrez vous familiariser avec d'autres fonctionnalités des services Watson.

Le 9 juillet 2019, l'atelier Unveil AI Blackbox avec IBM Watson OpenScale se tiendra sur le nouveau produit cloud, Watson OpenScale. Lors de cet événement, vous pourrez vous familiariser avec les principes des réseaux de neurones, essayer de créer et former un réseau de neurones et le tester à l'aide de la plateforme Watson AI OpenScale. Vous devez vous pré-inscrire à l'événement en utilisant ce lien .

Le 10 juillet 2019, le séminaire «Reconnaissance d'images et de vidéos dans le cloud IBM» se tiendra. Dans ce séminaire, vous apprendrez à utiliser Watson Studio pour implémenter l'intelligence artificielle dans votre application. Description détaillée de l'événement et lien d'inscription ici .

Source: https://habr.com/ru/post/fr458374/


All Articles