Малим я загубився в Гонконзі. Мови я не знав.
Пізніше, у поїздках до Китаю та інших країн, де я не знаю мови, я не міг користуватися мобільним інтернетом. Щоразу мені хотілося того самого: перекладача, якому не потрібна мережа, щоб я міг розуміти людей і розмовляти з ними.
Knowless — моя спроба зробити такий перекладач. Він перетворює мовлення на транскрипцію і переклад наживо, просто на телефоні. Я його спроєктував, а розробив за допомогою ШІ-інструментів.1 Мабуть, це найпростіший застосунок із тих, що я зробив: один екран і одна кнопка. Щоб він став таким простим, я тричі звернув не туди.
Перша спроба: радар
Перша версія була радаром, який слухав увесь час. Я уявляв, що він зможе за самим лише звуком визначити, де той, хто говорить.
Досить швидко з’ясувалося, що не зможе. Мій телефон не дає просторового аудіо із запису, тож ніщо в записі не каже, звідки лунає голос. Наскільки я читав, новіша модель, можливо, дає. У мене такої немає. Я перестав намагатися зробити це через звук.
Друга спроба: обидві камери
Тож я спробував очі замість вух. Передня і задня камери працюють одночасно й шукають обличчя, яке говорить, щоб застосунок знав, де ця людина.
Дійшло до робочої збірки на моєму телефоні, де все було на пристрої, без сервера: вона стежила за обома камерами й намагалася зіставити кожен голос з обличчям. Провалилася вона в головному. Телефон грівся. Батарея швидко сідала. Він зависав, і часто. Від цього я теж відмовився.
Слухати власними вухами
Деякі рішення були дрібнішими, а важили не менше. На папері шумозаглушення для гучних місць звучало розумно. Потім я послухав шумний запис власними вухами. Я не міг розібрати, що сам кажу. Жодне очищення від шуму цього б не виправило, тож я відмовився від ідеї.
Ось що я маю на увазі під «human in the loop». Я розробляю із ШІ і мушу постійно перевіряти, чи має сенс у реальній ситуації те, про що я прошу. Рішення надзвичайно важливі.
Те саме було з моделями. Я тестував їх по одній, і це забрало багато часу. На початку, з моделями, завантаженими на телефон, застосунок важив би близько чотирьох гігабайтів. Перший прототип ще й зберігав історію розмов. Її я прибрав, щоб встигнути з релізом до Shipaton, і все одно мало не пропустив дедлайн.
якщо не чую я, не почує жоден фільтр
Що лишилося
Один екран і одна кнопка. Натиснути, сказати, перекласти.
Перекладений рядок великий. Оригінал стоїть одразу під ним: менший, сірий, курсивом.
Цей порядок зберігається, коли текст росте. Він масштабується від 50% до 300% щипком. Мови, які застосунок слухає, обирають заздалегідь, не більше трьох. І рядок можна забрати із собою: скопіювати його або дати прочитати вголос.
Ті два дні
Дуже маленька функція виявилася надзвичайно складною: те, як з’являються слова.
Здається, що аудіо стає текстом, а текст потрапляє на екран. Це не так. Аудіо стає здогадом, і здогад одразу потрапляє на екран, тож є відчуття, що все відбувається наживо. Потім здогад виправляється, і якщо виправлення відрізняється, екран змінюється. Після довгого речення є ще один прохід, який виправляє його знову, з урахуванням контексту всього речення.
Кожен із цих станів має виглядати як слід, і очікування між ними теж. Рядок, який ще надходить, намальовано мінливими гліфами за бурштиновим курсором. Рядок, що вже склався, — це звичайний текст, і він не рухається.
Понад два дні я ходив туди-сюди між застосунком і дизайн-макетом. Я від початку знав: хочу, щоб це відчувалося інтуїтивно, — і вірив, що люди це відчують. Я не чекав, що це забере стільки часу.

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