zoukankan      html  css  js  c++  java
  • 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 里面去查找。

  • 相关阅读:
    字符串----不可重叠的最长重复子串
    字符串----最长重复子串
    字符串----HDU-1358
    字符串----hiho字符串(尺取法)
    字符串匹配(二)----KMP算法
    字符串匹配(一)----Rabin-Karp算法
    字符串----最短摘要生成(尺取法)
    【Hibernate 检索策略】
    【Hibernate 多表查询】
    【Hibernate QBC】
  • 原文地址:https://www.cnblogs.com/myphoebe/p/2229901.html
Copyright © 2011-2022 走看看