24 KiB
Поддръжка на множество езици
Скица от Nitya Narasimhan. Кликнете върху изображението за по-голяма версия.
Това видео предоставя преглед на услугите за реч на Azure, обхващайки преобразуването на реч в текст и текст в реч от предишните уроци, както и превод на реч – тема, разгледана в този урок:
🎥 Кликнете върху изображението по-горе, за да гледате видеото
Тест преди урока
Въведение
В последните три урока научихте за преобразуването на реч в текст, разбирането на езика и преобразуването на текст в реч, всичко това благодарение на изкуствения интелект. Още една област на човешката комуникация, в която ИИ може да помогне, е преводът на езици – преобразуването от един език на друг, например от английски на френски.
В този урок ще научите как да използвате ИИ за превод на текст, което ще позволи на вашия умен таймер да взаимодейства с потребители на различни езици.
В този урок ще разгледаме:
- Превод на текст
- Услуги за превод
- Създаване на ресурс за превод
- Поддръжка на множество езици в приложения чрез преводи
- Превод на текст с помощта на услуга за ИИ
🗑 Това е последният урок от този проект, така че след като завършите урока и задачата, не забравяйте да изчистите вашите облачни услуги. Ще ви трябват услугите, за да завършите задачата, така че се уверете, че първо сте я изпълнили.
Ако е необходимо, вижте ръководството за изчистване на проекта за инструкции как да направите това.
Превод на текст
Преводът на текст е проблем в компютърните науки, който се изследва повече от 70 години, и едва сега, благодарение на напредъка в ИИ и изчислителната мощ, е близо до решаване до степен, в която е почти толкова добър, колкото човешките преводачи.
💁 Началото може да се проследи още по-назад, до Ал-Кинди, арабски криптограф от 9-ти век, който разработва техники за превод на езици.
Машинен превод
Преводът на текст започва като технология, известна като Машинен Превод (MT), която може да превежда между различни езикови двойки. MT работи чрез заместване на думи от един език с друг, като добавя техники за избор на правилния начин за превод на фрази или части от изречения, когато простият превод дума по дума няма смисъл.
🎓 Когато преводачите поддържат превод между един език и друг, това се нарича езикови двойки. Различните инструменти поддържат различни езикови двойки, които може да не са пълни. Например, преводач може да поддържа английски към испански като езикова двойка и испански към италиански като езикова двойка, но не и английски към италиански.
Например, преводът на "Hello world" от английски на френски може да се извърши чрез заместване – "Bonjour" за "Hello" и "le monde" за "world", което води до правилния превод "Bonjour le monde".
Заместванията обаче не работят, когато различните езици използват различни начини за изразяване на едно и също нещо. Например, английското изречение "My name is Jim" се превежда на френски като "Je m'appelle Jim" – буквално "Аз се наричам Джим". "Je" е френското за "Аз", "moi" е "мен", но се съкращава с глагола, когато започва с гласна, така че става "m'", "appelle" означава "наричам", а "Jim" не се превежда, тъй като е име, а не дума, която може да бъде преведена. Подредбата на думите също става проблем – просто заместване на "Je m'appelle Jim" става "I myself call Jim", с различен ред на думите спрямо английския.
💁 Някои думи никога не се превеждат – моето име е Джим, независимо на какъв език се представям. Когато се превежда на езици, които използват различни азбуки или различни букви за различни звуци, думите могат да бъдат транслитерирани, тоест да се изберат букви или символи, които дават подходящия звук, за да звучат същото като дадената дума.
Идиомите също са проблем за превода. Това са фрази, които имат подразбиращо се значение, различно от директната интерпретация на думите. Например, в английския идиомът "I've got ants in my pants" не се отнася буквално до мравки в дрехите, а до неспокойствие. Ако преведете това на немски, ще объркате слушателя, тъй като немската версия е "I have bumble bees in the bottom".
💁 Различните локализации добавят различни сложности. С идиома "ants in your pants", в американския английски "pants" се отнася до външно облекло, а в британския английски "pants" означава бельо.
✅ Ако говорите няколко езика, помислете за някои фрази, които не се превеждат директно.
Системите за машинен превод разчитат на големи бази данни с правила, които описват как да се превеждат определени фрази и идиоми, заедно със статистически методи за избор на подходящите преводи от възможните опции. Тези статистически методи използват огромни бази данни с произведения, преведени от хора на множество езици, за да изберат най-вероятния превод – техника, наречена статистически машинен превод. Някои от тях използват междинни представяния на езика, позволявайки един език да се преведе на междинния, а след това от междинния на друг език. Така добавянето на повече езици включва преводи към и от междинния, а не към и от всички други езици.
Невронен превод
Невронният превод използва силата на ИИ за превод, като обикновено превежда цели изречения с един модел. Тези модели се обучават върху огромни набори от данни, преведени от хора, като уеб страници, книги и документация на ООН.
Моделите за невронен превод обикновено са по-малки от моделите за машинен превод, тъй като не се нуждаят от огромни бази данни с фрази и идиоми. Съвременните ИИ услуги за превод често комбинират множество техники, смесвайки статистически машинен превод и невронен превод.
Няма 1:1 превод за която и да е езикова двойка. Различните модели за превод ще произвеждат леко различни резултати в зависимост от данните, използвани за обучението на модела. Преводите не винаги са симетрични – ако преведете изречение от един език на друг, а след това обратно на първия език, може да получите леко различно изречение като резултат.
✅ Изпробвайте различни онлайн преводачи като Bing Translate, Google Translate или приложението за превод на Apple. Сравнете преведените версии на няколко изречения. Също така опитайте да преведете в един, а след това обратно в друг.
Услуги за превод
Съществуват редица ИИ услуги, които могат да се използват от вашите приложения за превод на реч и текст.
Услуга за реч на Cognitive Services
Услугата за реч, която използвахте в последните няколко урока, има възможности за превод при разпознаване на реч. Когато разпознавате реч, можете да поискате не само текста на речта на същия език, но и на други езици.
💁 Това е налично само чрез SDK за реч, REST API не включва вградени преводи.
Услуга за превод на Cognitive Services
Услугата Translator е специализирана услуга за превод, която може да превежда текст от един език на един или повече целеви езици. Освен превод, тя поддържа широк набор от допълнителни функции, включително филтриране на нецензурни думи. Тя също така ви позволява да предоставите конкретен превод за определена дума или изречение, за да работите с термини, които не искате да бъдат превеждани, или да имате специфичен, добре познат превод.
Например, когато превеждате изречението "I have a Raspberry Pi", отнасящо се до едноплатковия компютър, на друг език като френски, бихте искали да запазите името "Raspberry Pi" непроменено, като получите "J’ai un Raspberry Pi" вместо "J’ai une pi aux framboises".
Създаване на ресурс за превод
За този урок ще ви е необходим ресурс за превод. Ще използвате REST API, за да превеждате текст.
Задача – създаване на ресурс за превод
-
От вашия терминал или команден ред изпълнете следната команда, за да създадете ресурс за превод в групата ресурси
smart-timer
.az cognitiveservices account create --name smart-timer-translator \ --resource-group smart-timer \ --kind TextTranslation \ --sku F0 \ --yes \ --location <location>
Заменете
<location>
с местоположението, което сте използвали при създаването на групата ресурси. -
Вземете ключа за услугата за превод:
az cognitiveservices account keys list --name smart-timer-translator \ --resource-group smart-timer \ --output table
Направете копие на един от ключовете.
Поддръжка на множество езици в приложения чрез преводи
В идеалния случай цялото ви приложение трябва да разбира възможно най-много различни езици – от разпознаване на реч, през разбиране на езика, до отговаряне с реч. Това е много работа, така че услугите за превод могат да ускорят времето за доставка на вашето приложение.
Представете си, че изграждате умен таймер, който използва английски от край до край – разбира говорим английски и го преобразува в текст, обработва езиковото разбиране на английски, създава отговори на английски и отговаря с реч на английски. Ако искате да добавите поддръжка за японски, можете да започнете с превод на говорим японски в текст на английски, след това да запазите основната част на приложението същата, а след това да преведете текста на отговора на японски, преди да го произнесете. Това би ви позволило бързо да добавите поддръжка за японски, а по-късно можете да разширите приложението, за да предоставите пълна поддръжка от край до край за японски.
💁 Недостатъкът на разчитането на машинен превод е, че различните езици и култури имат различни начини за изразяване на едно и също нещо, така че преводът може да не съвпада с израза, който очаквате.
Машинните преводи също така отварят възможности за приложения и устройства, които могат да превеждат съдържание, създадено от потребители, в момента на създаването му. Научната фантастика често представя "универсални преводачи" – устройства, които могат да превеждат от извънземни езици на (обикновено) американски английски. Тези устройства са по-скоро научен факт, отколкото научна фантастика, ако изключим частта с извънземните. Вече съществуват приложения и устройства, които предоставят превод в реално време на реч и писмен текст, използвайки комбинации от услуги за реч и превод.
Един пример е мобилното приложение Microsoft Translator, демонстрирано в това видео:
🎥 Кликнете върху изображението по-горе, за да гледате видеото
Представете си, че разполагате с такова устройство, особено когато пътувате или взаимодействате с хора, чийто език не знаете. Автоматичните устройства за превод на летища или в болници биха предоставили значителни подобрения в достъпността.
✅ Направете проучване: Има ли налични на пазара IoT устройства за превод? А какво ще кажете за възможности за превод, вградени в умни устройства?
👽 Въпреки че няма истински универсални преводачи, които да ни позволяват да говорим с извънземни, Microsoft Translator поддържа клингонски. Qapla’!
Превод на текст с помощта на услуга за ИИ
Можете да използвате услуга за ИИ, за да добавите тази възможност за превод към вашия умен таймер.
Задача – превод на текст с помощта на услуга за ИИ
Следвайте съответното ръководство, за да преведете текст на вашето IoT устройство:
- Arduino - Wio Terminal
- Едноплатков компютър - Raspberry Pi
- Едноплатков компютър - Виртуално устройство
🚀 Предизвикателство
Как машинните преводи могат да бъдат полезни за други IoT приложения, освен умни устройства? Помислете за различни начини, по които преводите могат да помогнат, не само с говорими думи, но и с текст.
Тест след урока
Преглед и самостоятелно обучение
- Прочетете повече за машинния превод на страницата за машинен превод в Wikipedia
- Прочетете повече за невронния машинен превод на страницата за невронен машинен превод в Wikipedia
- Разгледайте списъка с поддържаните езици за услугите за реч на Microsoft в документацията за поддръжка на езици и гласове за услугата за реч на Microsoft Docs
Задача
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.