Еще пару лет назад казалось, что мир должны захватить телефонные роботы-обзвонщики. Потому что на дворе цифровой век, умные люди обещают сингулярность через двадцать лет — а компании все еще держат гигантские колл-центры с кучей народа. Те делают монотонную однотипную работу, и аналитики в один голос твердят — вот первые кандидаты на автоматизацию и смерть профессии.
Процесс вроде начался — распознавание голоса вышло на новый уровень. Гугл на своей презентации показывает, как робот звонит в ресторан, бронирует столик, а человек на другом конце не понимает, что говорил с роботом. Корпорации одна за другой выпускают голосовых помощников — Яндекс Алису, Тиньков — Олега. Роботы поддерживают беседу и шутят шутки.
Мы тоже подумали, что посадить за телефон робота будет отличной идеей. Но поняли — на самом деле все не так уж круто.
Казалось, настроить робота — плевое дело
У нас в Skyeng есть бесплатные вводные занятия. Люди на них записываются, но мы знаем, что часть из них передумает. Поэтому, например, на 10 преподавателей в слоте записываем 13 учеников. Преподаватель ищет себе ученика ближе к уроку и обзванивает записавшихся — получить у них подтверждение. Каждый раз нужно обзвонить несколько контактов, подсказанных системой.
Это съедало время, которое преподаватель мог потратить на урок или на отдых. И мы решили — пусть звонит робот!
Глобально роботы делятся на два типа: с машинным обучением и без него. Первый тип поглощает данные, учится на них и становится всё лучше и лучше. Второй тип проще — он работает на готовых пакетах распознавания слов. Система слышит голос, распознает, переводит аудио в текст, и слова сверяются с прописанным текстовым сценарием. Грубо говоря, если в ответе ученика есть слово «да» — произнеси один текст, если «нет» — другой.
Наш робот был как раз таким — простой, без ИИ, со встроенным пакетом для распознавания от стороннего подрядчика и синтезатором речи.
Первого робота звали Антон
На мой вкус — у него был самый противный голос из стандартных: мужской-скрипучий-роботизированный.
Этим голосом он напоминал день и время, когда состоится урок, спрашивал, готов ли студент к занятию, и принимал два ответа: «да» или «нет», а потом направлял их в соответствующие ветки разговора.
Мы запустили тест на большой трафик, и это все только испортило. Пропущенных вводных занятий было много. Тогда мы стали слушать записи разговоров, чтобы понять, в чем проблема. Она оказалась на поверхности — люди бросали трубку только услышав первые слова.
В скрипучем голосе робота Антона, естественно, было мало приятного (я же говорила). Мы подумали: сейчас сделаем голос красивее, люди будут слушать робота до конца и конверсия заживет.
Неприятного Антона заменила Влада.
Ей дали голос реального человека — сотрудницы Skyeng, девушки-оператора из отдела продаж. Звучало потрясающе, очень красиво. Всем нравилось.
Ликовали мы недолго. Люди не отваливались от звонка сразу, но переводов на оператора стало кратно больше. Потому что теперь, слыша голос живого человека, не все понимали, что это робот. И отвечали витиеватыми фразами — как в разговоре с настоящим оператором. А не короткими ответами-командами, которые хотелось бы услышать роботу. Слишком подробно для нашей Влады. Процент успешного распознавания просел, это сказалось на конверсии.
Еще один минус живого голоса — Влада могла произносить только заранее записанные сэмплы. Обычный робот синтезировал любой текст, это давало нам гибкость и возможность быстро перенастраивать сценарии. А Влада не могла даже проговорить, когда состоится занятие. Мы не записали сэмплы всех возможных комбинаций дат и времени — их очень много. Она просто говорила — «ваш урок скоро состоится», что тоже вносило путаницу.
Оказалось, робот не должен быть слишком человечным
Тогда мы взяли третий вариант — робот Захар, не такой противный как Антон, но и не такой живой как Влада. Захар — просто норм. Не так раздражает, но и не вводит в заблуждение.
Плюс, после опыта с Владой мы расширили Захару словарь. К примеру, мы научили его распознавать популярные ответы — «КОНЕЧНО» и «НЕ». Но это привело к новым проблемам. Например, слово «КОНЕЧНО» робот отправлял в ветку «НЕТ». Потому что часто при произношении в слове «коНЕчно» четко слышился слог «НЕ». С распознаванием ничего не сделаешь. Словарь не помог.
Хуже того — когда робот делал ложно-отрицательный вывод, он отвечал: «Спасибо, менеджер с вами свяжется». Человек думал, что вводное занятие подтверждено, а потом ему звонил менеджер и предлагал назначить вводный урок на другое время. Возникала неловкая путаница.
Мы заморочились: стали менять тексты, которые произносил робот. Увеличили количество развилок в разговоре. Добавили тоновый набор вместо распознавания слов. Подумали, что так ответы станут точнее, и это поднимет конверсию в подтверждение. Доля ложных отказов и правда снизилась. Зато ухудшилось все остальное. Оказалось, испортить метрики может даже время года.
Мы тестировали робота зимой. Представьте — человек идет по улице в перчатках и слышит телефонный звонок. Отвечает через наушники и доходит до момента с тоновым набором. Снимает перчатки, разблокирует телефон, идет искать нужную цифру для ответа. Ошибается и нажимает не туда, либо нажатие не срабатывает, и он не успевает ответить.
Поэтому мы вернули распознавание голоса, но и тоновый набор убирать не стали. Если робот не распознал голос, мы ставили блок с таким текстом: «Я вас не понял, нажмите единичку, если вы придете…»
Число ошибок и правда упало до прежнего уровня, зато нам стали чаще отвечать «нет». А «да» — реже. Что тоже было плохо.
Главное, что мы поняли: назвался роботом — упрощай
Самые лучшие результаты получились, когда мы стали подсказывать людям, как отвечать. «Если вы придете на вводный урок, скажите "да"». Америку мы не открыли, так делают многие роботы. Человек слышал четкий инструктаж, как ответить, но это тоже не панацея.
Мы выстроили такую цепочку. Сначала говорит Захар и произносит инструкции, как ответить. Студент отвечает, а если робот не понимает — подключается блок с тоновым набором ответов, максимально короткими вопросами и инструкциями. Затем вторая тоновая попытка — для подтверждения. А уж если и тоновые не вывозят — переводим на оператора.
Так мы, наконец, снизили нагрузку на операторов и получили сильное снижение числа ошибок — но росли как ответы «да», так и ответы «нет». Мы оставили этот вариант, так как получили рост ключевой сквозной метрики. На этом история с тестом робота завершилась. Она была долгой и мучительной для всех участников процесса.
А может ну их, эти звонки?
Мы часто думали об этом в ходе эксперимента. В звонках нет привычных метрик: кликов на кнопки, переходов по страницам, проведенного на них времени. В звонки невозможно вставить виджет с просьбой оценить удобство интерфейса — есть только голос человека и тикающие секунды разговора.
Когда запускаешь гипотезу, собираешь данные и выясняешь, что работает плохо — это неприятно. Хочется просто взять и больше никогда в жизни не заниматься никакими звонками. Просто выкинуть их как явление и перевести все на интерфейсы.
Но так не работает. День, когда условный Apple выпустит айфон без функции звонков, вряд ли наступит скоро, если вообще наступит. Как бы ни поумнели наши девайсы, сколько бы ядер ни было в их процессорах, и сколько бы камер ни было на задней панели — это все еще телефоны, по которым люди друг другу звонят.
Что там будет дальше — вообще неизвестно. Сегодня интерфейсы кажутся проще и понятнее, а завтра дети, выросшие на разговорах с колонкой, опять вернутся к голосу. А потом к чему-то еще.
Но пока звонки — все еще часть мира, их надо автоматизировать так, чтобы всем было удобно и хорошо. Через тернии и скрипучие голоса.
Upd. Выношу из комментариев контекст всего эксперимента сжато и в одном месте, спасибо @Iv38 за формулировку
... речь идёт о бесплатном вводном занятии, надо проверить, что записавшийся действительно готов это занятие посетить, если нет, то быстро перейти к следующему желающему, а этого перенести, чтобы не потерять всё время занятия для преподавателя. Поэтому звонок прямо перед занятием и поэтому важно получить ответ быстро и чётко.