Google字典API与语音库
用过 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 里面去查找。