Lê Xuân LộcНазад к пяти приложениям

Один экран и одна кнопка.

Knowless · эссе · октябрь 2026

В детстве я потерялся в Гонконге. Языка я не знал.

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

Knowless — моя попытка сделать такой переводчик. Он превращает речь в расшифровку и перевод в реальном времени прямо на телефоне. Я его спроектировал, а сделал с помощью ИИ-инструментов.1 Пожалуй, это самое простое приложение из всех, что я сделал: один экран и одна кнопка. Чтобы оно стало таким простым, пришлось трижды свернуть не туда.

Первая попытка: радар

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

Довольно быстро выяснилось, что не сможет. Мой телефон не даёт пространственного звука в записи, так что по ней не понять, откуда идёт голос. Судя по тому, что я читал, модель поновее, возможно, это умеет. У меня такой нет. Я перестал пытаться сделать это по звуку.

Вторая попытка: обе камеры

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

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

Слушать своими ушами

Некоторые решения были мельче, но значили не меньше. На бумаге шумоподавление для шумных мест выглядело разумно. Потом я своими ушами послушал шумную запись. Я не смог разобрать, что говорю я сам. Никакое шумоподавление этого не исправит, и я отказался от идеи.

Вот что я называю «человеком в контуре». Я делаю приложения с помощью ИИ и должен постоянно проверять, имеет ли смысл в реальной ситуации то, о чём я прошу. Решения крайне важны.

С моделями было то же самое. Я проверял их по одной, и на это ушло много времени. Поначалу, с моделями, загруженными на телефон, приложение весило бы около четырёх гигабайт. Первый прототип ещё и хранил историю разговоров. Её я вырезал, чтобы успеть выпустить приложение к 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; на странице приложения в магазине набор может быть другим. Рисунок радара сделан для этой страницы; это не снимок экрана. Экран чтения, который можно попробовать, — небольшая копия, сделанная для этой страницы, а не само приложение.