Lê Xuân LộcНазад до п’яти застосунків

Один екран і одна кнопка.

Knowless · Есе · жовтень 2026

Малим я загубився в Гонконзі. Мови я не знав.

Пізніше, у поїздках до Китаю та інших країн, де я не знаю мови, я не міг користуватися мобільним інтернетом. Щоразу мені хотілося того самого: перекладача, якому не потрібна мережа, щоб я міг розуміти людей і розмовляти з ними.

Knowless — моя спроба зробити такий перекладач. Він перетворює мовлення на транскрипцію і переклад наживо, просто на телефоні. Я його спроєктував, а розробив за допомогою ШІ-інструментів.1 Мабуть, це найпростіший застосунок із тих, що я зробив: один екран і одна кнопка. Щоб він став таким простим, я тричі звернув не туди.

Перша спроба: радар

Перша версія була радаром, який слухав увесь час. Я уявляв, що він зможе за самим лише звуком визначити, де той, хто говорить.

Досить швидко з’ясувалося, що не зможе. Мій телефон не дає просторового аудіо із запису, тож ніщо в записі не каже, звідки лунає голос. Наскільки я читав, новіша модель, можливо, дає. У мене такої немає. Я перестав намагатися зробити це через звук.

Друга спроба: обидві камери

Тож я спробував очі замість вух. Передня і задня камери працюють одночасно й шукають обличчя, яке говорить, щоб застосунок знав, де ця людина.

Дійшло до робочої збірки на моєму телефоні, де все було на пристрої, без сервера: вона стежила за обома камерами й намагалася зіставити кожен голос з обличчям. Провалилася вона в головному. Телефон грівся. Батарея швидко сідала. Він зависав, і часто. Від цього я теж відмовився.

Слухати власними вухами

Деякі рішення були дрібнішими, а важили не менше. На папері шумозаглушення для гучних місць звучало розумно. Потім я послухав шумний запис власними вухами. Я не міг розібрати, що сам кажу. Жодне очищення від шуму цього б не виправило, тож я відмовився від ідеї.

Ось що я маю на увазі під «human in the loop». Я розробляю із ШІ і мушу постійно перевіряти, чи має сенс у реальній ситуації те, про що я прошу. Рішення надзвичайно важливі.

Те саме було з моделями. Я тестував їх по одній, і це забрало багато часу. На початку, з моделями, завантаженими на телефон, застосунок важив би близько чотирьох гігабайтів. Перший прототип ще й зберігав історію розмов. Її я прибрав, щоб встигнути з релізом до Shipaton, і все одно мало не пропустив дедлайн.

якщо не чую я, не почує жоден фільтр

Що лишилося

Один екран і одна кнопка. Натиснути, сказати, перекласти.

Перекладений рядок великий. Оригінал стоїть одразу під ним: менший, сірий, курсивом.

«Thank you for your help.» за розміру тексту 100%, під ним «Gracias por su ayuda.» меншим сірим курсивом. Те саме речення на 300%. Тепер воно займає всю ширину, у три рядки; іспанський оригінал теж більший, але все одно менший і сірий.

Цей порядок зберігається, коли текст росте. Він масштабується від 50% до 300% щипком. Мови, які застосунок слухає, обирають заздалегідь, не більше трьох. І рядок можна забрати із собою: скопіювати його або дати прочитати вголос.

Ті два дні

Дуже маленька функція виявилася надзвичайно складною: те, як з’являються слова.

Здається, що аудіо стає текстом, а текст потрапляє на екран. Це не так. Аудіо стає здогадом, і здогад одразу потрапляє на екран, тож є відчуття, що все відбувається наживо. Потім здогад виправляється, і якщо виправлення відрізняється, екран змінюється. Після довгого речення є ще один прохід, який виправляє його знову, з урахуванням контексту всього речення.

Кожен із цих станів має виглядати як слід, і очікування між ними теж. Рядок, який ще надходить, намальовано мінливими гліфами за бурштиновим курсором. Рядок, що вже склався, — це звичайний текст, і він не рухається.

Понад два дні я ходив туди-сюди між застосунком і дизайн-макетом. Я від початку знав: хочу, щоб це відчувалося інтуїтивно, — і вірив, що люди це відчують. Я не чекав, що це забере стільки часу.

Екран живого перекладу в Knowless: перекладені рядки з оригіналами під ними.

деяких речей там бути не повинно. не всі це помічають.

Казати рівно так, як є

Розпізнавання мовлення і переклад працюють на телефоні. Мови треба один раз завантажити, коли є мережа; після цього основне працює без неї. Тому на знімку екрана, який я підготував для App Store, написано «works offline», і тут-таки названо умову: після завантаження підтримуваних мов.

Два перекладені рядки з іспанськими оригіналами, зі знімка екрана про роботу офлайн, який я підготував для App Store.

Чого це не доводить

Результатів тут немає: ні оцінок розуміння, ні юзабіліті-дослідження, ні цифр про кількість користувачів. Показати я можу шлях і те, куди він привів.

Далі я хочу, щоб двоє людей, кожен зі своїм телефоном, наживо отримували переклад одне одного. Цього ще не зроблено.

Knowless в App Store Розглядаю вакансії дизайнера. Контакти

  1. Про допомогу ШІ: рішення, описані тут, мої. Я скеровую інструменти, читаю те, що вони видають, і перевіряю це на пристрої. Я не стверджую, що кожен рядок коду написано вручну. ↩
  2. Про зображення: кліп вирізано з відеопрев’ю, яке я зробив для App Store, без звуку. Розмова в ньому і на кожному екрані цієї сторінки ілюстративна, не справжня. Статичні зображення взято з набору знімків екрана, який я підготував для App Store; на сторінці застосунку там може бути інший набір. Малюнок радара зроблено для цієї сторінки; це не знімок екрана. Екран читання, який можна спробувати, — це невелика копія, зроблена для цієї сторінки, а не сам застосунок.