谷歌翻译,有道翻译,从Node调用比较
发布于 5 年前 作者 flamingtop 11723 次浏览 来自 问答

谷歌翻译,有道翻译API Node方案

正在用Node开发一个应用,不确定谷歌翻译和有道翻译用哪个。应用有个功能是自动翻译,就是自动实现很多text stream的自动翻译,比如一组API分发到5个国家的开发者,API中的描述信息在到达客户开发者端的时候都已经从中文自动翻译成了开发者当地语言,API本身的描述性文字并不多,一般都不会超过300字,默认都是中文的,但是API端点是很多的。不知道这里有没有用过node调用过第三方翻译API的朋友?

谷歌翻译和有道翻译哪个更准确?

如果是通用领域的话,谷歌翻译已经做的很好了,基本上都能翻译。但最近几年,有道翻译的质量逐渐上升,在中英,英中方面翻的有亮点的地方,有时甚至超过谷歌。百度的话,据了解由于业务重心并不在机器翻译上,而是AI,所以翻译质量一言难尽。在腾讯、阿里逐渐加大机器翻译引擎的今天,其实百度是有点落后了。其实国内也有很多做机器翻译的厂家,比如腾讯翻译君、小牛翻译、搜狗翻译、新译等等。新译主打垂直领域的机器翻译,就是如能源、环保、汽车、医学等领域。现在调用机器翻译引擎在一定数量内是免费的,但今后机器翻译收费一定是行业趋势。人家辛苦研制训练出来的机器,每次调用结果还是要付点费用吧。个人觉得,每个机器翻译都有亮点的地方,我有时会所有机器翻译都试一遍,选择最好的那个。如果文本保密性不高,我会一个个贴到网页里面。对于一些特殊的文本,我还是选择自己在机器翻译辅助软件Trados里面用Tmxmall家的机器翻译插件,可以同时调用6个机器翻译引擎。但要保证调用时充好钱。

英译汉有道翻译,汉译英谷歌翻译,有道对汉语的驾驭能力让我想爆粗,当然我指的是综合来看,你不可能指望机翻每句话都对。写论文的话,感觉还是google翻译靠谱一些。下面是英译汉的一个简单比较。

谷歌翻译:

谷歌翻译.jpg

有道翻译:

有道翻译.jpg

有道对 title after title 上的翻译显然更有灵性。

对于那些非常简单的句子,比如「到 XX 怎么走」,两个应用都能提供比较准确的翻译。至于更细节的东西,比如下面这句「这趟航班几点开始登机」, 有道的翻译更加智能一些,并且同样给出了其他参考例句。谷歌翻译单词比较准确,但是有道的句子翻译个人感觉做的比谷歌要好。

谷歌翻译API资源

谷歌翻译现在统一都叫Cloud Translation API了。

示例代码:

// Imports the Google Cloud client library
  const {Translate} = require('@google-cloud/translate');
 
  // Instantiates a client
  const translate = new Translate({projectId});
 
  // The text to translate
  const text = 'Hello, world!';
 
  // The target language
  const target = 'ru';
 
  // Translates some text into Russian
  const [translation] = await translate.translate(text, target);
  console.log(`Text: ${text}`);
  console.log(`Translation: ${translation}`);

目前谷歌翻译API是收费的,不过也不算贵吧。这里是收费情况:https://cloud.google.com/translate/pricing,前一百万字符(不是词,是字符)20美金,普通应该用应该也够,但得用好本地缓存避免重复翻译。Web界面的谷歌翻译 https://translate.google.com (需翻墙)仍然免费。

有道翻译API

找到了这个npm包:https://www.npmjs.com/package/youdao-fanyi

const Youdao = require('youdao-fanyi');
 
const fanyi = Youdao({
  appkey: '-- Here is your appkey --',
  secret: '-- Here is your secret --',
});
 
fanyi('hello world', (err, res) => {
  if(err) return console.error(err);
  console.log(res);
  // { tSpeakUrl:
  //  'http://openapi.youdao.com/ttsapi?q=%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%B8%96%E7%95%8C&langType=zh-CHS&sign=9118F94311541AB2F28285D6A6A48999&salt=1562037565470&voice=4&format=mp3&appKey=072f0aceb09ad0a9',
  // returnPhrase: [ 'hello world' ],
  // web:
  //  [ { value: [Array], key: 'hello world' },
  //    { value: [Array], key: 'Hello Kitty World' },
  //    { value: [Array], key: 'Hello Cold World' } ],
  // query: 'hello world',
  // translation: [ '你好,世界' ],
  // errorCode: '0',
  // dict: { url: 'yddict://m.youdao.com/dict?le=eng&q=hello+world' },
  // webdict: { url: 'http://m.youdao.com/dict?le=eng&q=hello+world' },
  // basic:
  //  { 'uk-speech':
  //     'http://openapi.youdao.com/ttsapi?q=hello+world&langType=en&sign=8E11700E7BAFBB1930EE80499051F0EE&salt=1562037565470&voice=5&format=mp3&appKey=072f0aceb09ad0a9',
  //    explains: [ '你好世界' ],
  //    'us-speech':
  //     'http://openapi.youdao.com/ttsapi?q=hello+world&langType=en&sign=8E11700E7BAFBB1930EE80499051F0EE&salt=1562037565470&voice=6&format=mp3&appKey=072f0aceb09ad0a9' },
  // l: 'en2zh-CHS',
  // speakUrl:
  //  'http://openapi.youdao.com/ttsapi?q=hello+world&langType=en&sign=8E11700E7BAFBB1930EE80499051F0EE&salt=1562037565470&voice=4&format=mp3&appKey=072f0aceb09ad0a9' }
 
});

有道翻译官方貌似并没有提供官方node客户端,只提供了一个简陋的HTTP接口 http://fanyi.youdao.com/openapi?path=data-mode (有时候想国内的这些科技公司的开放程度真的是让人捉急)。

8 回复

从header头提取你要翻译成的语言,比如CN, US。。。。之类的?不知道我理解的对不对

@luanxuechao 提取语言不成问题,我只是没做过这种功能,更主要是没用过谷歌翻译和有道翻译的API,想从有经验的人那里取点经。谢谢回复。

如果你说的这种情况 不如去官网翻SDK文档 比这边问要高效的多。。

@flamingtop 一直用的谷歌浏览器插件,划词翻译。你可以看看载下来解压看看或者看看有没有源代码。那插件本身支持有道,百度,谷歌翻译的

@luanxuechao 也对,谢了。

https://github.com/tsq-translate/server/tree/master/libs

谷歌,有道,百度三个都有使用。个人感觉,都挺好用的。

@tsq 网上看到的文章看,百度翻译略逊一筹。

回到顶部