Анализ звонков

Анализ звонков (адрес /transcript) — раздел кабинета, где звонки превращаются в текст и прогоняются через нейросеть по вашим правилам. Из часового аудио-архива получается читаемый журнал с резюме, оценками и автоматическими тэгами.

Зачем нужен анализ звонков

  • Не слушать звонки руками. Текст и краткое резюме появляются автоматически — открыли карточку, прочитали за 30 секунд, ушли по делам.
  • Контроль качества без выборочной прослушки. Каждый разговор оценивается по вашему чек-листу: «представился? назвал акцию? попрощался?». Видны не отдельные образцы, а вся выборка целиком.
  • Автотегирование. Жалобы, просьбы перезвонить, заявки и спам — всё помечается тэгами без участия оператора. Подробнее в Тэги звонков.
  • Метрики работы операторов. Срабатывания правил агрегируются по сотрудникам — видно, кто чаще пропускает шаги скрипта, у кого больше негативных разговоров, у кого выше оценки.
  • Регулярные отчёты руководителю. GPT-сводки по группам звонков с расписанием и доставкой на email — не надо открывать кабинет каждое утро.

Структура раздела

В сайдбаре под «Анализом звонков» — 4 страницы:

  1. Анализ звонков (/transcript) — главная страница: список транскриптов, поиск, статистика расхода LLM. Описана ниже.
  2. Правила (/transcript/rules) — что именно проверять в каждом звонке.
  3. Аналитика (/transcript/analytics) — срабатывания правил по сотрудникам и датам.
  4. Отчёты (/transcript/reports) — LLM-сводки по группе звонков с расписанием.

Главная страница: что на ней

Счётчики транскриптов

Сверху — пять плашек с количеством транскриптов в каждом статусе:

  • Всего — общее число транскриптов за всё время.
  • Готовых — успешно распознанных, доступных для чтения и анализа.
  • В работе — отправлены в Yandex SpeechKit, ждём ответа.
  • В очереди — записи поставлены на распознавание, ещё не отправлены.
  • Ошибок — провалились (короткая запись, тишина, ошибка API).

Тариф и расход LLM (если включён анализ)

Если у тенанта активен модуль анализа разговоров — на странице две панели биллинга:

  • Тариф LLM-анализа: либо пакет минут с фиксированной ценой за месяц + ставка за минуты сверх пакета, либо чистая поминутная оплата.
  • Расход за текущий месяц: сколько минут аудио уже прогнано через LLM, во сколько ₽ это вылилось, прогресс-бар по пакету (зелёный → жёлтый при ≥80% → красный при ≥100%), остаток минут и сверх-пакета.

Расход считается по уникальным звонкам, к которым применилось хотя бы одно правило (то есть был LLM-вызов). Само распознавание (Speech-to-Text) считается отдельно — оно тарифицируется как минуты аудио.

Поиск транскриптов

Поле «Поиск» ищет одновременно по тексту разговора (ILIKE '%запрос%') и по uniqueid звонка. Фильтры:

  • Период «С / По» — даты в часовом поясе Europe/Moscow.
  • Быстрые пресеты: Сегодня · 7 дней · 30 дней · Этот месяц.
  • Статус: В очереди / В работе / Готов / Ошибка — соответствует статусу из верхних счётчиков.

Поиск работает только по уже распознанным разговорам. Если текста нет, для исторических звонков можно прогнать распознавание ретроспективно — для этого их нужно «пометить на распознавание» (через панель администратора платформы).

Список транскриптов

Под фильтром — таблица последних 100 транскриптов в обратном хронологическом порядке. Колонки: время звонка, статус, длительность аудио, текст/резюме (превью до 220 символов).

В превью приоритетно показывается результат первого правила (если оно применялось) — например, «Жалоба: Нет, клиент благодарил за помощь». Если правил нет — выводится начало самого транскрипта или текст ошибки распознавания.

Клик по строке открывает модалку с полным разговором по ролям и всеми сработавшими правилами:

  • Полный текст с разделением на «Оператор» и «Клиент» по ролям (если SpeechKit отдал диаризацию).
  • Список применённых правил с их вердиктами (Да/Нет, оценка, развёрнутый ответ).
  • Метаданные: дата, длительность, uniqueid, статус.

Как это работает технически

Раз в минуту на сервере крутится воркер транскрибации. Цикл такой:

  1. Submit: завершившиеся звонки попадают в очередь хранилище транскриптов со статусом pending. Воркер забирает следующую пачку, отправляет аудио в Yandex SpeechKit, переводит в sent.
  2. Collect: готовые результаты заходят с SpeechKit, текст сохраняется в базу, статус становится done. При ошибке — failed с описанием.
  3. Analyze: для каждого готового транскрипта прогоняются все активные правила тенанта. Ответ LLM пишется в результаты применения правил и (если у правила задан авто-тэг и ответ положительный) в журнал тегов звонков звонка.

То есть путь от завершения звонка до видимого транскрипта обычно занимает 1–3 минуты в зависимости от длины записи и нагрузки на SpeechKit.

Ограничения

  • Модуль работает, только если у тенанта включён feature_transcript; LLM-анализ — отдельный флаг feature_analysis. Без них раздел в меню не появится.
  • Транскрибация по умолчанию идёт через Yandex SpeechKit для русского языка. Поддержка других языков и движков — отдельная активация на уровне платформы.
  • Точность распознавания — около 90–95% слов на чистой записи. Падает при сильном фоновом шуме, плохой линии, нескольких говорящих одновременно.
  • Очень короткие звонки (< 5 секунд аудио) и записи с тишиной обычно уходят в failed.
  • Просмотр требует разрешения transcript.view.

Связанные разделы