TJBOT como uma ilustração dos serviços IBM Watson

Olá Habr! Na primavera de 2019, ocorreu o próximo Think Developers Workshop, onde todos puderam montar um robô de papelão TJBota executando o IBM Watson Services. Sob o cortador, há uma instrução detalhada sobre como e como montar esse robô, links úteis e receitas simples que demonstram algumas das capacidades cognitivas dos serviços Watson, além de um pequeno anúncio de dois seminários de julho sobre o Watson Services no escritório da IBM em Moscou.

imagem


Os serviços IBM Watson são um sistema cognitivo que pode processar linguagem natural, reconhecer imagens e aprender. Para uso conveniente desses serviços em qualquer aplicativo, existe uma API.

O TJBot é um projeto de código aberto criado para ajudar a acessar os serviços Watson. Este é um robô que todo pi de framboesa e inteligência artificial pronta podem fazer. O TJBot pode ser revivido com receitas.

As receitas são instruções passo a passo para ajudá-lo a conectar seu TJBot ao Watson, como fala em texto, reconhecimento visual e tradutor de idiomas. As receitas são baseadas no Raspberry Pi.

O que é necessário para o TJBota


  • Cartão Raspberry Pi 3 + OS SD
  • Microfone USB
  • Alto-falante Bluetooth ou alto-falante com 3,5 mm. tomada de áudio
  • Servo drive
  • LED RGB NeoPixel (8mm)
  • Comentários mom mom and dad mom
  • Raspberry pi camera
  • Fonte de alimentação
  • Estojo (pode ser impresso em uma impressora 3D ou recortado a laser em papelão. Os layouts necessários estão aqui )



Instruções de montagem podem ser encontradas aqui .

O diagrama de conexão do diodo e servo à placa na figura abaixo.

imagem

O estojo é montado “ao redor” da placa, então você deve primeiro gravar o sistema operacional no cartão de memória.

A maneira mais fácil é instalar o NOBS , mas qualquer outro Linux é adequado para nós. Antes de instalar o NOOBS, formate o cartão de memória, faça o download do arquivo com os arquivos de instalação e exporte-os para o seu computador. Em seguida, você precisa transferir os arquivos da pasta NOOBS para o cartão de memória. Na primeira vez em que você inicia o raspberry (com um cartão de memória inserido anteriormente), o menu de instalação do sistema operacional é aberto. Instruções detalhadas podem ser encontradas aqui .

Preparativos do programa


A primeira coisa a fazer é instalar os pacotes:

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

Agora baixe as receitas prontas do github:

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

Vá para o diretório com a receita:

 cd tjbot / recipes / speech_to_text 

Esta pasta contém o arquivo de configuração config.js e o arquivo com o script executável stt.js.

Instale o npm:

 sudo apt-get install npm 

Conectar serviços Watson


Para usar os serviços Watson, você precisa seguir estas etapas.

Passamos para este site .

imagem

Registre-se e vá para o diretório No catálogo, procuramos "fala para texto". A fala para texto é um serviço usado para converter a fala em texto. O acesso à API pode ser encontrado aqui .

imagem

O texto para fala e o reconhecimento visual também serão necessários quando trabalhamos com o reconhecimento de imagem. Clicamos no discurso para o texto, chegamos à página com uma descrição desse componente e planos de uso.

imagem

Um plano gratuito é suficiente para nós. Clique em criar e, no menu à esquerda, vá para Credenciais de serviço.

imagem

A partir daqui, você precisa copiar as credenciais e APIKEY e colá-las no arquivo 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" }; 

Agora, se quisermos adicionar outro serviço Watson, no arquivo de configuração, precisaremos adicionar um bloco com apikey e url a cada serviço, agrupados na seguinte construção:

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

O renascimento do TjBota


Considere o arquivo com o script bot executável stt.js. Ele possui uma função diskoParty () pronta para verificar a operação do bot sem usar os serviços do Watson. Esta função faz o diodo bot piscar em cores diferentes.

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

No mesmo script, há uma função que permite alterar a cor do diodo usando a fala do desenvolvedor.

Execute o script:

 sudo node stt.js 

Diga ao bot "acenda a luz azul" para mudar a cor do diodo para azul, "acenda a luz" para ligar o diodo ou "apague a luz" para desligar. Cores suportadas para reconhecimento (até agora apenas o inglês é suportado): amarelo, verde, laranja, roxo, magenta, vermelho, azul, aqua e branco.

O TjBot tem muitas funções básicas. Por exemplo, para verificar o servo, você pode usar a função tj.wave (), que faz o bot cumprimentá-lo com um aceno do identificador. Essas funções de descrição curta podem ser encontradas aqui .

Agora considere o cenário a seguir, usando reconhecimento visual e texto para fala.

O texto para fala é um serviço que converte texto impresso em fala usando várias vozes, teclas e idiomas. Sua API pode ser encontrada no seguinte link . O serviço de reconhecimento visual permite que você descreva o que é mostrado na figura. Ele reconhece os rostos das pessoas com uma determinação de idade e sexo aproximados, comida, pratos, objetos e pode procurar imagens semelhantes. A API para este serviço pode ser encontrada aqui . Usando esses serviços, ensinaremos o bot a ver e falar. Com base na imagem recebida da câmera, os serviços Watson (reconhecimento visual) nos enviarão um objeto json com tags de imagem como resposta, e o texto em fala ajudará a expressá-las.

Antes de tudo, crie credenciais no cloud.ibm.com. Nós os copiamos e colamos no arquivo de configuração config.js.

Em seguida, edite o script executável stt.js. Encontramos as seguintes linhas:

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

A matriz de hardware contém os dispositivos bot usados. Se quisermos usar um servo no script, será necessário assinar "servo" no array, se precisarmos de uma câmera, adicionaremos "camera" ao array, para usar a coluna, escreveremos "speaker".
Portanto, nosso script usará uma coluna e uma câmera, respectivamente, assinamos isso na 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 }, }; 

Das funções básicas da biblioteca tj, precisamos das funções tj.see () e tj.speak ().

A função tj.see () cria uma foto (o objeto é armazenado na pasta tmp), envia-a para a nuvem com os serviços Watson, analisa a imagem e produz um objeto json composto por tags - palavras que descrevem a foto (você pode escolher diferentes descrições e graus de confiança) e A porcentagem de confiabilidade dessas tags. Produziremos o conteúdo da resposta dos serviços para o console.

A função tj.speak () pode transformar texto usando os serviços Watson em um arquivo de som e, em seguida, reproduzi-lo. Além disso, se com a ajuda dos serviços Watson for detectada uma pessoa na foto, o TJBot acenará com a caneta.

 // 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 receita mostra como é fácil usar os serviços Watson em seu projeto. Uma breve descrição desses serviços e links para eles já estavam neste artigo . Experimente todos os serviços Watson gratuitamente.

Além disso, os seminários serão realizados no escritório da IBM Moscow muito em breve, no qual você poderá se familiarizar com outros recursos de serviços do Watson.

Em 9 de julho de 2019, o Unveil AI Blackbox com o IBM Watson OpenScale Workshop será realizado no novo produto em nuvem, Watson OpenScale. Nesse evento, você poderá se familiarizar com os princípios das redes neurais, tentar criar e treinar uma rede neural e testá-la usando a plataforma Watson AI OpenScale. Você deve fazer o pré-registro para o evento usando este link .

Em 10 de julho de 2019, será realizado o seminário "Reconhecimento de imagem e vídeo na nuvem IBM". Neste seminário, você pode aprender como usar o Watson Studio para implementar inteligência artificial em seu aplicativo. Descrição detalhada do evento e link de inscrição aqui .

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


All Articles