• Город
  • Интернет
Интернет

Как команда программистов из Петербурга разработала онлайн-переводчик, попавший на главную страницу App Store

Поделиться:

Спустя полгода сверхсекретной (ну, почти) разработки команда программистов из Петербурга запустили приложение Graspp, которое за считанные дни вышло на главную страницу App Store. Это онлайн-словарь с новой неожиданной механикой: чтобы узнать перевод незнакомого слова, достаточно показать на это слово пальцем (да-да, прямо в книге!) и навести камеру. Основатель проекта Арсений Коган рассказал «Собака.ru», зачем они сделали «еще один переводчик».

Лаки Ийнбор, Арсений Коган, Егор Дубовицкий и Антон Югов (за кадром) запускают Graspp

Об идее

Закройте глаза и сделайте глубокий вдох: переношу вас в лето 2019. Теплый день, конец августа. Время, когда слово «зум» еще ассоциировалось в основном с фотоаппаратами. Мы в гостях у Джона (не путать с Джеком) Николсона, писателя и переводчика. У Джона серьезная библиотека, и, как вы уже догадались, многое — на английском языке. У меня в руках альбом "Petersburg Perspectives". Художественные фотографии города дополнены очерками иностранцев. Один из очерков в этом альбоме, как вы уже догадались, написал сам Джон, когда в начале 90-х переехал в Петербург, сразу после окончания Оксфорда.

Очерк Джона Николсона, с которого начался Graspp

Мы люди простые, Оксфорд не заканчивали — в тексте встречаются незнакомые слова. Тут два варианта: слово пропустить, типа, по смыслу догадаюсь. Работает иногда, но нюансы теряются, а бывает и совсем непонятно ничего. Второй вариант: берешь смартфон, смиренно на клавиатуре вводишь слово — скучно и долго. Есть и третий вариант, на самом деле: фото-переводчики. В Google Translate, например, можно навести камеру на текст и он весь прямо там на картинке переведется. Магия! Проблема в том, что эта магия (черная) совсем для чтения не предназначена. Переводится весь текст на фото, все скачет-прыгает. И не поймешь, где то слово, которое ты искал. Да и вообще! Мне слово посмотреть нужно, а не этот ваш машинный перевод читать.

Текст и попытка его перевести в Google Translate

Стал думать. Так, камера есть, слова распознавать можем. Но как выделить нужное слово? Прицел? Рамочка? Стрелочка может быть… Да ведь у нас же есть, чем указывать! Палец! Бог дал нам пальцы, десять штук. Первая мысль: на меня сошло озарение. Следующая мысль: да есть такое уже, наверняка. Весь оставшийся день я провел в App Store в поисках такого приложения. НЕТ! То есть 2019 год (эх!), а нормального способа перевести слово в тексте — нет. Решено: надо делать. 

Вообще, я думаю, весь этот проект — попытка закрыть детский гештальт. Я учился в школе, где детей мучают латынью и древнегреческим (не спрашивайте ничего!). Я помню это ощущение, когда ты ищешь в словаре одно слово, а потом оказывается, что это аорист первый (прошедшее время в древнегреческом языке — прим. ред.), и смотреть нужно на другую букву… но это уже другая история.

Стартап по-петербургски: первый пункт в списке дел на день — затопить камин!

О везении

Знаете, бывает, что все как-то складывается. Так и с нашим «пальцем»: дизайнер Егор Дубовицкий сразу же согласился нарисовать первые прототипы. Будущего нашего инвестора моя девушка встретила в «Коржове» буквально и недели не прошло. Сходила, называется, за хлебом. Утренний «нетворкинг» Петроградской стороны и Крестовского острова! Через несколько дней я иду по Московскому проспекту, перехожу Фонтанку. Навстречу летит Дим По (художник и дизайнер. — Прим.ред.) на моноколесе. Перехватил его, рассказал идею. Он поддержал, посоветовал программиста по имени Лаки. Встретились в «Гараже» (помните, раньше так можно было?), все обсудили и дальше я уже никого не искал. Чтобы вы понимали: iOS разработчиков на рынке крайний дефицит, найти кого-то адекватного — да еще и так, чтобы не пришлось закладывать фамильные драгоценности — задача практически невыполнимая! (Это информация для вас, дорогие школьники и студенты) Но нам повезло: у нас теперь был Лаки!


Будущего нашего инвестора моя девушка встретила в «Коржове» буквально и недели не прошло. Сходила, называется, за хлебом.

Кстати, старожилам на заметку: помните клуб «Доменикос» в начале девяностых? Я сам не помню, но мне рассказывали. Так вот наш Лаки — сын того самого Лаки, основателя «Доминикос». Тут интересны две вещи. Во-первых, наблюдается явный культурный сдвиг в сторону IT. Это приятно. Во-вторых, отчество Лаки (из-за ошибки в российском паспорте папы) — Локиевич! 

Разработчик Graspp Лаки Локиевич работает в первом офисе компании

С офисом тоже повезло: у Джулиано ди Капуа как раз освободился один отсек на его дебаркадере: том самом, который прославился благодаря лайфстайл-проекту Life Aquatic Яны Милорадовской (главного редактора «Собака.ru» — Прим. ред.). Потом мы шутили, что, если компания Apple начиналась в гараже, то мы — в доме на воде!

О сложностях

Несмотря на кажущуюся простоту, механика «показал пальцем и увидел перевод» — технически довольно сложная задача. Для этого нужно как-то программно определить координату кончика пальца в потоке видео, распознать текст на картинке и найти в нем то слово, на которое палец указывает. Слово нужно стабильно «подсветить», проверить, что распознавание прошло без ошибок, перевести и показать перевод. С точки зрения дизайна тоже все интересно: у нас примера не было, приходилось все придумывать самим.

Несколько разных концепций, которые не были приняты

То, как выглядит Graspp сейчас, кажется естественным, но мы перепробовали множество вариантов, чтобы к этому придти.


Мне пришлось выучить Python и собрать больше пяти тысяч фотографий разных пальцев, чтобы было на чем тренировать нашу «модель»

Где-то два месяца мы вообще не были уверены, что у нас получится сделать все, как мы задумали. Например, готового open-source решения для определения кончика пальца не оказалось. Сначала я искал партнеров, которые занимаются machine learning (для определения пальца мы используем машинное обучение), но мне называли какие-то дикие суммы за разработку этого модуля. Решили делать все сами: мне пришлось выучить Python (язык программирования, используется для машинного обучения) и собрать больше пяти тысяч фотографий разных пальцев, чтобы было на чем тренировать нашу «модель».

Я хорошо помню день, когда все эти технологии сложились, и нам удалось протестировать прототип! Я тогда подумал: а вдруг все действительно получится?! За два месяца я уже начал сомневаться, что мы справимся, и вот у меня в руках вещь, которая работает!

Первое полноценное демо

К концу декабря у нас уже был стабильно работающий прототип, и мы ушли на новогодние каникулы спокойные и довольные.

О запуске

После праздников началась подготовка приложения к запуску — целая пропасть мелочей, которая отделяет прототип от законченного продукта. Аккуратный перенос дизайна в код, обработка редких случаев, оптимизация потребления ресурсов, исправление багов. Не совру, если скажу, что этот список можно продолжать бесконечно!


«Запускаться поехали в деревню Силино. По принципу "пока не выложим в App Store — не расходимся"»

Чтобы как-то бороться с этой бесконечностью мы всей нашей командой запускаться поехали в деревню Силино. По принципу «пока не выложим в App Store — не расходимся». Сняли дом, который мы обычно снимаем в теплое время года. Летом там отвлекающих факторов масса, а в конце февраля — никаких. Сработало. Мы провели несколько суток за компьютерами, отправили приложение на ревью (каждое приложение в App Store проходит модерацию сотрудниками Apple) и… затопили баню. Я сижу, довольный, в клубах пара, пью «Молоко +» из бара «76» и не выпускаю из рук телефон: жду подтверждения. И в какой-то момент вижу: в «сторе». Такая радость — видеть результат нескольких месяцев работы! Мы прозвали это место Silino Valley — по аналогии с Silicon Valley, местом в Калифорния, где расположены штаб-квартиры международных высокотехнологичных корпораций вроде Apple, Facebook и Google.

Дом в Silino Valley. Фото: Егор Дубовицкий

О планах (и мечте)

На самом деле Graspp — это больше, чем «еще один переводчик». Это вообще новый способ взаимодействия между цифровым и физическим миром. То есть раньше вы могли что-то мышкой делать, на экране нажимать, на клавиатуре набирать. Теперь еще можем пальцем на что-то указать, а софт это обработает. Представьте, гуляете вы по Праге, и тут вдруг перед вами интересный изогнутый дом. Открываете обычную камеру на айфоне, указываете на дом пальцем — и вот ответ из Википедии: оказывается это «Танцующий дом» Фрэнка Гери!


«Мы не расстроимся, если Apple нас купит!»

Мы хотим эту тему развивать: сначала добавим больше языков, Википедию, выделение фраз и целых предложений. Возможно, сделаем поиск по объектам. Но наша мечта, конечно, стать стандартной механикой в камере на iOS. Не расстроимся, если Apple нас купит! Но даже если сделают сами — круто: мы эту штуку придумали, этого уже не отнять.

Еще один важный момент: мы хотим свою позицию выразить, как мы видим софт будущего. Хочется делать вещи реальному миру комплементарные, а не замещающие его. В нашем случае это значит, не заменить бумажные книги на электронные, а сделать инструмент, который сделает чтение этих бумажных книг таким же удобным с утилитарной точки зрения, как и в цифровом виде. Я, например, сейчас эту «онлайнизацию» тяжело переживаю. Хочется больше вещей физических, осязаемых.

Демо приложения Graspp

Скачать Graspp

Пока у нас версия только под iOS: делать сразу под две платформы не было возможности. Сейчас мы поддерживаем англо-русский словарь и толковый английский, оксфордский. Планируем добавить больше языков в ближайшее время.

Скачать Graspp c App Store.

И самое главное. Мне часто говорят: вау, классная штука, но сам я на английском не читаю, тяжело. Так вот! Представьте, что у вас дома коллекция пластинок стоит, но не было проигрывателя. Так вот мы сделали этот проигрыватель. Точнее, нет, даже выигрыватель! С Graspp’ом то, что раньше было читать лень из-за большого количества лексики, теперь легче в 10 раз читать. Сейчас времени для этого стало больше. Попробуйте.

С любыми комментариями и вопросами о приложении обязательно пишите нам на почту: team@getgraspp.com

Следите за нашими новостями в Telegram
Ваш город
Санкт-Петербург?
Выберите проект: