Каковы языковые коды в реализации Chrome для API распознавания речи HTML5?
Chrome реализовал API распознавания речи HTML5. Поддерживается много языков. Я хочу знать, какие языки поддерживаются, и каждому языку соответствует код, который используется в атрибуте HTML lang
.
Например:
- Польский (pl-PL)
- Турецкий (tr-TR)
Спасибо!
Ответы
Ответ 1
Хорошо, если он не опубликован, мы можем попытаться хотя бы понять это.
Позвольте мне поставить эту таблицу на начало, и мы ее уточним, если у кого-то больше информации.
Я исхожу из предположения, что поддерживаемые языки должны быть похожими на поддерживаемые голосовым поиском, и что Google использует стандартные коды языков и постоянно выполняет свои службы.
Я искал языки, поддерживаемые голосовым поиском на wikipedia
Я нашел коды языков здесь, на странице настроек языка google и здесь
EDIT:
Я экспериментировал с поддержкой бэкэнда. Я провел серию тестов, в которых я передал одну и ту же английскую речевую выборку в API, но каждый раз указывал разные диалекты. Это выглядит так:
- Если язык не поддерживается, распознавание возвращается в en-US (похоже, что он распознает, что образец находится на английском языке)
- Если диалект не поддерживается (или не существует), распознавание в некоторых случаях возвращается на главный диалект или en-US.
- Основной диалект может быть указан как первая часть идентификатора. Таким образом, "en-US" и "en" дают одинаковые результаты.
- Признание для некоторых языков, таких как китайский и японский, дает результаты на английском, отличном от en-US, хотя это странно. Вероятно, образец очень отличается от китайского, и сервис умный, чтобы понять это.
Я рассматриваю диалект как поддерживаемый, если распознавание дает другой результат от en-US и от основного диалекта для языка. Тем не менее, чтобы проверить это на 100%, нам нужно запустить образцы для каждого языка.
Легенда
-
+
Больше всего поддерживается, потому что тест дает результат, отличный от en-US и основного диалекта.
-
.+
Отсутствует в wikipedia, но больше всего поддерживается, потому что тест дает результат, отличный от en-US и основного диалекта.
-
+?
Больше всего поддерживается, потому что он указан в википедии. Но тест на моем примере дает результат, идентичный основному диалекту. Поэтому либо это код coinsidense, либо код языка неправильный.
-
.+?
Не указан в википедии, но выглядит как поддерживаемый, потому что тест дает результат, отличный от en-US и основного диалекта.
Языки
-
+
Африкаанс af
-
+
Баскский eu
-
+
Болгарский bg
-
+
Каталонский ca
-
+
Арабский (Египет) ar-EG
-
+?
Арабский (Иордания) ar-JO
-
+
Арабский (Кувейт) ar-KW
-
+?
Арабский (Ливан) ar-LB
-
+
Арабский (Катар) ar-QA
-
+
Арабский (ОАЭ) ar-AE
-
.+
Арабский (Марокко) ar-MA
-
.+
Арабский (Ирак) ar-IQ
-
.+
Арабский (Алжир) ar-DZ
-
.+
Арабский (Бахрейн) ar-BH
-
.+
Арабский (Lybia) ar-LY
-
.+
Арабский (Оман) ar-OM
-
.+
Арабский (Саудовская Аравия) ar-SA
-
.+
Арабский (Тунис) ar-TN
-
.+
Арабский (Йемен) ar-YE
-
+
Чешский cs
-
+
Голландский nl-NL
-
+
Английский (Австралия) ru-AU
-
+?
Английский (Канада) ru-CA
-
+
Английский (Индия) ru-IN
-
+
Английский (Новая Зеландия) ru-NZ
-
+
Английский (Южная Африка) ru-ZA
-
+
Английский (Великобритания) ru-RU
-
+
Английский (США) ru-US
-
+
Финский fi
-
+
Французский fr-FR
-
+
Галисийский gl
-
+
Немецкий de-DE
-
+
Иврит он
-
+
Венгерский hu
-
+
Исландский
-
+
Итальянский it-IT
-
+
Индонезийский id
-
+
Японский ja
-
+
Корейский ko
-
+
Латинский la -
+
Мандарин Китайский zh-CN
-
+
Традиционный Тайвань zh-TW
-
+?
Упрощенный Китай zh-CN?
-
+
Упрощенный Гонконг zh-HK
-
+
Юэ Китайский (традиционный Гонконг) zh-yue
-
+
Малайзийский ms-MY
-
+
Норвежский no-NO
-
+
Польский pl
-
+?
Pig Latin xx-piglatin
-
+
Португальский pt-PT
-
.+
Португальский (brasil) pt-BR
-
+
Румынский ro-RO
-
+
Русский ru
-
+
Сербский sr-SP
-
+
Словацкий sk
-
+
Испанский (Аргентина) 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
-
+
Турецкий tr
-
+
Zulu zu
Ответ 2
Используйте следующий код, чтобы получить все доступные голоса для речевого 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 поддерживают API Web Speech (хотя Safari поддерживает только функции Text to Speech). Любопытно, что Firefox OS поддерживает TTS, но версия браузера не работает.
Список языков зависит от того, в каком браузере вы работаете в соответствии с документацией и моими тестами (зависит от пользователя).
В Safari вы также получаете много доступных языков (я верю более 40). В Chrome в это время вы получаете следующий список:
Голос 0 Google US English undefined
Голос 1 Google UK Английский Мужской undefined
Голос 2 Google Великобритания Английский Женский undefined
Голос 3 Google Español undefined
Голос 4 Google Français undefined
Голос 5 Google Italiano undefined
Голос 6 Google Deutsch undefined
Голос 7 Google 日本人 undefined
Голос 8 Google 한국 의 undefined
Голос 9 Google 中国 的 undefined
Голос 10 native undefined
Ответ 3
Я знаю, что это старый пост, но поскольку эта информация досадно трудно найти, я думал, что разместил список для всех, кто мог бы смотреть. Если вы обнаружите какие-либо ошибки или упущения, оставьте примечание.
{
"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"]
]
}
Ответ 4
Здесь у вас есть @TimHayes в LinkedHashMap, где вы можете получить значения. Im используя 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");