myphoebe

用过 Google 字典的朋友应该都知道,Google 字典的功能相当强大,而且其单词发音相当的纯正,什么金山什么有道,在 Google 面前都是浮云,浮云。但是和 Google 的其他项目不同,字典的 API 却迟迟未能公布,早在 08 年,就有人提向 google 提出希望开发字典 API 的请求,但直到今天都没有得到任何回应。不过好在有强大的网友找到了这个 API,尽管不是官方公布的,但是使用起来基本上没有什么问题。

http://www.google.com/dictionary/json?callback=dict_api.callbacks.id100&q=test&sl=en&tl=en&restrict=pr%2Cde&client=te

从上面这个地址就可以获取到"test"的相关解释。

参数 q 即使查询的内容,sl 为源语言, tl 为目标语言。下面是 Google 所支持的语言的标识:

var google.language.Languages = {
  \'AFRIKAANS\' : \'af\',
  \'ALBANIAN\' : \'sq\',
  \'AMHARIC\' : \'am\',
  \'ARABIC\' : \'ar\',
  \'ARMENIAN\' : \'hy\',
  \'AZERBAIJANI\' : \'az\',
  \'BASQUE\' : \'eu\',
  \'BELARUSIAN\' : \'be\',
  \'BENGALI\' : \'bn\',
  \'BIHARI\' : \'bh\',
  \'BULGARIAN\' : \'bg\',
  \'BURMESE\' : \'my\',
  \'CATALAN\' : \'ca\',
  \'CHEROKEE\' : \'chr\',
  \'CHINESE\' : \'zh\',
  \'CHINESE_SIMPLIFIED\' : \'zh-CN\',
  \'CHINESE_TRADITIONAL\' : \'zh-TW\',
  \'CROATIAN\' : \'hr\',
  \'CZECH\' : \'cs\',
  \'DANISH\' : \'da\',
  \'DHIVEHI\' : \'dv\',
  \'DUTCH\': \'nl\',  
  \'ENGLISH\' : \'en\',
  \'ESPERANTO\' : \'eo\',
  \'ESTONIAN\' : \'et\',
  \'FILIPINO\' : \'tl\',
  \'FINNISH\' : \'fi\',
  \'FRENCH\' : \'fr\',
  \'GALICIAN\' : \'gl\',
  \'GEORGIAN\' : \'ka\',
  \'GERMAN\' : \'de\',
  \'GREEK\' : \'el\',
  \'GUARANI\' : \'gn\',
  \'GUJARATI\' : \'gu\',
  \'HEBREW\' : \'iw\',
  \'HINDI\' : \'hi\',
  \'HUNGARIAN\' : \'hu\',
  \'ICELANDIC\' : \'is\',
  \'INDONESIAN\' : \'id\',
  \'INUKTITUT\' : \'iu\',
  \'IRISH\' : \'ga\',
  \'ITALIAN\' : \'it\',
  \'JAPANESE\' : \'ja\',
  \'KANNADA\' : \'kn\',
  \'KAZAKH\' : \'kk\',
  \'KHMER\' : \'km\',
  \'KOREAN\' : \'ko\',
  \'KURDISH\': \'ku\',
  \'KYRGYZ\': \'ky\',
  \'LAOTHIAN\': \'lo\',
  \'LATVIAN\' : \'lv\',
  \'LITHUANIAN\' : \'lt\',
  \'MACEDONIAN\' : \'mk\',
  \'MALAY\' : \'ms\',
  \'MALAYALAM\' : \'ml\',
  \'MALTESE\' : \'mt\',
  \'MARATHI\' : \'mr\',
  \'MONGOLIAN\' : \'mn\',
  \'NEPALI\' : \'ne\',
  \'NORWEGIAN\' : \'no\',
  \'ORIYA\' : \'or\',
  \'PASHTO\' : \'ps\',
  \'PERSIAN\' : \'fa\',
  \'POLISH\' : \'pl\',
  \'PORTUGUESE\' : \'pt-PT\',
  \'PUNJABI\' : \'pa\',
  \'ROMANIAN\' : \'ro\',
  \'RUSSIAN\' : \'ru\',
  \'SANSKRIT\' : \'sa\',
  \'SERBIAN\' : \'sr\',
  \'SINDHI\' : \'sd\',
  \'SINHALESE\' : \'si\',
  \'SLOVAK\' : \'sk\',
  \'SLOVENIAN\' : \'sl\',
  \'SPANISH\' : \'es\',
  \'SWAHILI\' : \'sw\',
  \'SWEDISH\' : \'sv\',
  \'TAJIK\' : \'tg\',
  \'TAMIL\' : \'ta\',
  \'TAGALOG\' : \'tl\',
  \'TELUGU\' : \'te\',
  \'THAI\' : \'th\',
  \'TIBETAN\' : \'bo\',
  \'TURKISH\' : \'tr\',
  \'UKRAINIAN\' : \'uk\',
  \'URDU\' : \'ur\',
  \'UZBEK\' : \'uz\',
  \'UIGHUR\' : \'ug\',
  \'VIETNAMESE\' : \'vi\',
  \'WELSH\' : \'cy\',
  \'YIDDISH\' : \'yi\',
  \'UNKNOWN\' : \'\'
};

从这个地址得到一个 JSON 字符串,包含了查询内容的解释,音标,例句等等信息,当然还有查询内容的语音地址(如果查询有效),像下面这样:

{
    "type" : "sound" ,
    "text" : "http://www.gstatic.com/dictionary/static/sounds/de/0/test.mp3" ,
    "language" : "und"
}

事实上,我们发现,如果使用 Google 中文字典查询出来后的语音朗读并不是很好,相反其他以其他语言做查询得到的朗读语音非常地纯正。上面代码中的 text 所对应的值,是一个以查询内容为文件名,mp3为后缀名的音频文件,这个地址保存的总是纯正的发音。如果有兴趣基于 Google 字典做开发的朋友,可以直接使用这个地址来获取音频,而不必再从那一段 JSON 里面去查找。

分类:

技术点:

相关文章:

  • 2021-12-04
  • 2021-11-01
  • 2021-09-16
  • 2022-12-23
  • 2021-12-21
  • 2021-12-04
  • 2021-12-04
  • 2022-12-23
猜你喜欢
  • 2022-01-30
  • 2021-12-09
  • 2021-12-19
  • 2021-12-09
  • 2021-12-04
  • 2021-12-04
  • 2021-12-04
相关资源
相似解决方案