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

作者: 一墨编程学习 | 来源:发表于2019-04-25 15:56 被阅读6次

    这年头,机器人程序(bot)是新的应用程序,机器人程序商店就是新的应用程序商店。结合人工智能,机器人程序变得功能日益强大,而且在学习新的本领。我在本文中将介绍如何使用IBM Watson API,用短短50行代码,编写出一个Telegram语音转换成文本的机器人程序。

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

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

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

    如何编写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添加到你的联系人或任何聊天即可。

    下面是它呈现的样子,并附有所有语音信息的文字记录:

    如果大家想找一个Python学习环境,可以加入我们的Python学习圈:784758214 ,自己是一名高级python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、django、人工智能、机器学习等。送给正在学习python的小伙伴!每天会准时的讲一些项目实战案例,分享一些学习的方法和需要注意的小细节,,这里是python学习者聚集地

    相关文章

      网友评论

        本文标题:用50行代码构建Telegram机器人程序

        本文链接:https://www.haomeiwen.com/subject/zplzgqtx.html