Голосовые сообщения в WhatsApp-боте: как ИИ распознаёт и отвечает голосом
Часть клиентов в WhatsApp принципиально не печатает — им проще наговорить голосовое, особенно за рулём, между делами или просто по привычке, характерной для мессенджеров в Казахстане и СНГ. Для бизнеса это развилка: либо такие сообщения выпадают из воронки, потому что их некому расшифровать вовремя, либо нужен человек, который вручную слушает каждое голосовое и печатает ответ. Ни то, ни другое не масштабируется. Разберём, как эта задача решена в AI-боте Cheat Code — без упрощений, на уровне реальной архитектуры.
Зачем боту вообще уметь работать с голосом
Первое, что нужно понять: голосовые сообщения — это не редкое исключение, а стабильная часть трафика в WhatsApp для многих ниш, особенно там, где аудитория старше 35 или пишет с телефона на ходу. Бот, который умеет отвечать только на текст, для этой части клиентов фактически не работает — сообщение либо зависает без ответа, либо требует ручного вмешательства менеджера, что убивает саму идею автоматизации первой линии диалога.
Вторая причина практичнее: голосовое сообщение почти всегда длиннее и эмоциональнее текстового — люди наговаривают контекст, который поленились бы печатать («у меня магазин мебели, сейчас веду рекламу в Instagram, хочу проверить, реально ли бот справится с моими клиентами»). Это более богатый сигнал для квалификации диалога, чем короткое «расскажите про бота» текстом — если, конечно, бот способен этот сигнал считать.
Как голосовое сообщение попадает к боту
Когда клиент отправляет голосовое в WhatsApp, само аудио не приходит в вебхук напрямую — WhatsApp Business Platform присылает только уведомление с типом сообщения (audio или voice) и идентификатором медиафайла. Дальше бот сам обращается к Graph API за ссылкой на файл и скачивает бинарные данные вместе с MIME-типом — чаще всего это audio/ogg (стандартный формат голосовых WhatsApp), иногда audio/mpeg или audio/mp4, если сообщение переслано из другого источника.
Это отдельный сетевой запрос до того, как можно вообще начать разбираться, что клиент сказал — то есть распознавание речи не единственная задержка в цепочке, а вторая по счёту.
Распознавание речи: как голос превращается в текст
Скачанный файл передаётся в модель распознавания речи (Whisper от OpenAI), которая расшифровывает аудио в текст. Важная деталь: модель определяет язык самостоятельно по звучанию речи — отдельно настраивать язык клиента не нужно, и переключение между русским, казахским и английским внутри одного диалога не ломает бота, если, например, клиент один раз написал текстом по-русски, а следом надиктовал вопрос по-казахски.
Расшифрованный текст не просто заменяет собой «как если бы клиент написал», а помечается как результат распознавания голосового — это позволяет истории диалога оставаться последовательной и при необходимости отличать, где клиент печатал, а где надиктовывал, если позже диалог смотрит менеджер в дашборде.
Что если расшифровать не получилось
Распознавание речи не идеально — плохая связь, сильный фоновый шум, слишком тихий голос или сильно нестандартное произношение иногда не дают Whisper корректно расшифровать сообщение. В этом случае бот не пытается угадать и не генерирует ответ на основе обрывков — он прямо сообщает клиенту, что не смог разобрать аудио, и просит написать вопрос текстом. Это осознанное решение: ложный ответ на неправильно понятое голосовое сообщение почти всегда хуже, чем короткая просьба продублировать вопрос — особенно в продающем диалоге, где неверно понятая реплика может увести разговор не в ту сторону.
Синтез речи: как бот отвечает голосом
Если входящее сообщение было голосовым, бот отвечает тоже голосом — то есть формат ответа зеркалит формат вопроса, а не выбирается заранее для всех клиентов одинаково. Текст ответа, сгенерированный ИИ, проходит через синтез речи (OpenAI TTS) и превращается в аудиофайл, который отправляется клиенту как обычное голосовое сообщение WhatsApp, ничем не отличимое по интерфейсу от голосового, надиктованного человеком.
Здесь есть жёсткое ограничение по формату: голосовой ответ должен укладываться в одно-два предложения плюс уточняющий вопрос — не больше нескольких сотен символов. Причина простая — то, что нормально читается глазами в виде развёрнутого текста с разбивкой на абзацы, крайне тяжело воспринимается на слух в виде безостановочного потока речи. Длинный голосовой ответ с перечислением пяти пунктов подряд клиент, скорее всего, либо не дослушает, либо переслушает несколько раз, что раздражает больше, чем помогает. Поэтому на голосовые вопросы бот отвечает короче и по существу, а не пытается втиснуть в аудио тот же объём информации, что и в текстовый ответ.
Что происходит, если синтез речи не сработал
Генерация голоса и загрузка аудиофайла в WhatsApp — это ещё два сетевых запроса поверх генерации самого ответа, и любой из них теоретически может не пройти: таймаут, временная недоступность сервиса синтеза речи, ошибка загрузки медиафайла на сторону WhatsApp. Бот не оставляет клиента без ответа в этом случае — при сбое на любом из этапов синтеза или отправки голоса он автоматически отправляет тот же ответ обычным текстом. Клиент в худшем случае получает текст вместо голоса, а не тишину — с точки зрения диалога это деградация, а не отказ.
Что это даёт бизнесу на практике
С точки зрения владельца бизнеса ценность не в самой технологии распознавания речи — она давно стала commodity, — а в том, что использование голоса убирает ещё одну причину, по которой часть входящих обращений выпадает из воронки без внимания. Клиент, который предпочитает наговорить сообщение, получает такой же быстрый и содержательный ответ, как и тот, кто печатает — вместо того, чтобы либо ждать, пока голосовое кто-то прослушает вручную, либо получить шаблонную заглушку «извините, мы не понимаем голосовые сообщения».
Для ниш, где голосовые — заметная часть входящего трафика (услуги, недвижимость, мебель на заказ, локальный сервис), это не косметическая деталь, а прямое влияние на то, сколько реальных обращений вообще доходит до диалога с человеком.
Частые вопросы
На каких языках бот понимает голосовые сообщения?
Язык определяется автоматически по речи клиента — русский, казахский и английский обрабатываются без дополнительной настройки, переключать язык вручную не нужно.
Что будет, если голосовое плохо слышно и распознать его не получилось?
Бот не притворяется, что понял, и не отвечает наугад — он честно пишет, что не смог расшифровать аудио, и просит продублировать вопрос текстом.
Бот всегда отвечает голосом?
Нет. Голосом бот отвечает только на голосовое сообщение — если клиент написал текстом, ответ тоже придёт текстом. Формат ответа всегда зеркалит формат вопроса.
Сколько времени занимает обработка одного голосового сообщения?
Расшифровка речи в текст занимает порядка 10–15 секунд в зависимости от длины сообщения — это время добавляется к обычному времени генерации ответа.