Ещё лет пять назад автоматический звонок узнавался с первого слога — по железному «здрав-ствуй-те». Сейчас робот из поликлиники, напоминающий о приёме, опознаётся далеко не сразу: голос ровный, интонации живые, паузы стоят в нужных местах.
Разберёмся, что изменилось внутри и из чего вообще собирается такой звонок.
Четыре слоя одного звонка
Если разложить, звонок собирается из четырёх примерно независимых кусков:
- телефония — то, что физически дозванивается до номера и держит линию;
- голосовой слой — синтез речи или заранее записанный аудиофайл;
- сценарный движок — логика вида «сказали да → идём сюда, молчат → идём туда»;
- аналитика — кто снял трубку, дослушал ли, что нажал, когда сбросил.
Каждый из этих кусков за последние годы подтянулся по отдельности, и именно поэтому итоговое ощущение изменилось так резко.
Голос стал естественным не потому, что кто-то изобрёл волшебный алгоритм, а потому что синтез, детекция и телефония доросли примерно одновременно.
Откуда берётся голос
Тут три пути. Первый — обычная запись: текст начитывают, файл в формате WAV или MP3 заливается в систему и проигрывается всем подряд.
Второй — заказать профессиональную озвучку, если хочется, чтобы бренд звучал прилично. Оба варианта дают идеально живой звук, но поменять сообщение — значит возвращаться к записи заново.
И третий путь — синтез речи, он же TTS. Текст отдаётся движку, тот сам генерирует звук. Раньше это и был источник того самого механического тембра, сейчас нейросетевые модели дают результат, который на коротких фразах от человеческого отличить тяжело.
Платформы, через которые делается рассылка голосовых сообщений, обычно поддерживают все три варианта разом: залил файл — крутится файл, вбил текст — озвучивает движок. Тарифицируется синтез, кстати, не по минутам разговора, а по объёму текста, причём длинный запрос сервисы дробят на куски примерно по паре сотен знаков.
Самое интересное, что синтез выигрывает не качеством, а подстановкой. В записанный файл не вставишь имя, номер заказа и дату — а синтез собирает фразу на лету по шаблону вида «уважаемый [имя], вы записаны на [услугу] сегодня в 11:00». Поэтому робот и здоровается с абонентом по имени.

Как робот понимает, что попал на автоответчик
Это отдельная головная боль: сообщение, уехавшее в голосовую почту, система запишет как успешно доставленное, хотя его никто не услышит. Решается задача с двух сторон.
Первая — детекция до того, как человек взял трубку. Детектор внутри сервиса дозвона слушает звуковой поток на линии и по относительно простым алгоритмам сравнения решает, живой там абонент или автоинформатор. Смысл он не разбирает, зато работает быстро и не мешает вести много звонков параллельно — приличная доля автоответчиков отсекается именно здесь.
Вторая — со стороны оператора связи. У мобильных операторов есть возможность поймать сам момент, когда вызов переадресуется на голосовую почту, и завершить звонок, не тратя минуты. У крупных платформ поверх этого работают модели, обученные на десятках тысяч реальных звонков, и качество детекции заметно гуляет в зависимости от страны и оператора.
Дальше в дело вступает распознавание речи. Продвинутые сценарии слушают ответ и разбирают его: сказали «да» — идём по одной ветке, «перезвоните позже» — по другой. Более простые и надёжные обходятся тональным набором: нажмите один, нажмите два. Выглядит архаично, зато не ошибается.
На чем всё это до сих пор спотыкается
Слабых мест хватает. Синтез спотыкается на редких именах и нестандартных адресах: непривычная фамилия или название улицы в косвенном падеже легко превращаются в набор звуков.
Детектор автоответчика ошибается на людях, которые отвечают длинной фразой, и на операторах с нестандартной голосовой почтой. Распознавание речи ломается о фоновый шум: в машине или в метро система слышит кашу.
И главное ограничение вообще не техническое. Робот отлично справляется с короткими однозначными сообщениями — напомнить, подтвердить, оповестить.
Как только сценарий требует разговора с ветвлениями и уточнениями, человек на том конце раздражается и кладёт трубку. Так что если бот уложился в две фразы — это не лень разработчиков, а ровно тот сценарий, в котором технология работает как надо.