TJBOT como una ilustración de los servicios de IBM Watson

Hola Habr! En la primavera de 2019, tuvo lugar el próximo Taller Think Developers, donde todos pudieron ensamblar un robot de cartón TJBota que ejecuta los Servicios de IBM Watson. Debajo del cortador hay instrucciones detalladas sobre cómo y cómo ensamblar dicho robot, enlaces útiles y recetas simples que demuestran algunas de las capacidades cognitivas de los servicios de Watson, así como un breve anuncio de dos seminarios de julio sobre los Servicios de Watson en la oficina de IBM en Moscú.

imagen


Los servicios de IBM Watson son un sistema cognitivo que puede procesar el lenguaje natural, reconocer imágenes y aprender. Para el uso conveniente de estos servicios en cualquier aplicación, existe una API.

TJBot es un proyecto de código abierto diseñado para ayudar a acceder a los servicios de Watson. Este es un robot que cada raspberry pi y la inteligencia artificial preparada pueden hacer. TJBot puede revivirse con recetas.

Las recetas son instrucciones paso a paso para ayudarlo a conectar su TJBot a los servicios de Watson, como Speech to Text, Visual Recognition y Language Translator. Las recetas se basan en la Raspberry Pi.

Lo que se necesita para TJBota


  • Tarjeta SD Raspberry Pi 3 + OS
  • Micrófono USB
  • Altavoz Bluetooth o altavoz con 3,5 mm. conector de audio
  • Servoaccionamiento
  • LED RGB NeoPixel (8 mm)
  • Publicaciones mamá mamá y papá mamá
  • Cámara Raspberry pi
  • Fuente de alimentación
  • Estuche (puede imprimirse en una impresora 3D o cortarse con láser de cartón. Los diseños necesarios están aquí )



Las instrucciones de montaje se pueden encontrar aquí .

El diagrama de conexión del diodo y el servo a la placa en la imagen a continuación.

imagen

La caja se ensambla "alrededor" del tablero, por lo que primero debe escribir el sistema operativo en la tarjeta de memoria.

La forma más fácil es instalar NOBS , pero cualquier otro Linux es adecuado para nosotros. Antes de instalar NOOBS, formatee la tarjeta de memoria, descargue el archivo con los archivos de instalación y expórtelos a su computadora. A continuación, debe transferir los archivos de la carpeta NOOBS a la tarjeta de memoria. La primera vez que inicia frambuesa (con una tarjeta de memoria insertada previamente), se abre el menú de instalación del sistema operativo. Las instrucciones detalladas se pueden encontrar aquí .

Preparaciones del programa


Lo primero que debe hacer es instalar los paquetes:

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

Ahora descargue las recetas preparadas del github:

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

Vaya al directorio con la receta:

 cd tjbot / recipes / speech_to_text 

Esta carpeta contiene el archivo de configuración config.js y el archivo con el script ejecutable stt.js.

Instalar npm:

 sudo apt-get install npm 

Conecte los servicios de Watson


Para usar los servicios de Watson, debe seguir estos pasos.

Pasamos a este sitio .

imagen

Regístrate y ve al directorio. En el catálogo buscamos "discurso a texto". Voz a texto es un servicio que se utiliza para traducir voz a texto. El acceso a la API se puede encontrar aquí .

imagen

Texto a voz y reconocimiento visual también serán necesarios cuando trabajemos con el reconocimiento de imágenes. Hacemos clic en voz a texto, llegamos a la página con una descripción de este componente y planes de uso.

imagen

Un plan gratuito es suficiente para nosotros. Haga clic en crear, luego en el menú de la izquierda, vaya a Credenciales de servicio.

imagen

A partir de aquí, debe copiar las credenciales y APIKEY y pegarlas en el archivo 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" }; 

Ahora, si queremos agregar otro servicio de Watson, en el archivo de configuración necesitaremos agregar un bloque con apikey y url a cada servicio, envuelto en la siguiente construcción:

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

El renacimiento de TjBota


Considere el archivo con el script bot ejecutable stt.js. Tiene una función diskoParty () ya preparada para verificar el funcionamiento del bot sin usar los servicios de Watson. Esta función hace que el diodo bot parpadee en diferentes colores.

 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(); 

En el mismo script hay una función que le permite cambiar el color del diodo usando el discurso del desarrollador.

Ejecute el script:

 sudo node stt.js 

Dígale al bot "encienda la luz azul" para cambiar el color del diodo a azul, "encienda la luz" para encender el diodo o "apague la luz" para apagarla. Colores admitidos para reconocimiento (hasta ahora solo se admite inglés): amarillo, verde, naranja, púrpura, magenta, rojo, azul, aguamarina y blanco.

TjBot tiene muchas funciones básicas. Por ejemplo, para verificar el servo, puede usar la función tj.wave (), que hace que el bot lo salude con un gesto del mango. Estas funciones de descripción breve se pueden encontrar aquí .

Ahora considere el siguiente escenario, utilizando tanto el reconocimiento visual como el texto a voz.

Texto a voz es un servicio que convierte el texto impreso en voz usando varias voces, teclas e idiomas. Su API se puede encontrar en el siguiente enlace . El servicio de reconocimiento visual le permite describir lo que se muestra en la imagen. Reconoce los rostros de las personas con una determinación de su edad y sexo, comida, platos, objetos y puede buscar imágenes similares. La API para este servicio se puede encontrar aquí . Usando estos servicios, le enseñaremos al bot a ver y hablar. Según la imagen recibida de la cámara, los servicios de Watson (reconocimiento visual) nos enviarán un objeto json con etiquetas de imagen como respuesta, y el texto a voz ayudará a expresarlas.

En primer lugar, cree credenciales en cloud.ibm.com. Los copiamos y pegamos en el archivo de configuración config.js.

A continuación, edite el script ejecutable stt.js. Encontramos las siguientes líneas en él:

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

La matriz de hardware contiene los dispositivos bot utilizados. Si queremos usar un servo en el script, será necesario firmar "servo" en la matriz, si necesitamos una cámara, agregaremos "cámara" a la matriz, para usar la columna escribiremos "altavoz".
Entonces, nuestro script usará una columna y una cámara, respectivamente, firmamos esto en la matriz de hardware.

 // 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 }, }; 

De las funciones básicas de la biblioteca tj, necesitamos las funciones tj.see () y tj.speak ().

La función tj.see () crea una foto (el objeto se almacena en la carpeta tmp), lo envía a la nube con los servicios de Watson, analiza la imagen y produce un objeto json que consta de etiquetas: palabras que describen la foto (puede elegir diferentes descripciones y grados de confianza) y El porcentaje de fiabilidad de estas etiquetas. Emitiremos el contenido de la respuesta de los servicios a la consola.

La función tj.speak () puede transformar texto usando los servicios de Watson en un archivo de sonido y luego reproducirlo. Además, si con la ayuda de los servicios de Watson se detecta a una persona en la foto, TJBot agitará la pluma.

 // 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]); } }); 

Esta receta muestra lo fácil que es usar los servicios de Watson en su proyecto. Una breve descripción de estos servicios y enlaces a ellos ya estaban en este artículo . Pruebe todos los servicios de Watson gratis.

Además, los seminarios se llevarán a cabo en la oficina de IBM Moscú muy pronto, en el que podrá familiarizarse con otras características de los servicios de Watson.

El 9 de julio de 2019, se llevará a cabo la presentación de Blackbox de AI con IBM Watson OpenScale Workshop en el nuevo producto en la nube, Watson OpenScale. En este evento, podrá familiarizarse con los principios de las redes neuronales, intentar crear y entrenar una red neuronal y probarla utilizando la plataforma Watson AI OpenScale. Debe preinscribirse para el evento utilizando este enlace .

El 10 de julio de 2019, se llevará a cabo el seminario "Reconocimiento de imagen y video en la nube de IBM". En este seminario, puede aprender a usar Watson Studio para implementar inteligencia artificial en su aplicación. Descripción detallada del evento y enlace de registro aquí .

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


All Articles