Естонська до B1 з власним GenAI-додатком
Tere kõigile! — Привіт всім!
Мене звати Микола Мозговий, і це моя історія вивчення естонської крізь експерименти з GenAI.
Ніколи не очікував, що буду писати про свій досвід вивчення естонської мови. Естонія мала стати цікавою зупинкою на рік перед переїздом до США. Але «немає нічого більш постійного, ніж тимчасове». Звісно, 2022 рік суттєво скоригував життєві плани. В Естонії я проживаю з 2021 року.
Особливості естонської мови
«В естонців немає сексу і немає майбутнього» — це їхня гра слів стосовно власної граматики. Взагалі, самоіронія та чорний гумор — характерні риси місцевої словесності, наприклад:
- Киваючи у бік кладовища, знайома зауважує: «Більшість місцевих ‘проживає’ тут».
- Книжка для першокласників досліджує питання: «Що єднає всіх естонців?» і дає відповідь: «Нежить та застуда».
Є інші відомі приклади, які я не наважуюсь написати.
Втім, на відсутності гендеру та майбутнього часу простота естонської мови закінчується. Мова не є індоєвропейською, тому знайомими є лише запозичені слова. Зокрема є чимало спільних запозичень з німецької мови:
| ET | DE | UA |
|---|---|---|
| Suhkur | Zucker | Цукор |
| Sibul | Zwiebel | Цибуля |
| Köök | Küche | Кухня |
| Värv | Farbe | Фарба |
| Maaler | Maler | Маляр |
| Meister | Meister/Master | Майстер |
| Paber | Papier | Папір |
| Trükk | Друк | |
| Väärt | Wert | Вартість |
Мій досвід навчання в групі свідчить про те, що фонетика може бути проблемною для західних європейців, але не стільки для нас. Зокрема є такі особливості:
- Повсюдне використання ‘õ’, що відповідає нашому ‘и’/‘ы’. Навіть на початку слів: Õnn (щастя), õige (правильний), rõõm (радість).
- Приховане пом’якшення приголосних. В естонській мові є звуки, що відповідають нашому м’якому знаку, але на письмі це пом’якшення ніяк не позначається. Тому вимову таких слів доводиться просто запам’ятовувати на слух: наприклад, kass вимовляється м’яко — «кась» (кіт), а konn — «конь» (жаба).
- Є ä, ö, ü, які важко пояснити, не почувши їх.
- Є також š = ш та ž = ж, які використовуються лише для запозичених слів (імен).
Далі вас чекають 14 відмінків, проте проблемними є не всі: родовий (від якого виводяться 12 інших), знахідний (який за логікою не однаковий з українським) та їхня форма в множині.
Проте для носіїв слов’янської мови хоча б зрозумілим є концепт відмінків. Найвідомішим родичем естонської мови є фінська. Між ними є обмежене взаємне розуміння, проте на практиці носії переходять на англійську для спілкування. За відгуками, фінська є ще складнішою для вивчення, ніж естонська. Ключовою відмінністю між ними є відкритість до запозичень в естонській мові та політика архаїзації/нативізації у фінській.
Мій шлях вивчення
До осені 2024 року вивчення було спорадичним і несистемним. Проте саме до того часу у мене не було певності, що ми лишаємося тут «назавжди». З 2021 року я використовував додаток Language Drops, по суті, ситуативні картки для запам’ятовування (flashcards). Duolingo для естонської не існує. Проте існує місцевий якісний додаток Lingvist, яким я майже не користувався (можливо, через обмеження безкоштовної версії).
Я маю зауважити, що ключовим інструментом навчання я все ж вважаю роботу з репетитором, що є носієм мови: спочатку групову до A2 і потім індивідуальну до B1. Виконання письмових вправ та діалоги з носієм — це, якщо не 80%, то 66% успіху.
Навіщо робити свій додаток?
Саме через відсутність Duolingo та обмеження Language Drops (картки є статичними і детермінованими) виникла ідея створення власного додатка на основі GenAI. Також було цікаво застосувати генеративний ШІ на практиці та не забувати навички .NET. Окрім того, на момент 2024 року сама ідея динамічного освітнього контенту була свіжою і цікавою для випробування.
Ідея полягає у тому, щоб зосередитися на збільшенні словникового запасу за пріоритетом вживаності слів. Далі кожне слово отримує приклад використання у типовому для нього контексті, візуальну ілюстрацію цього прикладу і мовлення.

Згенерований приклад до слова «lind»
Цей принцип використовують офіційні освітні матеріали Settle in Estonia — але з живими акторами. Далі можна додавати вправи, як-от переклад, відмінювання та інші.
Технічне рішення
Діаграма залежностей високого рівня
Зазначу, що я не рекламую жодну з компаній чи технологій (окрім Tartu NLP — вони круті, адже це університетський і некомерційний проєкт). Мій вибір був суб’єктивно адекватним на 2024 рік, імовірно, зараз він був би іншим.
| Технологія | Коментар |
|---|---|
| .NET Core + Blazor + Blazor Bootstrap | Логіка додатку та інтерфейс користувача |
| OpenAI GPT-4.1 | Генерація текстових даних, коментарі до вправ |
| Tartu NLP | Генерація естонського мовлення з тексту |
| Stability AI (SDXL/SD1.6) | Генерація зображень |
| Salad (portal.salad.com) | Пакетна генерація/обробка зображень |
| Azure: Blob Storage | Зберігання всіх згенерованих даних |
| Azure: Cosmos DB | Насправді непотрібна для цього масштабу річ, але було найлегше увімкнути для ASP.NET Core Identity |
| Playwright | E2E тести |
Ціни
Вказані кумулятивні витрати з 2024 року:
| Сервіс / Ресурс | Вартість |
|---|---|
| Tartu NLP — text-to-speech | безкоштовно |
| OpenAI | 60$ |
| Stability AI — [pre]pay-as-you-go (генерація зображень) | 30$ = 3000 кредитів (їх внутрішня валюта) |
| Salad — оренда серверного часу (генерація зображень) | 5$ за близько 2 тисячі зображень |
| Azure Web App — free tier | Безкоштовно |
| Azure Blob Storage + Cosmos DB | Наразі 0,07$ на місяць і, можливо, близько 5$ з 2024. |
Що я дізнався в процесі?
- Генеративний ШІ коштує дуже дорого порівняно зі стандартними ресурсами для обчислень, зберігання даних і хостингу.
- Використовуйте пакетну обробку (batch processing) для генерування початкових даних — це може бути вдесятеро дешевше порівняно з генеруванням за моделлю оплати за фактом використання (pay-as-you-go) або за запитом.
- Новіша модель не обов’язково означає кращу ефективність у виконанні конкретного завдання. Зокрема, GPT-5 (на момент виходу) продемонстрував цілковиту неспроможність (правильно) відмінювати слова за естонськими граматичними відмінками порівняно з GPT-4.1.
- LLM може (чи навіть має) генерувати запити (prompt) для інших моделей або для самої себе. У моєму випадку промпт, що описує сцену для ілюстрації речення, генерується моделлю GPT-4.1 перед передачею до Stability AI.
- LLM можна змусити дотримуватися заданого контракту вихідних даних; зокрема, метод
ChatResponseFormat.CreateJsonSchemaFormatу SDK для .NET (OpenAI та Azure OpenAI) використовується для гарантування того, що моделі видаватимуть структуровані дані, які відповідають заданій JSON-схемі. - Цей файл проєкту демонструє, як можна отримати JSON Schema для .NET-типу.
DescriptionAttribute можна використовувати для передачі LLM додаткового контексту і сенсу щодо окремих властивостей, таким чином ви отримуєте промптинг на основі схем (schema-driven prompting):
public struct TranslatedString
{
[Description("Tõlge eesti keelde")]
public required string Et { get; set; }
[Description("Translation in English")]
public required string En { get; set; }
}
Що дає естонська мова?
Рівень B1 дає небагато з практичного погляду, але чимало з юридичного (легального). Так, наприклад, майже всі робочі професії все ж вимагають хоча б B2 (залежить від регіону), проте B1 є достатнім для отримання посвідки на постійне проживання і навіть для отримання громадянства (після 8 років проживання і тесту на конституційний устрій).
Мій сертифікат B1
Окремо зазначу елемент взаємної поваги. Естонці розуміють складність та унікальність власної мови, і тому вони схильні схвально ставитися навіть до незграбних спроб спілкуватися з ними їхньою рідною мовою. Зі свого боку, я радий хоч трохи їх здивувати.
Майже всі естонці білінгви. Молодше покоління добре володіє англійською, старше покоління — російською. Майже всі сервіси дублюються двома-трьома (іноді чотирма) мовами. В цьому сенсі Естонія дуже комфортна для експатріантів. Проте повноцінна інтеграція у суспільне життя вимагає знання естонської.
Сподіваюсь, що ця стаття була вам цікава і, можливо, корисна. Створений мною проєкт можна скопіювати і використати для мови, яку ви вчите.
10 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівДуже незвично щодо саме мови, але в реаліях постійного проживання — дуже логічний крок. Бажаю вам удачі.
потрібне визначення терміну як то тут у контексті саме з естонської ))
ЗЫ: ми якраз днями може навіть учора сперечалися коли власне ставити native проти Full professional proficiency і зокрема що таке узагалі «білінгви»
ЗЫ: як то там далі вже купи азіатів як то китай та індокитай вони імперської мають чінів мандарин і всякі «сімейні» індокитайські тож там з одного боку вони стверджують якоби «їхні діти» то є «білінгви» але при цьому так само самі ж роказують «як воно є» як то «він думає на мандарині і будує думки та ідеї також тож іноді не знає як сказати недо мовою і говорить культурною імперською а мені доводиться розбирати через гугло перекладач»
ЗЫ: але то вже ошмьотки недо націй особисто мене цікавило чи не простіше мені самому писати зрешті native вже на мою власну «американську як не іноземну» ))
ЗЫ: ми якраз днями може навіть учора сперечалися коли власне ставити native проти Full professional proficiency і зокрема що таке узагалі «білінгви»
Метод виключення, скоріш. Я більш ставлю на bilingual:)
імхо усі євро тести екзамені проходять одразу на б1-б2 або ж на а2-б1 (усі ті хто мені були відомі які я сам бачив) а з цього розкладу і з власного досвіду включно як «американської не іноземної» то б1 як рівень мови то радше такий собі а2+
тобто імхо _реальний_ рівень то є саме б1 як саме «а2+» як завершення власне «самого початкового курсу взагалі»
імхо маючи реальну потребу та то просто навіть витрачаючи певні затрати на сам екзамен сертифікат то при цьому не перейти одразу на б2 то є виглядає якось дивно
ЗЫ: так само як для прикладу узагалі як саме існування «наявні сертифікати а1-а2» як то буває зустрічається навіть та власне саме у «резюме»
ЗЫ: популярна тема «наших» емігрантів які усі там впираються і «адвокати» у них і «кейзи» і в країні вони вже живуть роками і взагалі розказують як вони прямо сюди хотіли ... але при цьому щось там запис «мова володіння а1 або навіть а2» от х.з. що хотів сказать узагалі
Залежить від людини, але для мене це не тривіальне завдання. Проте, Inshallah.
теоретично не має залежати бо у людини мова не є технічно як вища розумова діяльність саме усвідомлена а радше складний нейро біологічний процес для якого людина має усі вбудовані саме «апаратні» призначення
... ну хіба що та класика як то «щелепа генетично не пристосована до мови» ))
I think the required level of language for permanent residence and citizenship reflects willingness goverment to integrate foreiners. In Czechia it is A2/B1 (A2 — permanent residence, B1 — citizenship)
NL = A2 is enough for both.
крутяк! шо сказать...
Congratulation to NL. I read in the Guardian that only Ireland nowadays does not have language level requirements.