Дмитрий Фёдоровинтернет-маркетолог · Ярославль Обсудить проект
Кейс Нейросети Whisper Битрикс24

Нейросеть слушает звонки менеджеров

Компания по окнам и балконам, два офиса, реклама приводит больше 160 обращений в месяц. Записи разговоров лежали в CRM, и слушать их было некому. Мы собрали конвейер: каждые 15 минут новые записи скачиваются, расшифровываются нейросетью на своём сервере и попадают на дашборд руководителя карточками. За шесть недель через него прошло 90 звонков и 204 минуты разговоров. И отдельно измерили, где автоматике можно доверять, а где нет.

Входящий звонок · 9 мин 35 с · расшифровка
  1. …как бы за выезд, за занер, вы заплачили.
  2. Девушка, но это не та цена, которую вы мне озвучили.
  3. Как бы 500 рублей он взял себе за занер
  4. Он берет 500 рублей за выезд, за занерд.
Модель слышит «занер» вместо «замер». Смысл разговора при этом понятен: спор о цене замера.
Ниша
Окна и балконы, два офиса
Стек
faster-whisper, Python, Битрикс24
Объём
90 звонков, 204 минуты
Период
6 августа по 14 сентября 2026
204 мин
разговоров расшифровано на своём сервере, без облачных сервисов распознавания
15 мин
цикл конвейера: скачать, расшифровать, выложить на дашборд
88 %
точность автоматической разметки обрывов и недозвонов
26 из 85
разговоров закончились без контакта клиента

Данные конвейера на 14 сентября 2026 года: 90 записей за 6 августа по 14 сентября, 85 из них разобраны. Точность правил измерена на тех же 85 звонках. Название компании, имена клиентов и сотрудников в кейсе не приводятся.

Точка старта

Записи есть, слушать некому

Было

Разговоры оставались внутри телефонии

  • Телефония пишет каждый разговор, файлы привязаны к звонкам в Битрикс24, но их никто не открывает
  • О качестве разговоров руководитель узнаёт со слов менеджеров
  • В отчёте CRM автоответчик оператора засчитывается как состоявшийся звонок: длительность больше нуля, код успешный
  • Реклама приносит обращения, а сколько из них теряется в самом разговоре, не видно
Стало

Каждый звонок в тексте через 15 минут

  • Новые записи сами уходят в расшифровку с 9 до 20, ночной прогон добирает хвосты
  • У каждой фразы таймкод: спорную цитату находим в записи за секунды
  • Обрывы и недозвоны размечаются автоматически
  • На дашборде карточка звонка: тема, исход, балл, что упущено, ссылка на CRM

Как это работает

Конвейер из четырёх шагов

Всё крутится на одном сервере по расписанию. Каждый шаг пропускает то, что уже сделано, поэтому обычный прогон занимает одну-две минуты.

ШАГ 1

Забрать записи

Журнал звонков берём вебхуком CRM, сами mp3 через OAuth-приложение в портале. Токен продлевается сам.

ШАГ 2

Расшифровать

faster-whisper small, int8, четыре потока процессора. Тишину отрезает VAD, фразы сохраняются с таймкодами в JSON.

ШАГ 3

Предразбор

Скрипт размечает обрывы и недозвоны, остальные звонки ставит в очередь с подсказками: звучала ли цена, упоминался ли замер.

ШАГ 4

Выложить

Сборщик сшивает расшифровку, разбор и ссылку на CRM. В данных дашборда подменяется только блок звонков.

Технические решения

Шесть решений, без которых конвейер не поехал бы

Самое долгое в таком проекте не нейросеть, а всё вокруг неё: доступы, сеть, расписание и защита от тихих сбоев.

01

Записи через OAuth, а не вебхук

Вебхук отдаёт журнал, но не файлы

Ссылка на запись в Битрикс24 ведёт на служебный скрипт, которому нужна сессия пользователя. С кодом вебхука он отдаёт страницу входа. Подняли локальное приложение в портале: с OAuth-токеном та же ссылка отдаёт mp3.

02

Мёртвые адреса портала

Скрипт молча висел по пять минут

У портала 13 IP-адресов, часть не отвечает. Стандартный HTTP-клиент Python ждал первый мёртвый адрес весь таймаут. Запросы перевели на curl с таймаутом соединения 5 секунд, он сразу уходит к следующему адресу. 53 записи скачались за пару минут.

03

Проверка, что пришёл звук

Протухший токен не выглядит ошибкой

Если токен истёк, сервер отвечает кодом 200 и HTML страницы входа. Качалка проверяет Content-Type и не сохраняет такой ответ под видом записи.

04

Whisper на процессоре

Без видеокарты и облака

Модель small в int8 на четырёх ядрах: первые 111 минут аудио расшифрованы за 45 минут. Medium на этот сервер не поместилась. Качество ниже, чем у больших моделей, но для разбора сути хватает.

05

Расписание без наложений

flock и короткое окно

Прогон каждые 15 минут смотрит только последние два дня. Десятиминутный разговор расшифровывается около 6,5 минуты: если прогон не успел, flock пропускает следующий запуск, а ночной прогон добирает всё, что отстало.

06

Атомарная публикация

Дашборд не видит полуготовый файл

В общем файле данных подменяется только блок звонков: запись во временный файл и os.replace. Если блок не изменился, хостинг не трогаем. Часовой сборщик дашборда работает параллельно и не конфликтует.

Качество

Как слышит нейросеть

Модель small ошибается в словах, особенно в профессиональных. Для разбора это не страшно, если понимать, что расшифровка передаёт, а что нет.

Как модель записала ключевые слова

  • замерзанер, замир, занерд
  • замерщикзамельщик
  • прикинемпопрекиним
  • название компанииискажается почти в каждом приветствии

Поэтому поиск по ключевым словам в расшифровке ненадёжен: «замер» в тексте встречается реже, чем в разговоре.

Настройки распознавания

model = WhisperModel("small", device="cpu",
                     compute_type="int8", cpu_threads=4)
segments, info = model.transcribe(
    path, language="ru",
    vad_filter=True,        # отрезать тишину
    beam_size=1,            # быстрее на CPU
    condition_on_previous_text=False)

Суть разговора передаётся: что спросил клиент, что ответили, чем закончилось. Цитаты для планёрки сверяем с записью по таймкоду.

Замер

Где автоматике можно доверять

Ручной разбор хотелось закрыть правилами по тексту расшифровки. Прежде чем пускать их на дашборд, проверили на всех 85 звонках, которые уже были разобраны вручную.

Правила уверенно ловят только обрывы. Менеджеры говорят одно и то же десятком способов, а расшифровка ещё и коверкает ключевые слова. Ужесточение правил сделало хуже: требование «замер, действие и адрес» уронило точность исхода с 53 до 42 %.
Что чаще всего упускают в разговоре. Главная дыра: подробная консультация заканчивается фразой «обращайтесь», без имени, телефона и следующего шага.

Честно

Что не сработало

Самое полезное в проекте оказалось отрицательным результатом: мы знаем, какой автоматике нельзя доверять деньги.

Провал

Автооценка звонков правилами

  • Исход разговора угадывался в 44–53 % случаев, тема точно в 33 %
  • Признак «не спросили имя» дал 57 ложных срабатываний
  • Такие цифры нельзя пускать на дашборд: от конверсии в замер считается, сколько рекламных денег ушло впустую
Что оставили

Автоматика только там, где она проверена

  • Обрывы и недозвоны размечаются сами: точность 88 %, полнота 70 %
  • Остальные звонки встают в очередь с подсказками, без балла и исхода
  • Разбор по существу делаем вручную с ИИ-ассистентом, черновые карточки на дашборде помечены отдельно

Результат

Что увидел руководитель

Разговоры
85РАЗОБРАНО
10ЗАПИСЕЙ НА ЗАМЕР

Средний балл разговора 3 из 5. Лучшие звонки ушли на планёрку как образец: имя, адрес, кто перезвонит и с какого номера.

Упущения
26БЕЗ КОНТАКТА
19БЕЗ СРОКА ОТВЕТА

Ещё 3 раза цену назвали без установки и выезда. В одном случае итог оказался почти вдвое выше названного, и разговор перешёл в спор на девять минут.

Дозвон
77ПРИНЯТО
49ПРОПУЩЕНО

126 звонков за 30 дней. Часть недозвонов в отчёте CRM выглядела успешными: автоответчик оператора засчитывается как разговор.

Сколько рекламы уходит в пустые звонки

15 августа по 14 сентября 2026 года. Расход на рекламу делим на все обращения месяца и получаем цену одного обращения: 525 ₽.

  1. 162
    обращения,
    звонки и формы
  2. 126
    звонков
  3. 49
    не приняли
  4. 28
    разговоров
    без результата

Около 40 400 ₽ рекламного бюджета за месяц ушли на звонки, которые не приняли или которые ничем не закончились. Это факт без допущений. Недополученную выручку дашборд считает отдельно, через ползунки среднего чека и конверсии: сумм сделок в CRM нет, и точную цифру взять неоткуда.

Вопросы

Что спрашивают про расшифровку звонков

Почему не облачный сервис распознавания?

В записях имена, адреса и телефоны клиентов. Расшифровка на своём сервере снимает вопрос, куда уходит аудио.

Второй плюс: нет оплаты за минуту. Конвейер крутится на сервере, где уже работают другие задачи.

Хватит ли качества модели small?

Для разбора сути хватает: тема, вопросы клиента, чем закончился разговор. Для дословных цитат нет: ключевые слова искажаются, «замер» превращается в «занер». Поэтому цитаты сверяем с записью по таймкоду.

Модель крупнее на этот сервер не поместилась. На машине с видеокартой можно взять medium или large.

Можно ли поручить оценку звонков нейросети целиком?

Правила мы проверили, и точность исхода вышла около половины. Языковая модель может справиться лучше, но проверять её надо так же: на звонках, размеченных вручную. И запускать на своём сервере, по той же причине, что и расшифровку.

Пока такой проверки нет, балл и исход ставит человек.

Подойдёт ли это для другой CRM или телефонии?

Расшифровка и дашборд от CRM не зависят, меняется только первый шаг: откуда брать записи. В Битрикс24 это OAuth-приложение, у телефонии обычно есть свой API со ссылками на записи.

Учтите срок хранения: на некоторых тарифах телефонии записи живут 14 дней, и забирать их нужно регулярно, по расписанию.

Что нужно от компании для запуска?

Доступ администратора к CRM или ключ API телефонии с правом прослушивания записей и сервер, где будет работать расшифровка.

Дальше договариваемся, какие признаки разговора важны именно вам: запись на замер, названная цена, взятый контакт.

Контакты

Разберём звонки вашего отдела продаж?

Расскажите, какая у вас CRM и телефония. Покажу, как достать записи и что из разговоров можно посчитать.

Тел+7 920 652-81-81
TG@traffikstory
VKvk.com/dfedorov86
Почтаit-aston@yandex.ru
ГеоЯрославль, работаю по всей России
Связанная услуга: система продаж · Похожий проект: чат-бот в MAX · Все работы: кейсы с проверяемыми результатами · Материалы для соцсетей: тексты, макеты и клип