Встраиваем переводчик в Астериск
9 августа 2019, 10:13
Два собеседника в разных странах, русскоязычный и англоязычный, могут воспользоваться облачными сервисами распознавания голоса, перевода, синтезатора речи Text-to-speech, чтобы общаться по телефону через Оксану, робота переводчика. При наборе номера удалённого абонента через сервисный код *21*+442037692097 голосовой поток от русскоязычного абонента Алёны отправляется через chan_LEG на распознавание, превращается в текст, который, в свою очередь, отправляется в on-line сервис https://translate.yandex.ru, откуда поступает в модуль синтезатора речи - Text-to-speech, и воспроизводится англоязычному абоненту Бобу. Встречный голосовой поток от Боба обрабатывается по такой же схеме, но через Google voice recognition + Google translate + Google speech engine, такоим образом доходит до Алёны уже по-русски. Система работает в многопоточном режиме, т.е. нет необходимости ожидать завершения распознавания/перевода предыдущего фрагмента, чтобы наговаривать следующий. Схема полностью модульна, позволяет гибко переключать все элементы, заменяя, например, всю цепочку только сервисами Google для обоих направлений, или, например, обрабатывая текстовый перевод в обоих направлениях облачным сервисом перевода Яндекс https://translate.yandex.ru. Система начинает распознавание не дожидаясь окончания фрагмента и сама определяет его начало и конец по паузе в конце предложения. Отметим также простоту интеграции и скорость перевода близкую к реальному разговору. |
|
К слову сказать, Google recognition заявляет об огромном списке языков для распознавания:
Language | languageCode |
Language (English name) |
---|---|---|
Afrikaans (Suid-Afrika) | af-ZA | Afrikaans (South Africa) |
አማርኛ (ኢትዮጵያ) | am-ET | Amharic (Ethiopia) |
Հայ (Հայաստան) | hy-AM | Armenian (Armenia) |
Azərbaycan (Azərbaycan) | az-AZ | Azerbaijani (Azerbaijan) |
Bahasa Indonesia (Indonesia) | id-ID | Indonesian (Indonesia) |
Bahasa Melayu (Malaysia) | ms-MY | Malay (Malaysia) |
বাংলা (বাংলাদেশ) | bn-BD | Bengali (Bangladesh) |
বাংলা (ভারত) | bn-IN | Bengali (India) |
Català (Espanya) | ca-ES | Catalan (Spain) |
Čeština (Česká republika) | cs-CZ | Czech (Czech Republic) |
Dansk (Danmark) | da-DK | Danish (Denmark) |
Deutsch (Deutschland) | de-DE | German (Germany) |
English (Australia) | en-AU | English (Australia) |
English (Canada) | en-CA | English (Canada) |
English (Ghana) | en-GH | English (Ghana) |
English (Great Britain) | en-GB | English (United Kingdom) |
English (India) | en-IN | English (India) |
English (Ireland) | en-IE | English (Ireland) |
English (Kenya) | en-KE | English (Kenya) |
English (New Zealand) | en-NZ | English (New Zealand) |
English (Nigeria) | en-NG | English (Nigeria) |
English (Philippines) | en-PH | English (Philippines) |
English (Singapore) | en-SG | English (Singapore) |
English (South Africa) | en-ZA | English (South Africa) |
English (Tanzania) | en-TZ | English (Tanzania) |
English (United States) | en-US | English (United States) |
Español (Argentina) | es-AR | Spanish (Argentina) |
Español (Bolivia) | es-BO | Spanish (Bolivia) |
Español (Chile) | es-CL | Spanish (Chile) |
Español (Colombia) | es-CO | Spanish (Colombia) |
Español (Costa Rica) | es-CR | Spanish (Costa Rica) |
Español (Ecuador) | es-EC | Spanish (Ecuador) |
Español (El Salvador) | es-SV | Spanish (El Salvador) |
Español (España) | es-ES | Spanish (Spain) |
Español (Estados Unidos) | es-US | Spanish (United States) |
Español (Guatemala) | es-GT | Spanish (Guatemala) |
Español (Honduras) | es-HN | Spanish (Honduras) |
Español (México) | es-MX | Spanish (Mexico) |
Español (Nicaragua) | es-NI | Spanish (Nicaragua) |
Español (Panamá) | es-PA | Spanish (Panama) |
Español (Paraguay) | es-PY | Spanish (Paraguay) |
Español (Perú) | es-PE | Spanish (Peru) |
Español (Puerto Rico) | es-PR | Spanish (Puerto Rico) |
Español (República Dominicana) | es-DO | Spanish (Dominican Republic) |
Español (Uruguay) | es-UY | Spanish (Uruguay) |
Español (Venezuela) | es-VE | Spanish (Venezuela) |
Euskara (Espainia) | eu-ES | Basque (Spain) |
Filipino (Pilipinas) | fil-PH | Filipino (Philippines) |
Français (Canada) | fr-CA | French (Canada) |
Français (France) | fr-FR | French (France) |
Galego (España) | gl-ES | Galician (Spain) |
ქართული (საქართველო) | ka-GE | Georgian (Georgia) |
ગુજરાતી (ભારત) | gu-IN | Gujarati (India) |
Hrvatski (Hrvatska) | hr-HR | Croatian (Croatia) |
IsiZulu (Ningizimu Afrika) | zu-ZA | Zulu (South Africa) |
Íslenska (Ísland) | is-IS | Icelandic (Iceland) |
Italiano (Italia) | it-IT | Italian (Italy) |
Jawa (Indonesia) | jv-ID | Javanese (Indonesia) |
ಕನ್ನಡ (ಭಾರತ) | kn-IN | Kannada (India) |
ភាសាខ្មែរ (កម្ពុជា) | km-KH | Khmer (Cambodia) |
ລາວ (ລາວ) | lo-LA | Lao (Laos) |
Latviešu (latviešu) | lv-LV | Latvian (Latvia) |
Lietuvių (Lietuva) | lt-LT | Lithuanian (Lithuania) |
Magyar (Magyarország) | hu-HU | Hungarian (Hungary) |
മലയാളം (ഇന്ത്യ) | ml-IN | Malayalam (India) |
मराठी (भारत) | mr-IN | Marathi (India) |
Nederlands (Nederland) | nl-NL | Dutch (Netherlands) |
नेपाली (नेपाल) | ne-NP | Nepali (Nepal) |
Norsk bokmål (Norge) | nb-NO | Norwegian Bokmål (Norway) |
Polski (Polska) | pl-PL | Polish (Poland) |
Português (Brasil) | pt-BR | Portuguese (Brazil) |
Português (Portugal) | pt-PT | Portuguese (Portugal) |
Română (România) | ro-RO | Romanian (Romania) |
සිංහල (ශ්රී ලංකාව) | si-LK | Sinhala (Sri Lanka) |
Slovenčina (Slovensko) | sk-SK | Slovak (Slovakia) |
Slovenščina (Slovenija) | sl-SI | Slovenian (Slovenia) |
Urang (Indonesia) | su-ID | Sundanese (Indonesia) |
Swahili (Tanzania) | sw-TZ | Swahili (Tanzania) |
Swahili (Kenya) | sw-KE | Swahili (Kenya) |
Suomi (Suomi) | fi-FI | Finnish (Finland) |
Svenska (Sverige) | sv-SE | Swedish (Sweden) |
தமிழ் (இந்தியா) | ta-IN | Tamil (India) |
தமிழ் (சிங்கப்பூர்) | ta-SG | Tamil (Singapore) |
தமிழ் (இலங்கை) | ta-LK | Tamil (Sri Lanka) |
தமிழ் (மலேசியா) | ta-MY | Tamil (Malaysia) |
తెలుగు (భారతదేశం) | te-IN | Telugu (India) |
Tiếng Việt (Việt Nam) | vi-VN | Vietnamese (Vietnam) |
Türkçe (Türkiye) | tr-TR | Turkish (Turkey) |
اردو (پاکستان) | ur-PK | Urdu (Pakistan) |
اردو (بھارت) | ur-IN | Urdu (India) |
Ελληνικά (Ελλάδα) | el-GR | Greek (Greece) |
Български (България) | bg-BG | Bulgarian (Bulgaria) |
Русский (Россия) | ru-RU | Russian (Russia) |
Српски (Србија) | sr-RS | Serbian (Serbia) |
Українська (Україна) | uk-UA | Ukrainian (Ukraine) |
עברית (ישראל) | he-IL | Hebrew (Israel) |
العربية (إسرائيل) | ar-IL | Arabic (Israel) |
العربية (الأردن) | ar-JO | Arabic (Jordan) |
العربية (الإمارات) | ar-AE | Arabic (United Arab Emirates) |
العربية (البحرين) | ar-BH | Arabic (Bahrain) |
العربية (الجزائر) | ar-DZ | Arabic (Algeria) |
العربية (السعودية) | ar-SA | Arabic (Saudi Arabia) |
العربية (العراق) | ar-IQ | Arabic (Iraq) |
العربية (الكويت) | ar-KW | Arabic (Kuwait) |
العربية (المغرب) | ar-MA | Arabic (Morocco) |
العربية (تونس) | ar-TN | Arabic (Tunisia) |
العربية (عُمان) | ar-OM | Arabic (Oman) |
العربية (فلسطين) | ar-PS | Arabic (State of Palestine) |
العربية (قطر) | ar-QA | Arabic (Qatar) |
العربية (لبنان) | ar-LB | Arabic (Lebanon) |
العربية (مصر) | ar-EG | Arabic (Egypt) |
فارسی (ایران) | fa-IR | Persian (Iran) |
हिन्दी (भारत) | hi-IN | Hindi (India) |
ไทย (ประเทศไทย) | th-TH | Thai (Thailand) |
한국어 (대한민국) | ko-KR | Korean (South Korea) |
國語 (台灣) | zh-TW | Chinese, Mandarin (Traditional, Taiwan) |
廣東話 (香港) | yue-Hant-HK | Chinese, Cantonese (Traditional, Hong Kong) |
日本語(日本) | ja-JP | Japanese (Japan) |
普通話 (香港) | zh-HK | Chinese, Mandarin (Simplified, Hong Kong) |
普通话 (中国大陆) | zh | Chinese, Mandarin (Simplified, China) |