Встраиваем переводчик в Астериск
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) |

