iT邦幫忙

4

土砲型 LineBot中印翻譯機器人

首先來個起源,因為家裡來了個不懂中文的看護,所以我老媽只能很辛苦的跟他用google翻譯來了解阿公阿嬤的狀況,但是這衍伸出了一個問題就是,必須要面對面才能使用google翻譯,所以我就一直在想,有沒有辦法能讓家裡人和看護能進行溝通,於是呢...我就想用WEB來解決這個問題,利用聊天室的方式,把家人和看護通通抓進來,然後使用google的API去做翻譯,於是我很興奮的畫了個土砲流程圖,這時問題來了...要怎麼提醒阿=..=

瞬間我醒了,WEB無法在手機上面做到提醒的功能阿阿阿阿阿阿,如果開發成APP,還要下載,總之一切麻煩....

正當我要放棄的時候,看到了這一篇吉哥的分享-LineBot多國語言翻譯,於是我靈機一動,如果把裡面的程式改一下,是不是就能達成我的目的,雖然說沒辦法全自動,但是土砲型應該可以,所以我就動手做了,以下為主要的程式碼和完成的截圖,因為heroku的部分我實在不熟,所以就不方便在此獻醜,請各位參考吉哥的教學,謝謝

================程式碼===================
首先引用的部分,吉哥引用的google-translate-api好像google有修改過,所以在執行的時候會出現錯誤,於是我改用了國外開發者的@vitalets/google-translate-api,目前執行的好好的,給大家參考一下

var translate = require('@vitalets/google-translate-api');

// 這一段的程式是專門處理當有人傳送文字訊息給LineBot時,我們的處理回應
bot.on('message', function(event) {
if (event.message.type = 'text') {
    var msg = event.message.text;
    var a = new Array();
    if (msg.indexOf(":") != -1) {
        var a = msg.split(":");
    }
    console.log(a);
    if (a[0] == '0') {
        translate(a[1], {
                client: 'gtx',
                to: 'id'
            })
            .then(res => event.reply(res.text));
    } else {
        translate(msg, {
                client: 'gtx',
                to: 'zh-TW'
            })
            .then(res => event.reply(res.text));
    }
}

});

以上就是主要的程式碼,請大家參考

簡單解釋一下,如果我要翻譯成印尼文,那我就把訊息前面加[0:],如下圖所示,如果要翻譯成中文,那就直接輸入就可以了。

=========截圖=========

使用之後發現有幾個小問題

  1. 機器人太吵了,每一句話都會回應一次,努力改進中
  2. 今天在截測試圖的時候,反應有點慢,害我以為他當機了
  3. 沒辦法自動辨識語系,離完美還差一點點

真的真的很感謝吉哥,讓我又能多一個好玩的東西可以玩,如有侵權或任何問題請通知,我會馬上刪帖


尚未有邦友留言

立即登入留言