Голосовой интерфейс для заказа автомобиля по телефону в действии

    robophone
    Привет, Хабр. Долго я думал, как подойти к этой большой и сложной статье.

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

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

    Начало


    Полтора года назад наступил переломный момент, мы решили активно заняться своими проектами. Было составлен список кандидатов и начались жаркие дискуссии. И самое интересное, что текущего проекта в этом списке не было. Выбор пал на один проект и даже в последствии был реализован его MVP, но тут появилась идея «Сделать сервис заказа автомобиля по телефону без диспетчеров с использованием синтеза и распознавания речи». Не всем эта идея показалась жизнеспособной, даже у меня были сомнения, но как говорится, не попробуешь — не узнаешь. Разработка началась, и это была первая ошибка.

    Первый город


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

    Общая схема создания поездки:

    • Схема была простая
    • Пассажир звонит
    • Берем трубку
    • Приветствие
    • Робот спрашивает, откуда начнется поездка
    • Получает ответ
    • Распознает и геокодирует, если не получилось, спрашивает снова
    • Робот спрашивает, куда поедет пассажир
    • Распознает и геокодирует, если не получилось, спрашивает снова
    • Система создает поездку, рассчитывает расстояние, цену, время в пути
    • Робот озвучивает параметры поездки пассажиру и спрашивает подтверждение
    • Пассажир согласен, отправляем поездку на распределение водителям
    • Кладем трубку

    Общая схема исполнения поездки:

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

    Подготовка


    В начале не было представления, как рекламировать данный сервис, как искать водителей. Так же не было ни малейшего представления, какое количество проблем предстоит решить.
    Запускаться было решено в областном центре с населением ~500 тыс. человек.
    Рекламу для привлечения пассажиров выбрали следующих форматов: группы в соц. сетях, контекстная реклама, асфальт, баннеры.

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

    Запуск и Провал


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

    Пассажиры

    Людей звонило мало, и их число не сильно росло со временем, было видно, что тех объемов рекламы, которые мы могли себе позволить, финансово явно не хватало. Как выяснилось, что рекламный бюджет города в 500 тыс. должен быть не меньше 200 тыс. р в месяц, и так надо было рекламироваться на протяжении минимум полугода. Т.е. минимальный рекламный бюджет 1.2 млн. руб.

    Водители

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

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

    Мы пробовали многое:

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

    После месяца работы сервис вышел на рекорд 10 заказов в день, просто капля в море.
    Зато было приобретено первое представление о той отрасли, в которую ввязались.
    Стало ясно, что нужен существенный бюджет для раскатки. По самому минимуму на полгода в полумиллионном городе это около 2 млн рублей. И даже наличие таких средств не гарантировало успеха проекта с учетом высокой конкуренции.

    Второй город (воскрешение Феникса из пепла)


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

    Не долго думая, мы последовали одному из советов из очень хорошей книги «Маркетинговые войны».

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

    Подготовка


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

    Мы ездили в город, оценивали обстановку, в которой нам предстоит работать, искали конкурентов и т.д.(сейчас это у нас обязательная практика).

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

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

    Рекламу для привлечения пассажиров выбрали следующих форматов: группы в соц. сетях, контекстная реклама, баннеры, радио.

    Бизнес процессы


    Для водителей все так же была выбрана схема, предполагающая работу по свободному графику.
    Была установлена единая цена по городу, которая позволяла нам не распознавать адреса, а просто отсылать водителям звуковой файл.

    Отпала необходимость считать время в пути и расстояние. Цены на поездки за город определялись водителями( а зря).

    Запуск


    И вот через пару месяцев после провала в областном центре, новая попытка в маленьком городе. Перед запуском было организовано собрание водителей, для разъяснения правил работы.
    Запуск прошел бодро, в первые дни было уже по 20 заказов в сутки.

    Рост


    За 2 месяца сервис вышел в лидеры маленького города, и из-за нас стали закрываться другие службы. Начались звонки конкурентов с предложением купить их службы. Это бы успех, модель полностью оправдала себя. Конечно в процессе роста мы встретили огромное количество технических и бизнес проблем, но все было решаемо. И что важно, людей не пугал робот, принимающий заказы, они быстро привыкли.

    Нововведения


    В маленьком городе мы сделали большой шаг вперед:

    Монетизация

    Первоначально совершенно не продумывалась модель монетизации, и это был большой промах. Первое время водители ездили бесплатно, а мы платили операторам связи, сервисам синтеза и распознавания речи, за хостинг и т.д. Когда стало ясно, что модель работает, была введена монетизация.

    Смены

    Одной из существенных проблем было то, что водители выходят на линию когда хотят, и нет возможности это контролировать. Было принято решение ввести смены, а заодно сделать их платными. Сутки мы поделили на 6 смен по 4 часа. Цена смены зависела от количества звонков пассажиров.

    Скидки

    Были введены хитрые системы скидок. Для водителей на смены(например вторая смены в сутках дешевле на 30%).Для пассажиров была введена скидка на каждую n-ю поездку.

    Цена от расстояния

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

    Третий город


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

    Подготовка


    Далеко ходить не стали, был выбран другой районный центр в 100 км. Численность населения там была примерно 33 тыс. человек. Способы продвижения были теми же самыми. Схемы работы с пассажирами и водителями было решено не менять.

    Запуск и провал


    Запуск в третьем городе выявил новые неожиданные проблемы.

    Первая проблема

    Мы не набрали нужное количество водителей, точнее мы думали, что набрали. Звонило много людей, но реально готовых работать было мало. По нашим прикидкам, впоследствии, из всех кто говорит, что будет работать, реально будут только около 10-20%.

    Вторая проблема

    Запуск состоялся за 3 дня до 23 февраля, и когда наступил день защитника отечества, был пик заказов.

    В этот день позвонило 60 пассажиров, а вот водителей на линию вышло 0. Это было полной неожиданностью. Затем пришло 8 марта, и снова не была отвезена большая чать заказов.

    Тут все оказалось как в выражении «Со щитом или на щите», и мы оказались на щите.

    Попытки реабилитации

    Мы упорно не сдавались и начали предпринимать срочные меры

    • Доплаты водителям за поездки
    • Доплаты водителям в неделю
    • Тестировали новые каналы привлечения водителей

    Главной проблемой оказались водители, они ни в какую не хотели работать. В этом городе мы лицом к лицу столкнулись с главной проблемой России: люди не хотят работать.
    Нам часто звонят устраиваться на работу и когда узнают, что чтобы заработать надо работать, отказываются говорят что подумают.

    Несколько месяцев борьбы за третий город прошло безуспешно. На данный момент там все пущено на самотек. В нем работает пара водителей и в сутки 10-30 заказов. Этот провал оказался очень хорошим уроком.

    Четвертый город


    И вот, у нас: 1 город — успех и 1 город — провал, и надо идти дальше(первый не учитываем). Полученный опыт показал, что надо делать и чего делать не надо. Мы идем дальше…

    Месяц падений


    Был такой интересный месяц, когда падало все.

    • Отключали свет в серверной.
    • Отключали интернет.
    • Не работала облачная телефония.
    • Падали наши сервисы в по.

    Порой приходилось приезжать в 3 часа ночи и разбираться с проблемами.

    Технологии и архитектура


    За основу серверной части проекта была взята SOA. Были выделены основные сервисы:

    Core — работа с заказами, водителями, пассажирами. Тут же различные алгоритмы распределения заказов и персистетное хранилище основных данных.(PHP)
    Dialog — сервис для обработки звонков в реальном времени, здесь различные скрипты диалога с пассажирами. (Javascript)
    Speech — сервис для распознавания речи. (Javascript)
    Geo — сервис гекодирования. (Javascript)
    Logger — сервис логирования.(FluetnD, Elastic, Kibana)
    Bot — телеграм бот для водителей. (PHP)
    Route — сервис поиска оптимальных маршрутов. (Javascript)
    Так же было принято решение использовать Docker, как для разработки так и для production.

    Приложение для водителей сделано на базе Telegram.

    Планы


    Малая цель: это 10 городов с населением до 100 тыс. человек. На данный момент уже есть план как этого добиться и в какие сроки. А если точнее, то у нас 2 плана. Первый план: как сделать это все самим и на свои деньги, второй план завязан на привлечении инвестиций (поиском которых мы сейчас так же активно занимаемся).

    Большая цель это 30% городов России с населением до 100 тыс человек. А вот для этой цели у нас уже план только с инвестициями. Тут своими силами расти пару десятков лет.

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

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

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

    Выводы


    Настало время новых интерфейсов пользователя, где уже применяются синтез и распознавание речи и какое-то подобие AI. Достаточно вспомнить об Alexa от Amazon. Очень важно уже сейчас смотреть в сторону голосовых интерфейсов. При текущем развитии технологий, даже небольшая организация может найти им применение, которое будет приносить прибыль.

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

    ПС:
    Если сообществу будет интересно, то мы можем подготовить еще статьи по технологиям проекта, по проблемам работы с облачной телефонией в периферии, да и по тому, что будет интересно и содержит достаточно информации для отдельной статьи.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 22

      0
      а как же там ситуации как «рубинштейна 24»? плюс не редко заказы производят нетрезвые люди, которые с трудом могут даже вспомнить адрес, не то что его произнести правильно.
        0
        С помощью распознования речи и синтаксического анализа лекго выделить адреса. «рубинштейна 24» распознается и геокодируется вообще без каких-то проблем.
        Гораздо хуже с трезвыми, которые чаще не могут назвать адреса. У нас есть механизми уточниня поездок, которые не распознались с первого раза.
        0
        Большинство служб уходит от телефонных заказов в мобильные приложения, где пассажир сам выбирает откуда и куда ехать. Зачем развивать то, что скоро уже станет историей непонятно…
          +1
          Уходят с этим спорить не буду, но у вас есть статистика какое количество заказов до сих пор идет через телефон? А у вас есть статистика заказов через телефон и приложения для мелких городов?
          Есть рынок и на этом рынке есть условия работы, если вы их не принимете то вы идете на другой рынок с другими конкурентами и правилами работы. А телефоны живы и будут жить еще очень долго.
          0
          Очень интересно. А что это за «успешный город»? Как можно протестировать?
            0
            В рамках правил хабра не могу разглашать подробности, но если интересно, пишите в личку, скину живой номер куда можно позвонить и поговорить с роботом :)
            +3
            С исчезновением телефона и разговоров по телефону не согласен. Автор прав. Следующее поколение интерфейсов это голосовые интерфейсы и виртуальные помощники. Вопрос. Насколько ваш голосовой интерфейс способен заменить человека? Можно ли, например, переложить на него часть работы диспетчеров в обычных служб такси?
              0
              Да, голосовые интерфесы это будущее. На сервис при грамонтой проработке бизнес модели может полностью заменять человека. Для диспетчерских мы как раз разрабатываем платформу, позволяющую перекладывать чать работы на робота и снижать расходы на диспетчеров.
                0
                Главное, что бы люди не пугались…
                  0
                  Как показывает наш опыт, люди не пугаются. Им просто надо немного привыкнуть, а дальше это входит в норму и их все устраивает.
                    0
                    Сейчас в любом мессенджере есть голосовые сообщения, ваша платформа умеет их обрабатывать? Захотел вызвать машину, отправил голосовое сообщение из месенджера, поехал. Я бы пользовался
                      0
                      Если вы имеете ввиду ботов, то не проблема сделать бота и принимать голосовое сообщение с адресами так же как из телефонного звонка. Но тут мы уже будем конкурировать с приложениями на телефонах. И в маленьких городах это мало востребовано пока.
              0
              Если не секрет, чей синтез использовали? Был ли он арендован или куплен?
                0
                Синтез от ЦРТ, работаем через http api. Перед запуском многие пробовали, но по совокупности подошел ЦРТ.
                  0
                  Почему был выбран именно ЦРТ? Из чего выбирали, почему скажем не Yandex SpeechKit?
                    0
                    С яндексом все сложно, когда мы начинали у них качество синтеза было хуже. У них сложная схема подключения к API (договоры, бумажная волокита, бюрократия). У яндекса очень плохая поддержка(ответы от сапорта можно ждать месяцами). И голоса нам не понравились.
                      0
                      Когда пробовали API от ЦРТ, было оооочень дорого
                        0
                        Нас вполне устраивает )
                0
                очень мало технических подробностей (
                не хабр а vc какой-то
                  0
                  Да, здесь практически нет технических подробностей, так как проект очень большой, и описать его даже просто с технической точки зрения в одной статье не представляется возможным. Есть статья про устройство ядра системы habrahabr.ru/post/282253.
                  Если смотреть на архитектуру в целом то это SOA очень близкое к тому что рассказывает Яндекс об Алисе www.youtube.com/watch?v=_law_tey0OQ но естественно попроще)
                    0
                    Хочется больше деталей о распознавании и синтезе
                      0
                      Ну а какие тут детали, разпознает за нас гугл, синтез делает ЦРТ, вообщем и все. Мы просто пользуемся существующим API.

                Only users with full accounts can post comments. Log in, please.