Голосовой робот обзвона базы - сценарий с ИИ, распознавание речи и перевод на менеджера
Задача
Отдел продаж оптовой компании прозванивал холодную и «спящую» базу руками.
Три менеджера садились на телефон и по очереди набирали номера из выгрузки.
Из ста номеров живым разговором заканчивалось около двадцати, остальное - автоответчики, сброс и «не звоните».
База в четыре тысячи номеров прозванивалась больше месяца, часть контактов за это время успевала протухнуть.
Что сделал
Python, FastAPI, Asterisk через ARI, PostgreSQL, Redis под очередь звонков, отчёты в Telegram на aiogram 3, всё в Docker на VPS.
Звонки уходят через SIP-транк оператора, синтез речи и распознавание - облачные, голос и ключи меняются в конфиге.
Первая фраза всегда одна: робот называет компанию, честно говорит, что он робот, и что разговор записывается.
Очередь в Redis, лимит одновременных линий выставляется в админке, по умолчанию шесть - больше транк не тянет.
Стоп-лист общий на все кампании, номер попадает туда и вручную, и сам - после «не звоните больше» на любом шаге.
Заинтересованных робот переводит на менеджера прямо в разговоре, то-есть человек не ждёт обратного звонка.
Так-же в админке карточка кампании - сколько набрано, сколько дозвонов, разбивка по меткам и выгрузка в Excel.
Результат
Ту же базу в четыре тысячи номеров робот проходит примерно за неделю, шесть линий работают с утра до вечера без перекуров.
После сдачи добавил повторный дозвон по недозвонам: три попытки в разные часы, потом номер уходит в «недоступен».
Запись демо-разговора и скриншоты админки приложены к работе.