Схема на салфетке и схема в бою
Когда бизнес впервые думает про робота, схема выглядит очевидно. Человек говорит, речь превращается в текст, текст отдаём нейросети, её ответ озвучиваем и отправляем в трубку. Три готовых сервиса из облака, день работы программиста. Именно такие роботы и получаются у большинства «за неделю»: они хорошо выглядят на презентации и разваливаются на десятом реальном звонке.
Как кажется
- Распознавание речи: звук в текст
- Нейросеть: текст в ответ
- Синтез: ответ в голос
- Телефония: подключить номер
Как на самом деле
- Линия, детектор речи, распознавание потоком
- Понимание намерения, сценарий с памятью
- Подготовка текста к произношению, синтез
- Дирижёр: перебивание, паузы, тишина, очередь звонков
- Данные и контроль качества
Разница не в количестве кубиков ради количества. Разница в том, что телефонный разговор идёт в реальном времени, и робот обязан решать, что делать, пока человек ещё говорит. Ни один из трёх облачных сервисов этого не умеет, они получают готовый кусок и возвращают результат. Всё, что между ними, приходится строить.
Что происходит за один ответ робота
Возьмём одну реплику клиента: «Да мы вроде оплатили уже, посмотрите». Вот путь, который она проходит, прежде чем робот скажет «Спасибо, проверю». Каждый прямоугольник ниже — отдельный слой со своими ошибками.
Одна секунда: куда уходит время до ответа
Самый недооценённый слой — время. Человек в трубке ждёт ответа примерно секунду. Дальше он говорит «алло?», «вы тут?» или вешает трубку. А робот за эту секунду должен успеть понять, что фраза закончилась, дораспознать последние слова, выбрать ответ, начать его озвучивать и прогнать звук через телефонную сеть туда и обратно. Вот примерный бюджет.
Отсюда первое неочевидное следствие. Робот, который на каждую реплику зовёт нейросеть, физически не укладывается в секунду. Он отвечает через две-три, человек успевает переспросить, робот получает две реплики сразу и путается. Поэтому в боевых роботах нейросеть отвечает не всегда, а типовые реплики обрабатываются быстрым сценарием. А паузу, которую нельзя убрать, приходится заполнять: коротким «сек», «угу», вдохом, чтобы человек понял, что его услышали.
Десять слоёв, из которых состоит робот
Теперь по порядку, от трубки до трубки. Для каждого слоя — что он делает и что происходит, если собрать «в лоб» из готовых кубиков.
| Слой | Что делает | Что ломается без него |
|---|---|---|
| 1. Линия | Принимает и совершает звонки, гонит звук в обе стороны. Телефонный звук узкий, 8 кГц, сжат кодеком из прошлого века: как из бочки. | Распознавание, обученное на чистой записи, теряет треть слов. Задержка сети складывается с задержкой робота. |
| 2. Детектор речи | Решает, говорит ли сейчас человек, закончил ли он фразу или просто задумался, и не кашель ли это. | Робот отвечает на середине фразы. Или ждёт, пока человек «договорит», хотя тот уже ждёт ответа. |
| 3. Распознавание | Превращает звук в текст потоком, по кусочкам, не дожидаясь конца фразы. | Если ждать всю фразу целиком, к бюджету секунды добавляется вся её длина. |
| 4. Понимание | Из текста делает смысл: «да мы вроде оплатили» — это исход «оплатили», а не набор слов. Различает «не понял» и «не тому звоните». | Робот ищет ключевые слова и цепляется за «пока» в «пока не оплатили» как за прощание. |
| 5. Сценарий и память | Ведёт разговор по схеме с развилками и помнит, что уже прозвучало. Если клиент сказал «оплатили», вопрос про оплату больше не задаётся. | Робот спрашивает одно и то же дважды. Или после «не тому звоните» бодро продолжает про счёт. |
| 6. Текст ответа | Выбирает, что сказать: готовую реплику из сценария или сгенерированную нейросетью там, где сценарий не предусмотрел. | Нейросеть на всё подряд: медленно, дорого и выдумывает суммы, сроки и скидки. |
| 7. Произношение | Готовит текст к озвучке: «27 000 ₽» превращает в «двадцать семь тысяч рублей», «до 05.09» в «до пятого сентября», ставит ударения в фамилиях и интонацию вопроса. | «Двадцать семь тысяч ноль ноль ноль», «до ноль пять ноль девять», фамилия с ударением не туда, вопрос звучит как утверждение. |
| 8. Голос | Синтезирует речь или достаёт заранее записанную фразу. Типовые реплики лежат готовыми, синтез нужен только для переменных мест. | Каждую фразу синтезировать заново: задержка плюс к каждой реплике, а голос «плавает» от фразы к фразе. |
| 9. Дирижёр | Держит всё вместе в реальном времени: кто сейчас говорит, замолчать ли при перебивании, сколько ждать в тишине, что делать с пятью звонками разом. | Робот говорит поверх клиента, замолкает от кашля, не замечает, что человек молчит уже десять секунд. |
| 10. Данные и контроль | Знает, кому звонит и зачем, кладёт итог в CRM, пишет запись и расшифровку, а после каждой правки проверяет, что старое не сломалось. | Робот обзванивает уже оплативших, результат теряется, а после «маленькой правки» ломается сценарий, который работал месяц. |
Три облачных кубика из схемы на салфетке — это слои 3, 6 и 8. Остальные семь приходится либо строить, либо покупать в составе платформы. И именно по ним роботы отличаются друг от друга: голос и распознавание давно хороши у всех.
Четыре вещи, которые удивляют всех
Телефонный звук — как из бочки
В браузере робот слышит вас в студийном качестве. В телефоне звук зажат в узкую полосу, которую придумали для аналоговых линий, и сжат кодеком, где голос кодируется одним байтом на отсчёт. Шипящие сливаются, «пять» и «пятьдесят» похожи, а шум улицы и радио в машине добавляются сверху. Распознавание, которое в тишине даёт 95% точности, на линии даёт 80%. Поэтому робот обязан переспрашивать умно: не «повторите», а «правильно понимаю, оплата будет в пятницу?».
Первые секунды: кто сказал «алло»
Человек берёт трубку и говорит «алло» раньше, чем робот успел подключиться. Если робот в этот момент уже начал приветствие, два голоса накладываются, и человек слышит обрывок «…или возникли сложности». Если робот ждёт «алло» как сигнала, а человек молчит, оба ждут друг друга. Решение — отдельная логика первых секунд: подождать, не перебивать, не пытаться распознать хвосты, а начать чисто. Это крошечный кусок кода, но без него каждый второй звонок начинается с наложения.
Перебивание: замолчать вовремя, но не от кашля
Живой собеседник замолкает, когда его перебили. Робот должен делать то же самое, но у него есть проблема, которой нет у человека: он слышит в линии собственный голос, отражённый от телефона клиента, а ещё кашель, «угу» и телевизор. Перебить робота должна речь, а не любой звук. Поэтому детектор речи работает с порогами: сколько миллисекунд звука считать перебиванием, сколько тишины — концом фразы, а что — шумом. Эти пороги подбираются на записях, и они разные для входящих и исходящих звонков.
Память разговора: не спрашивать дважды
Клиент сказал «оплатили» на десятой секунде. Через минуту, после вопроса про компанию, робот не имеет права снова спросить «а вы оплатили?». Звучит очевидно, но нейросеть сама по себе такой памяти не имеет: она видит текст разговора, но не «исход». В хорошем роботе исход фиксируется отдельным полем, и все ветки, которые ведут к уже закрытому вопросу, отсекаются. То же с «не тому звоните»: это не реплика, а команда извиниться и завершить.
Что кажется и что на самом деле
| Кажется | На самом деле |
|---|---|
| Возьму нейросеть, она сама поведёт разговор. | Нейросеть не знает, что счёт номер триста восемь на сорок тысяч, и что этому клиенту нельзя предлагать рассрочку. Всё это ей надо дать, ограничить и проверить. И она медленная для телефона. |
| Облачный голос звучит отлично, значит, робот будет звучать отлично. | Голос звучит отлично в наушниках. В линии его сожмут до 8 кГц. Плюс числа, даты и ударения голос сам не расставит. |
| Телефония — это купить номер и подключить. | Это протокол, кодек, задержка, переадресация, определение «кто кому звонит», очередь при нескольких звонках и запись разговора с согласием. |
| Если робот работает на демо, он работает. | Демо идёт в тишине с терпеливым человеком. Первая неделя на линии выявляет десяток ситуаций, которых на демо не было. |
| Поправили фразу — стало лучше. | Поправили фразу — сломали ветку, которая на неё опиралась. Без прогона всех типовых ситуаций после каждой правки робот деградирует незаметно. |
| Робот либо «умный», либо «глупый». | Боевой робот — гибрид: быстрый сценарий ведёт 90% разговора, нейросеть подключается на нестандартных репликах и только там, где ей можно доверять. |
Что происходит до первого звонка
Сборка робота под конкретную задачу — это не «настроить», а пройти этапы, каждый из которых виден в результате. Вот последовательность в общем виде, без секретов: она примерно одинакова у всех, кто делает роботов всерьёз.
- Бриф. Кому звоним, зачем, что считаем успехом, что робот знает о клиенте до звонка и что должен положить в CRM после.
- Схема разговора с развилками. Не текст, а карта: вход, исходы («оплатили», «не знаю», «неудобно», «не тому звоните»), что делать на «алло» и «не понял», где заканчивать. Без схемы робот теряется на первой же нестандартной реплике.
- Сценарий и словарь. Реплики робота, варианты ответов клиента для каждого узла, слова-маркеры и их исключения (то самое «пока»).
- Голос и произношение. Выбор голоса, запись типовых фраз, правила для чисел, дат, названий, ударений и вопросительной интонации.
- Стенд. Разговор в браузере, без телефонии: проверить логику, не тратя минуты.
- Прогон типовыми ситуациями. Десятки заранее написанных реплик клиента, включая тролля и «плохо слышно». Норматив прохождения задаётся до выхода на линию.
- Линия. Подключение к телефонии, настройка первых секунд, перебивания и тишины по реальным записям.
- Пилот и дообучение. Живые звонки, прослушка, разбор, правки и повторный прогон типовых ситуаций после каждой правки.
Этап 8 не заканчивается. Робот, который не дообучают по записям, через месяц отстаёт от жизни: клиенты начинают говорить по-другому, меняются суммы и сроки, появляется новая причина отказа.
Шесть вопросов, чтобы заглянуть под капот вендору
- Что робот сделает, если я перебью его на середине фразы? Правильный ответ — замолчит и ответит на то, что вы сказали. Неправильный — договорит до конца.
- Как он произнесёт «1 249,50 ₽ до 5 сентября»? Попросите озвучить прямо сейчас. Слой произношения либо есть, либо нет.
- Что будет, если я скажу «алло» в первую секунду? Хороший робот подождёт и начнёт чисто. Плохой заговорит поверх.
- Что будет, если позвонят пять человек одновременно? Ответ «очередь» или «пять параллельных сессий» — нормально. Замешательство — нет.
- Дайте послушать запись реального звонка с улицы или из машины. Не студийное демо. Шумная запись покажет слои 1–3 честнее любой презентации.
- Как вы проверяете, что после правки не сломалось старое? Если ответ «прослушиваем выборочно», значит, слоя 10 нет.
Что забрать из этой статьи
- Робот — это не три сервиса, а десять слоёв, и семь из них про телефон и время, а не про «интеллект».
- Секунда — бюджет на ответ. Всё, что дольше, человек воспринимает как поломку. Поэтому нейросеть в боевом роботе работает не везде.
- Голос и распознавание уже хороши у всех. Различают роботов дирижёр, память разговора, произношение и контроль качества.
- Собрать самому из облачных кубиков можно. Довести до состояния, когда это можно ставить на живую базу, — месяцы, и главная работа начинается после первого звонка.
Частые вопросы
Из чего состоит голосовой робот?
Из десяти слоёв: телефонная линия, детектор речи, распознавание, понимание намерения, сценарий с памятью разговора, выбор текста ответа (сценарий или нейросеть), подготовка текста к произношению, синтез голоса, «дирижёр» реального времени (перебивание, паузы, тишина, очередь звонков) и слой данных с контролем качества. Готовые облачные сервисы закрывают только распознавание, генерацию текста и синтез.
Можно ли собрать робота самому из нейросети и облачного голоса?
Демо в браузере — да, за день-два. Робота для живой телефонной базы — нет: понадобится детектор речи с порогами под линию, логика первых секунд и перебивания, память исходов разговора, правила произношения чисел и дат, склад готовых фраз, очередь звонков и регулярный прогон типовых ситуаций после каждой правки. Это месяцы работы и постоянное дообучение по записям.
Почему робот отвечает с задержкой?
Ответ складывается из детектора конца фразы (300–500 мс), дораспознавания, выбора ответа, первого звука синтеза и пути по телефонной сети. По сценарию получается 0,7–1,3 секунды, через нейросеть 1,3–3 секунды. Человек ждёт около секунды, поэтому в боевых роботах типовые реплики идут по быстрому сценарию, а неизбежные паузы заполняются короткими «сек», «угу» или вдохом.
Почему робот перебивает клиента или, наоборот, молчит?
Обе ошибки — из слоя детектора речи и «дирижёра». Робот слышит в линии собственный голос, кашель и шум и должен отличать их от речи клиента; пороги перебивания и конца фразы подбираются по реальным записям и отличаются для входящих и исходящих звонков. Отдельно настраиваются первые секунды звонка, когда человек говорит «алло» раньше, чем робот подключился.
Сколько времени занимает сборка робота под задачу?
Восемь этапов: бриф, схема разговора с развилками, сценарий и словарь, голос и произношение, стенд в браузере, прогон типовыми ситуациями до норматива, подключение линии и настройка по записям, пилот с дообучением. Первые семь укладываются в недели, восьмой не заканчивается: робот, который не дообучают по записям, через месяц отстаёт от того, как говорят клиенты.