Olga Shavrina
9 117
Блоги

Как мы за три месяца сделали сервис для тренировки разговорного иностранного языка

Создатели сервиса Speekify — о том, как они реализовали проект, не отрываясь от основной работы, в последний момент вляпались в технические ограничения и не потратили ни копейки на рекламу.

Поделиться

В избранное

В избранном

«Сидели мы как-то, выпивали…», — так начинаются многие стартаперские истории. У меня же было по-другому. Всё началось с доски.

Лет пять назад у меня дома висела пробковая доска с приколотыми к ней бумажками, на которых я писала идеи и мысли о том, что бы такое замутить. И одна из бумажек гласила: «Образование — самый востребованный продукт. Надо сделать образовательный сервис и учить людей». Под ней накопилась пачка идей образовательных сервисов, но до реализации дело ни с одним не дошло.

Два года назад я переехала в Испанию и обнаружила, что учиться надо мне самой. В ИТ-среде тут все говорят на английском. Хоть я и учила его в школе и вузе, но говорить на нём толком не могла, вернее, могла, но как-то коряво — с запинками, мычанием и мыслью: «Боже, как унизительно!». Тогда я начала слушать английские подкасты и смотреть фильмы в оригинале.

Это было хорошо, но мало. Понимать я стала лучше, но говорить всё ещё было трудно. В один прекрасный день я придумала читать полчаса в день вслух, чтобы тренировать английскую речь. И через 15 минут — дзыньк — сообщение от друга: «Слышь, мы придумали сделать сервис для тренировки разговорного языка. Тебе интересно участвовать?»

«Боже мой, ну конечно интересно!» — с этого всё и началось.

Идея Speekify

Идея сервиса принадлежит Роману Смирнову. Он начал учить испанский, но быстро понял, что делать это как все люди — бестолково. Вообще, Рома — один из тех редких людей, которые, взявшись за дело, сначала досконально в нём разбираются и находят самый действенный и научно обоснованный способ.

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

Идея Speekify проста: чтобы научиться говорить — надо говорить, а чтобы научиться говорить как носитель — надо повторять за носителями. Носителей на всех не напасёшься, да это и не дёшево, поэтому мы используем оригинальные аудиозаписи.

Что у Speekify внутри

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

Потренировавшись минут 15-20, пользователь переходит на второй шаг, где записывает весь ролик целиком, точно так же повторяя текст за оригиналом по кусочкам. Записал — отправляешь на проверку. Speekify считает, насколько произношение пользователя близко к оригиналу, и выдаёт оценку в процентах.

И главное — пользователь получает ролик, где после каждого фрагмента оригинального трека вставлен тот же кусочек, произнесённый им самим. Он наконец-то слышит, как звучит его голос на иностранном языке по сравнению с носителем — где он делает лишние паузы, где неправильно произносит звуки и так далее.

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

Под внешне простой идеей скрывается технически сложная задача.

  1. Нужно найти подходящий контент с открытой лицензией и интересным содержанием.
  2. Ролики нужно порезать с умом: учитывая паузы и интонацию диктора. Фрагменты должны быть адекватные по длине, чтобы человек был в состоянии их повторить. Всё это делается автоматически, плюс есть возможность ручной проверки и доводки.
  3. Каждому фрагменту соответствует кусочек субтитров, и это сопоставление делается вручную.
  4. Оценка похожести записи пользователя на оригинал — это отдельная задача. Сравнение происходит на нескольких уровнях: распознаётся и сравнивается речь, сравниваются темп, интонация и произношение.
  5. Мы используем идею интервальных повторений, так что через несколько дней ролик снова выдаётся пользователю, чтобы он закрепил результат, сравнил свою старую запись с новой и почувствовал прогресс.

Роли и процесс

Большая часть работы — алгоритмы, бэкенд и контент — упала на Романа. Денис Лукьянов пилил фронт, а на мне были UX, UI и лендинг.

У нас было катастрофически мало времени — всего три месяца. Начали в середине октября, релиз запланировали на время после новогодних праздников. Даже сами не до конца верили, что это возможно. Но поставили сроки и начали пахать.

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

Адские ограничения по времени, как ни странно, сыграли нам на руку. Мы очень жёстко отбрасывали всё, что не первостепенно, и упрощали всё, что можно было упростить. Фронтенд сделали на VueJS, а лендинг — на Tilda.

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

«Делать минимум» не означает «плохо» или «скучно». Проект должен радовать, всем хотелось сделать качественный, яркий продукт, которым приятно пользоваться. Поэтому у нас есть иллюстрации, анимации и даже медальки, которые мы даём, если пользователь записал урок на высокую оценку.

Было трудно? Ещё как.

Эпик фейл перед самым релизом

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

Разрабатывали, конечно, mobile first — дизайнили под мобильное разрешение и портировали на десктоп, так как прекрасно понимали, что без поддержки мобильных нельзя.

И вот за окном январь, мы заканчиваем финальные правки, тестируем сервис во всех браузерах и внезапно обнаруживаем, что Safari на iOS не поддерживает запись звука, а десктопная Safari хоть и поддерживает, но записывает так, как будто ты — заржавелый робот с севшей батарейкой. То есть все пользователи Mac и iPhone (наша самая «вкусная» аудитория) оказываются в глубокой ж***, и мы вместе с ними.

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

Релиз и первые пользователи

Поставили себе цель — получить 50 первых пользователей, чтобы собрать с них фидбек, а потом уже решать, что делать дальше.

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

В общей сумме публикациями поделились 73 раза, они набрали больше 220 лайков и 50 комментариев, привели на лендинг около 800 человек. Из них мы получили более ста пользователей за первые несколько дней и ещё почти столько же за следующие пару недель.

Если честно, то мы были в лёгком шоке, потому что ожидали раза в три меньший выхлоп. От конверсии лендинга в 23% мы присели и поначалу подумали, что это случайность. Мол, многие из перешедших — наши друзья, и пока рано делать выводы.

Однако конверсия сохраняется и на публикациях в группах, что очень радует и говорит о том, что потребность у людей есть, и новый метод им интересен.

Что дальше

А дальше много работы.

Во-первых, есть фидбек от пользователей — они привыкли заниматься языком так, как их учили в школе, то есть переводить и зубрить, и просят механизмы для этого. Но мы не поддаёмся. Это неверный подход, он никогда не позволит свободно говорить на языке. Наша задача — донести, что можно по-другому: быстрее, проще и эффективнее.

Во-вторых, у нас куча планов: мобильные приложения, онбординг, локализация, новые курсы и языки.

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

#образование

{ "author_name": "Olga Shavrina", "author_type": "self", "tags": ["\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435"], "comments": 153, "likes": 67, "favorites": 124, "is_advertisement": false, "section_name": "blog", "id": "34038", "is_wide": "" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } } ]