Tjbot На Примере Сервисов Ibm Watson

Привет, Хабр! Весной 2019 года прошел очередной мастер-класс Think Developers Workshop, на котором каждый желающий мог собрать картонного робота TJBota под управлением IBM Watson Services. Под катом подробная инструкция, из чего и как собрать такого робота, полезные ссылки и простые рецепты, демонстрирующие некоторые когнитивные возможности сервисов Watson, а также краткий анонс двух июльских семинаров о Watson Services в московском офисе компании Watson Services. ИБМ.



TJBOT на примере сервисов IBM Watson

Службы IBM Watson — это когнитивная система, которая может обрабатывать естественный язык, распознавать образы и обучаться.

Есть API для удобного использования этих сервисов в любом приложении.

TJBot — это проект с открытым исходным кодом, призванный помочь вам получить доступ к службам Watson. Это робот, которого каждый может сделать с помощью Raspberry Pi и готового искусственного интеллекта.

Оживить TJBot можно с помощью рецептов.

Рецепты представляют собой пошаговые инструкции, которые помогут вам подключить TJBot к службам Watson, таким как преобразование речи в текст, визуальное распознавание и языковой переводчик.

Рецепты разработаны на базе Raspberry Pi.



Что нужно для TJBot

  • Raspberry Pi 3 + SD-карта с предустановленной ОС
  • USB-микрофон
  • Динамик Bluetooth или динамик 3,5 мм.

    аудиоразъем

  • Сервопривод
  • NeoPixel RGB LED (8 мм)
  • Публикация мама-мама и папа-мама
  • Камера Raspberry Pi
  • блок питания
  • Корпус (можно распечатать на 3D принтере или вырезать из картона лазером.

    Необходимые макеты имеются в наличии Здесь )



TJBOT на примере сервисов IBM Watson

Инструкцию по сборке корпуса можно найти Здесь .

Схема подключения диода и сервопривода к плате представлена на картинке ниже.



TJBOT на примере сервисов IBM Watson

Корпус собран «вокруг» платы, поэтому записать ОС на карту памяти нужно заранее.

Самый простой в установке НУБЫ , но нам подойдет любой другой линукс.

Перед установкой NOOBS отформатируйте карту памяти, скачайте архив с установочными файлами и экспортируйте их на свой компьютер.

Далее вам необходимо перенести файлы из папки NOOBS на карту памяти.

При первом запуске малины (с предустановленной картой памяти) откроется меню установки ОС.

Подробную инструкцию можно найти Здесь .



Подготовка программы

Прежде всего вам необходимо установить пакеты:
  
  
  
  
  
  
  
  
  
  
   

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

Теперь скачайте готовые рецепты с Github:

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

Перейти в каталог с рецептом:

cd tjbot / recipes / speech_to_text

Эта папка содержит файл конфигурации config.js и файл исполняемого сценария stt.js. Установите НПМ:

sudo apt-get install npm



Подключение сервисов Watson

Чтобы использовать службы Watson, вам необходимо выполнить следующие шаги.

Давайте перейдем к этому Веб-сайт .



TJBOT на примере сервисов IBM Watson

Зарегистрируйтесь и перейдите в каталог.

В каталоге ищем «речь в текст».

Речь в текст — это сервис, который используется для перевода речи в текст. Доступ к API можно найти Здесь .



TJBOT на примере сервисов IBM Watson

Преобразование текста в речь и визуальное распознавание также понадобятся, когда мы будем работать с распознаванием изображений.

Нажимаем на речь в текст, попадаем на страницу с описанием этого компонента и планами по использованию.



TJBOT на примере сервисов IBM Watson

Бесплатного плана нам достаточно.

Нажмите «Создать», затем в левом меню перейдите в «Учетные данные службы».



TJBOT на примере сервисов IBM Watson

Отсюда вам нужно скопировать учетные данные и APIKEY и вставить их в файл 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 " };

Теперь, если мы хотим добавить еще один сервис Watson, в файле конфигурации нам нужно будет добавить блок с API-ключом и URL-адресом для каждого сервиса, завернутый в следующую структуру:

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



Оживление TjBota

Давайте посмотрим на файл со скриптом stt.js, выполняемым ботом.

Имеет готовую функцию diskoParty() для проверки работы бота без использования сервисов Watson. Эта функция заставляет диод бота мигать разными цветами.



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

В этом же скрипте есть функция, позволяющая переключать цвет диода речью разработчика.

Запустим скрипт:

sudo node stt.js

Скажите боту «включи голубой свет», чтобы переключить цвет диода на синий, «включи свет», чтобы включить диод, или «выключи свет», чтобы выключить его.

Поддерживаемые цвета для распознавания (пока поддерживается только английский): желтый, зеленый, оранжевый, фиолетовый, пурпурный, красный, синий, голубой и белый.

TjBot имеет довольно много базовых функций.

Например, чтобы протестировать сервопривод, вы можете использовать функцию tj.wave(), которая заставляет бот приветствовать вас взмахом ручки.

Эти функции с краткими описаниями можно найти Здесь .

Давайте теперь рассмотрим следующий сценарий, в котором используется как визуальное распознавание, так и преобразование текста в речь.

Преобразование текста в речь — это услуга, которая преобразует печатный текст в речь с использованием разных голосов, тонов и языков.

Его API можно найти по следующему адресу.

связь .

Сервис визуального распознавания позволяет описать то, что изображено на картинке.

Он распознает лица людей, определяя их примерный возраст и пол, еду, посуду, предметы, а также может искать похожие изображения.

API этого сервиса можно найти Здесь .

С помощью этих сервисов мы научим бота видеть и говорить.

На основе изображения, полученного с камеры, сервисы Watson (визуального распознавания) отправят нам в ответ JSON-объект с тегами изображения, а преобразование речи поможет их озвучить.

Первым делом создаем учетные данные на сайте cloud.ibm.com. Копируем их и вставляем в файл конфигурации config.js. Далее редактируем исполняемый скрипт stt.js. В нем мы находим следующие строки:

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

Аппаратный массив содержит используемые устройства бота.

Если мы хотим использовать в скрипте сервопривод, нам нужно будет добавить в массив «сервопривод»; если нам нужна камера, мы добавим в массив «камеру»; чтобы использовать колонку, мы подпишем «динамик».

Итак, наш скрипт будет использовать колонку и камеру соответственно, это мы подписываем в аппаратный массив.



// 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 e.g 120 to end connection after 120 seconds of silence language: 'en-US' // see TJBot.prototype.languages.listen }, };

Из основных функций библиотеки tj нам понадобятся функции tj.see() и tj.speak().

Функция tj.see() создает фотографию (объект сохраняется в папке tmp), отправляет ее в облако с помощью сервисов Watson, анализирует изображение и создает json-объект, состоящий из тегов — слов, описывающих фотографию (можно выбрать разные описания и степени достоверности) и процент достоверности этих тегов.

Содержимое ответа сервисов выведем на консоль.

Функция tj.speak() может превратить текст с помощью сервисов Watson в аудиофайл, а затем воспроизвести его.

Также, если с помощью сервисов Watson на фотографии будет обнаружен человек, TJBot помашет ручкой.



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

Этот рецепт показывает, насколько легко использовать сервисы Watson в вашем проекте.

Краткое описание этих сервисов и ссылки на них уже были в этом разделе.

статья .

Вы можете попробовать все службы Watson бесплатно.

Также совсем скоро в московском офисе IBM пройдут семинары, на которых вы сможете познакомиться с другими возможностями сервисов Watson. 9 июля 2019 года состоится практический семинар «Раскройте AI Blackbox с IBM Watson OpenScale», посвященный новому облачному продукту — Watson OpenScale. На этом мероприятии вы сможете познакомиться с принципами работы нейронных сетей, попробовать создать и обучить нейронную сеть, а также протестировать ее с помощью платформы Watson AI OpenScale. Вам необходимо предварительно зарегистрироваться на мероприятие, воспользовавшись этим связь .

10 июля 2019 года состоится семинар «Распознавание изображений и видео в IBM Cloud».

На этом семинаре вы узнаете, как использовать Watson Studio для реализации искусственного интеллекта в вашем приложении.

Подробное описание мероприятия и ссылка для регистрации Здесь .

Теги: #Машинное обучение #облачные сервисы #api #искусственный интеллект #cloud #анонсы #распознавание изображений #ibm #ibm watson #tts #stt #ibm resources #ibm watson Services #TJBot #визуальное распознавание

Вместе с данным постом часто просматривают: