50行代碼開發一個“人工智能機器人”

lvbin2010 8年前發布 | 64K 次閱讀 人工智能 機器學習

這年頭,機器人程序(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? /

 本文由用戶 lvbin2010 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!