43

Chrome 实现了 HTML5 语音识别 API。支持多种语言。我想知道支持哪些语言以及在 HTML 元素的lang属性中使用的每种语言的相应代码。

例如:

  • 波兰语 (pl-PL)
  • 土耳其语 (tr-TR)

谢谢!

4

4 回答 4

71

好的,如果它没有发布,我们至少可以尝试解决这个问题。让我把这张表放在开头,如果有人有更多信息,我们会完善它。

我假设支持的语言应类似于语音搜索支持的语言,并且谷歌使用标准语言代码并且在其服务中始终如一地这样做。

我在维基百科上查找了语音搜索支持的语言

我在这里谷歌语言设置页面这里找到了语言代码

编辑: 我已经尝试过后端语音识别服务。我已经运行了一系列测试,其中我将相同的英语语音样本传递给 API,但每次都指定不同的方言。看起来像:

  • 如果不支持某种语言,则识别回退到 en-US(看起来它识别出样本是英文的)
  • 如果方言不受支持(或不存在),则在某些情况下识别会退回到主要方言或 en-US
  • 主要方言可以指定为标识符的第一部分。所以 'en-US' 和 'en' 给出了相同的结果。
  • 对某些语言(如中文和日文)的识别给出了英语的结果,但与 en-US 不同,这很奇怪。样本可能与中文有很大不同,服务很聪明地解决了这一点。

如果识别给出的结果与 en-US 和该语言的主要方言不同,我会将方言视为受支持。尽管如此,为了 100% 的验证,我们需要为每种语言运行样本。

传奇

  • +最重要的是支持,因为 test 给出的结果与 en-US 和主要方言不同。
  • .+维基百科上没有,但最重要的是支持,因为测试给出的结果与 en-US 和主要方言不同。
  • +?最重要的是支持,因为它在维基百科上列出。但是对我的样本进行测试得出的结果与主要方言相同。因此,要么这是一个 cosidense,要么是语言代码错误。
  • .+?未在 wikipedia 上列出,但看起来受支持,因为测试给出的结果与 en-US 和主要方言不同。

语言

  • +南非 荷兰语
  • +巴斯克 欧盟
  • +保加利亚语 bg
  • +加泰罗尼亚
  • +阿拉伯语(埃及) ar-EG
  • +?阿拉伯语(约旦)ar-JO
  • +阿拉伯语(科威特) ar-KW
  • +?阿拉伯语(黎巴嫩) ar-LB
  • +阿拉伯语(卡塔尔) ar-QA
  • +阿拉伯语 (UAE) ar-AE
  • .+阿拉伯语(摩洛哥)ar-MA
  • .+阿拉伯语(伊拉克)ar-IQ
  • .+阿拉伯语(阿尔及利亚)ar-DZ
  • .+阿拉伯语(巴林)ar-BH
  • .+阿拉伯语(利比亚)ar-LY
  • .+阿拉伯语(阿曼)ar-OM
  • .+阿拉伯语(沙特阿拉伯)ar-SA
  • .+阿拉伯语(突尼斯)ar-TN
  • .+阿拉伯语(也门)ar-YE
  • +捷克 cs
  • +荷兰语 nl-NL
  • +英语(澳大利亚) en-AU
  • +?英语(加拿大) en-CA
  • +英语(印度) en-IN
  • +英语(新西兰) en-NZ
  • +英语(南非) en-ZA
  • +英语(英国) en-GB
  • +英语(美国) en-US
  • +芬兰语 _
  • +法语 fr-FR
  • +加利西亚
  • +德语 de-DE
  • +希伯来语 he
  • +匈牙利
  • +冰岛语
  • +意大利语 it-IT
  • +印尼 身份证
  • +日本人_
  • +韩国
  • +拉丁语 _
  • +普通话 zh-CN
  • +繁体台湾 zh-TW
  • +?简体中文 zh-CN ?
  • +简体香港zh-HK
  • +粤语(繁体香港) zh-yue
  • +马来西亚 ms-MY
  • +挪威语 no-NO
  • +波兰语 _
  • +?猪拉丁语 xx-piglatin
  • +葡萄牙语 pt-PT
  • .+葡萄牙语(巴西) pt-BR
  • +罗马尼亚 滚装船
  • +俄语 ru
  • +塞尔维亚语 -SP
  • +斯洛伐克 _
  • +西班牙语(阿根廷) es-AR
  • +西班牙语(玻利维亚) es-BO
  • +?西班牙语(智利) es-CL
  • +?西班牙语(哥伦比亚) es-CO
  • +?西班牙语(哥斯达黎加) es-CR
  • +西班牙语(多米尼加共和国) es-DO
  • +西班牙语(厄瓜多尔) es-EC
  • +西班牙语(萨尔瓦多)es-SV
  • +西班牙语(危地马拉) es-GT
  • +西班牙语(洪都拉斯) es-HN
  • +西班牙语(墨西哥) es-MX
  • +西班牙语(尼加拉瓜) es-NI
  • +西班牙语(巴拿马) es-PA
  • +西班牙语(巴拉圭) es-PY
  • +西班牙语(秘鲁) es-PE
  • +西班牙语(波多黎各)es-PR
  • +西班牙语(西班牙) es-ES
  • +西班牙语(美国) es-US
  • +西班牙语(乌拉圭) es-UY
  • +西班牙语(委内瑞拉) es-VE
  • +瑞典语 sv-SE
  • +土耳其语 _
  • +祖鲁
于 2013-01-13T09:11:33.407 回答
19

我知道这是一篇旧帖子,但由于很难找到这些信息,我想我会为可能正在寻找的任何人发布一个列表。如果您发现任何错误或遗漏,请留言。

{
  "Afrikaans": [
    ["South Africa", "af-ZA"]
  ],
  "Arabic" : [
    ["Algeria","ar-DZ"],
    ["Bahrain","ar-BH"],
    ["Egypt","ar-EG"],
    ["Israel","ar-IL"],
    ["Iraq","ar-IQ"],
    ["Jordan","ar-JO"],
    ["Kuwait","ar-KW"],
    ["Lebanon","ar-LB"],
    ["Morocco","ar-MA"],
    ["Oman","ar-OM"],
    ["Palestinian Territory","ar-PS"],
    ["Qatar","ar-QA"],
    ["Saudi Arabia","ar-SA"],
    ["Tunisia","ar-TN"],
    ["UAE","ar-AE"]
  ],
  "Basque": [
    ["Spain", "eu-ES"]
  ],
  "Bulgarian": [
    ["Bulgaria", "bg-BG"]
  ],
  "Catalan": [
    ["Spain", "ca-ES"]
  ],
  "Chinese Mandarin": [
    ["China (Simp.)", "cmn-Hans-CN"],
    ["Hong Kong SAR (Trad.)", "cmn-Hans-HK"],
    ["Taiwan (Trad.)", "cmn-Hant-TW"]
  ],
  "Chinese Cantonese": [
    ["Hong Kong", "yue-Hant-HK"]
  ],
  "Croatian": [
    ["Croatia", "hr_HR"]
  ],
  "Czech": [
    ["Czech Republic", "cs-CZ"]
  ],
  "Danish": [
    ["Denmark", "da-DK"]
  ],
  "English": [
    ["Australia", "en-AU"],
    ["Canada", "en-CA"],
    ["India", "en-IN"],
    ["Ireland", "en-IE"],
    ["New Zealand", "en-NZ"],
    ["Philippines", "en-PH"],
    ["South Africa", "en-ZA"],
    ["United Kingdom", "en-GB"],
    ["United States", "en-US"]
  ],
  "Farsi": [
    ["Iran", "fa-IR"]
  ],
  "French": [
    ["France", "fr-FR"]
  ],
  "Filipino": [
    ["Philippines", "fil-PH"]
  ],
  "Galician": [
    ["Spain", "gl-ES"]
  ],
  "German": [
    ["Germany", "de-DE"]
  ],
  "Greek": [
    ["Greece", "el-GR"]
  ],
  "Finnish": [
    ["Finland", "fi-FI"]
  ],
  "Hebrew" :[
    ["Israel", "he-IL"]
  ],
  "Hindi": [
    ["India", "hi-IN"]
  ],
  "Hungarian": [
    ["Hungary", "hu-HU"]
  ],
  "Indonesian": [
    ["Indonesia", "id-ID"]
  ],
  "Icelandic": [
    ["Iceland", "is-IS"]
  ],
  "Italian": [
    ["Italy", "it-IT"],
    ["Switzerland", "it-CH"]
  ],
  "Japanese": [
    ["Japan", "ja-JP"]
  ],
  "Korean": [
    ["Korea", "ko-KR"]
  ],
  "Lithuanian": [
    ["Lithuania", "lt-LT"]
  ],
  "Malaysian": [
    ["Malaysia", "ms-MY"]
  ],
  "Dutch": [
    ["Netherlands", "nl-NL"]
  ],
  "Norwegian": [
    ["Norway", "nb-NO"]
  ],
  "Polish": [
    ["Poland", "pl-PL"]
  ],
  "Portuguese": [
    ["Brazil", "pt-BR"],
    ["Portugal", "pt-PT"]
  ],
  "Romanian": [
    ["Romania", "ro-RO"]
  ],
  "Russian": [
    ["Russia", "ru-RU"]
  ],
  "Serbian": [
    ["Serbia", "sr-RS"]
  ],
  "Slovak": [
    ["Slovakia", "sk-SK"]
  ],
  "Slovenian": [
    ["Slovenia", "sl-SI"]
  ],
  "Spanish": [
    ["Argentina", "es-AR"],
    ["Bolivia", "es-BO"],
    ["Chile", "es-CL"],
    ["Colombia", "es-CO"],
    ["Costa Rica", "es-CR"],
    ["Dominican Republic", "es-DO"],
    ["Ecuador", "es-EC"],
    ["El Salvador", "es-SV"],
    ["Guatemala", "es-GT"],
    ["Honduras", "es-HN"],
    ["México", "es-MX"],
    ["Nicaragua", "es-NI"],
    ["Panamá", "es-PA"],
    ["Paraguay", "es-PY"],
    ["Perú", "es-PE"],
    ["Puerto Rico", "es-PR"],
    ["Spain", "es-ES"],
    ["Uruguay", "es-UY"],
    ["United States", "es-US"],
    ["Venezuela", "es-VE"]
  ],
  "Swedish": [
    ["Sweden", "sv-SE"]
  ],
  "Thai": [
    ["Thailand", "th-TH"]
  ],
  "Turkish": [
    ["Turkey", "tr-TR"]
  ],
  "Ukrainian": [
    ["Ukraine", "uk-UA"]
  ],
  "Vietnamese": [
    ["Viet Nam", "vi-VN"]
  ],
  "Zulu": [
    ["South Africa", "zu-ZA"]
  ]
}

编辑:我还发现了这个列表,它可能是最新的: https ://cloud.google.com/speech-to-text/docs/languages

编辑 2:也添加此示例声音列表:https ://cloud.google.com/text-to-speech/docs/voices

于 2017-01-30T20:34:24.783 回答
5

使用以下代码在浏览器中获取语音 API 的所有可用语音:

var voices = speechSynthesis.getVoices();
      for(var i = 0; i < voices.length; i++ ) {
        console.log("Voice " + i.toString() + ' ' + voices[i].name + ' ' + voices[i].uri);
      }

目前只有 Chrome 和 Safari 支持 Web Speech API(尽管 Safari 只支持 Text to Speech 功能)。奇怪的是 Firefox OS 支持 TTS,但浏览器版本不支持。

根据文档和我的测试(取决于用户代理),语言列表取决于您使用的浏览器。

在 Safari 中,您还可以获得许多可用的语言(我相信超过 40 种)。在 Chrome 中,此时你会得到以下列表:

语音 0 谷歌美国英语 undefined

Voice 1 谷歌英国英语男 undefined

Voice 2 谷歌英国英语女性 undefined

语音 3 谷歌西班牙语未定义

语音 4 Google Français undefined

语音 5 谷歌意大利语未定义

语音 6 Google Deutsch 未定义

Voice 7 Google 日本人 undefined

语音 8 Google 한국의 undefined

Voice 9 Google 中国的 undefined

Voice 10 原生未定义

于 2014-08-12T14:36:01.977 回答
0

在这里,您在 LinkedHashMap 中有 @TimHayes,您可以在其中获取值。我使用 LinkedHashMap 所以我可以得到地图的位置。

    LinkedHashMap<String,String> country = new LinkedHashMap<String,String>();


    country.put("South Africa", "af-ZA");
    country.put("Algeria", "ar-DZ");
    country.put("Bahrain", "ar-BH");
    country.put("Egypt", "ar-EG");
    country.put("Israel", "ar-IL");
    country.put("Iraq", "ar-IQ");
    country.put("Jordan", "ar-JO");
    country.put("Kuwait", "ar-KW");
    country.put("Lebanon", "ar-LB");
    country.put("Morocco", "ar-MA");
    country.put("Oman", "ar-OM");
    country.put("Palestinian Territory", "ar-PS");
    country.put("Qatar", "ar-QA");
    country.put("Saudi Arabia", "ar-SA");
    country.put("Tunisia", "ar-TN");
    country.put("UAE", "ar-AE");
    country.put("Spain", "eu-ES");
    country.put("Bulgaria", "bg-BG");
    country.put("Spain", "ca-ES");
    country.put("China (Simp.)", "cmn-Hans-CN");
    country.put("Hong Kong SAR (Trad.)", "cmn-Hans-HK");
    country.put("Taiwan (Trad.)", "cmn-Hant-TW");
    country.put("Hong Kong", "yue-Hant-HK");
    country.put("Croatia", "hr_HR");
    country.put("Czech Republic", "cs-CZ");
    country.put("Denmark", "da-DK");
    country.put("Australia", "en-AU");
    country.put("Canada", "en-CA");
    country.put("India", "en-IN");
    country.put("Ireland", "en-IE");
    country.put("New Zealand", "en-NZ");
    country.put("Philippines", "en-PH");
    country.put("South Africa", "en-ZA");
    country.put("United Kingdom", "en-GB");
    country.put("United States", "en-US");
    country.put("Iran", "fa-IR");
    country.put("France", "fr-FR");
    country.put("Philippines", "fil-PH");
    country.put("Spain", "gl-ES");
    country.put("Germany", "de-DE");
    country.put("Greece", "el-GR");
    country.put("Finland", "fi-FI");
    country.put("Israel", "he-IL");
    country.put("India", "hi-IN");
    country.put("Hungary", "hu-HU");
    country.put("Indonesia", "id-ID");
    country.put("Iceland", "is-IS");
    country.put("Italy", "it-IT");
    country.put("Switzerland", "it-CH");
    country.put("Japan", "ja-JP");
    country.put("Korea", "ko-KR");
    country.put("Lithuania", "lt-LT");
    country.put("Malaysia", "ms-MY");
    country.put("Netherlands", "nl-NL");
    country.put("Norway", "nb-NO");
    country.put("Poland", "pl-PL");
    country.put("Brazil", "pt-BR");
    country.put("Portugal", "pt-PT");
    country.put("Romania", "ro-RO");
    country.put("Russia", "ru-RU");
    country.put("Serbia", "sr-RS");
    country.put("Slovakia", "sk-SK");
    country.put("Slovenia", "sl-SI");
    country.put("Argentina", "es-AR");
    country.put("Bolivia", "es-BO");
    country.put("Chile", "es-CL");
    country.put("Colombia", "es-CO");
    country.put("Costa Rica", "es-CR");
    country.put("Dominican Republic", "es-DO");
    country.put("Ecuador", "es-EC");
    country.put("El Salvador", "es-SV");
    country.put("Guatemala", "es-GT");
    country.put("Honduras", "es-HN");
    country.put("México", "es-MX");
    country.put("Nicaragua", "es-NI");
    country.put("Panamá", "es-PA");
    country.put("Paraguay", "es-PY");
    country.put("Perú", "es-PE");
    country.put("Puerto Rico", "es-PR");
    country.put("Spain", "es-ES");
    country.put("Uruguay", "es-UY");
    country.put("United States", "es-US");
    country.put("Venezuela", "es-VE");
    country.put("Sweden", "sv-SE");
    country.put("Thailand", "th-TH");
    country.put("Turkey", "tr-TR");
    country.put("Ukraine", "uk-UA");
    country.put("Viet Nam", "vi-VN");
    country.put("South Africa", "zu-ZA");
于 2017-05-08T02:42:06.770 回答