50行代碼開發一個“人工智能機器人”
這年頭,機器人程序(bot)是新的應用程序,機器人程序商店就是新的應用程序商店。結合人工智能,機器人程序變得功能日益強大,而且在學習新的本領。我在本文中將介紹如何使用IBM Watson API,用短短50行代碼,編寫出一個Telegram語音轉換成文本的機器人程序。
這年頭,機器人程序是新的應用程序,大家都在談論機器人程序。微軟宣布,機器人程序是改善Skyper的戰略的一部分,非死book擁有面向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);
});
}
你還可以在Telegram上試一試這個機器人程序,只要將 @speech2textbot 添加到你的聯系人或任何聊天即可。
下面是它呈現的樣子,并附有所有語音信息的文字記錄:
英文原文: How To Code Your Own ‘Watson’ AI Bot In 50 Lines Of Code? /