请选择 进入手机版 | 继续访问电脑版

程序人生

 找回密码
 注册

QQ登录

只需一步,快速开始

程序人生 门户 程序员资讯 查看内容

10分钟开发一个简易人工智能机器人

2016-5-11 15:12| 发布者: sean| 查看: 717| 评论: 0

摘要: 这年头,机器人程序(bot)是新的应用程序,机器人程序商店就是新的应用程序商店。结合人工智能,机器人程序变得功能日益强大,而且在学习新的本领。我在本文中将介绍如何使用IBM Watson API,用短短50行代码,编写出 ...
10分钟开发一个简易人工智能机器人

这年头,机器人程序是新的应用程序,大家都在谈论机器人程序。微软宣布,机器人程序是改善Skyper的战略的一部分,Facebook拥有面向Messenger的机器人程序。至于其他公司,Telegram和Slack早已拥有机器人程序。

随着时间的推移,越来越多的公司认识到机器人程序大有潜力。加上人工智能的不断发展,开发出与现有应用程序轻松整合起来的、人工智能驱动的机器人程序已变得很容易。

我在本文中将为大家介绍基于IBM Watson的人工智能机器人程序,它有望成为许多项目的一个不错的起点。Watson API是一种可整合的出色服务,它随带完备的说明文档和丰富的实例。

最近,我在Hacker News上看到了一篇帖子,软件工程师菲利浦·朗汉斯(Philipp Langhans)分享了一篇文章,介绍如何编写一个基本的机器人程序。

这款人工智能机器人程序解决了语音信息并非始终很方便的问题,你可能在聊天时不想听语音信息。原因可能是在某个公共场所,或者对方是你的好友。

菲利浦介绍了如何构建一个语音转换成文本的机器人程序,它可以将语音信息转换成文本。为此,如前所述,他借助了世界上智能化程度最高的机器人程序IBM Watson。

如何编写IBM Watson人工智能机器人程序?

让Watson为你的人工智能机器人程序作好准备:

首先,你需要注册免费使用30天的Watson试用版,这让你可以获得2GB的运行时环境和容器内存以运行应用程序,还有无限制的IBM服务和API。

完成注册并设置好区域和公司之后,可以在需要时随时浏览Web用户界面了。

完成这一步后,按照这个一目了然的说明文档,使用命令行,创建语音转换成文本的服务。

现在回到Web界面,找到刚创建的那个服务,并获得登录信息。

用50行代码构建Telegram机器人程序:

这一步很简单,你只需要将BotFather添加到你的联系人。现在,使用/newbot命令,按说明操作即可,比如添加你的姓名和用户名。

确保你记下了自己的API令牌。为了获得更多的帮助,你可以访问Telegram的机器人程序指南。

完成这一切后,下面是可以用来自行构建机器人程序的开源代码。不妨看一下:
var Bot = require('node-telegram-bot-api')
var watson = require('watson-developer-cloud');
var request = require('request');
var config = require('./config');

var speech_to_text = watson.speech_to_text({
  username: config.watson.username,
  password: config.watson.password,
  version: 'v1',
  url: 'https://stream.watsonplatform.net/speech-to-text/api'
});

var params = {
  content_type: 'audio/ogg;codecs=opus',
  continuous: true,
  interim_results: false
};

var bot = new Bot(config.telegram.token, { polling: true });
bot.on('message', function (msg) {
if(msg['voice']){ return onVoiceMessage(msg); }
});

function onVoiceMessage(msg){
  var chatId = msg.chat.id;
  bot.getFileLink(msg.voice.file_id).then(function(link){
  //setup new recognizer stream
  var recognizeStream = speech_to_text.createRecognizeStream(params);
recognizeStream.setEncoding('utf8');
  recognizeStream.on('results', function(data){
if(data && data.results && data.results.length>0 && data.results[0].alternatives && data.results[0].alternatives.length>0){
var result = data.results[0].alternatives[0].transcript;
console.log("result: ", result);
//send speech recognizer result back to chat
bot.sendMessage(chatId, result, {
disable_notification: true,
reply_to_message_id: msg.message_id
}).then(function () {
   // reply sent!
});
}

});
['data', 'error', 'connection-close'].forEach(function(eventName){
   recognizeStream.on(eventName, console.log.bind(console, eventName + ' event: '));
});
//pipe voice message to recognizer -> send to watson
  request(link).pipe(recognizeStream);
  });
}
好了,现在来看看开发的智能机器人样子


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门文章
微软醒悟,推出新一代跨平台开发利器Apache Cordowa
微软醒悟,推出新一代跨平台开发利器Apache
Apache Cordowa是个什么东西呢?Apache Cordowa其实就是一套API,它可以让程序开发者使
VS开发IOS,Android应用,移动开发者的春天来了
VS开发IOS,Android应用,移动开发者的春天
有时候为了开发IOS,Android应用,我们不得不去学习java,object-c等编程语言,而对于.
.net程序员的福音:.NET Native预览版 C#可编译为本地机器码
.net程序员的福音:.NET Native预览版 C#可
微软在 MSDN 博客上宣布了.NET Native 的开发者预览版。.NET Native 可以将 C# 代码编
如何使用VS2012 的Schema比对功能
如何使用VS2012 的Schema比对功能
首先需要一个现成的数据库才能完成Schema的比对,您可以下载微软的实例数据库ContosoB
微软的粉丝们,永远不要停止学习的脚步,2014要学习M#了
微软的粉丝们,永远不要停止学习的脚步,20
先来说下M#,M#也被称为M Sharp,用于开发Midori的语言,也随着操作系统一同构建出来。这

关于程序人生网|小黑屋|手机版|Archiver|

程序人生 | QQ

粤公网安备 44040202000007号

( 粤ICP备13038131号-5 )

返回顶部