Работа 01 · Медицинский центр

Речевая аналитика звонков

Клиника теряла пациентов, и никто не знал почему. ИИ разобрал 25 000 разговоров регистратуры и показал, где люди уходят.

25 000+звонков разобрано за полгода
Работает
  • Python
  • GigaAM
  • Gemma 4
  • Qwen
  • Claude Opus
  • Firebird
  • FFmpeg
Зачем

Пациентов в клинике становилось меньше. Записаться можно только по телефону, поэтому ответ был где-то в звонках регистратуры: о чём просят люди, в чём им отказывают, как с ними говорят. Прослушать тысячи разговоров вручную было некому.

Руководство поставило задачу: найти причину.

Что я сделал

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

Шаг 01

Сбор

Архив записей выгружается из виртуальной АТС в локальное хранилище, каждый звонок встаёт в очередь.

Шаг 02

Подготовка звука

FFmpeg приводит записи к одному формату. В стереозаписях оператор и пациент звучат на разных каналах: я разделяю их и свожу слова на общую временную шкалу, чтобы восстановить ход разговора «вопрос — ответ».

Шаг 03

Распознавание

GigaAM — модель, обученная на русской речи, — работает параллельно на трёх видеокартах.

Шаг 04

Исправление текста

Плохая связь и нечёткая речь дают ошибки. Локальная модель Gemma 4 их исправляет, а в монозаписях ещё и разделяет реплики оператора и пациента.

Шаг 05

Анализ

Из текста удаляются персональные данные. Затем локальная модель Qwen раскладывает звонок по 36 параметрам: с чем обратился человек, что ему предложили, чем закончился разговор, какой был тон и что важно именно для этой клиники.

Шаг 06

Отчёты

Конструктор, в котором сотрудник сам собирает цепочку: выборка из базы → обработка моделью → новая выборка → итоговая сводка. Сводку по обезличенным данным пишет Claude Opus. Для нового отчёта разработчик не нужен.

Непростое

01

Объём

4–6 тысяч звонков в месяц — это 90–130 часов разговоров. Конвейер работает пачками, а каждый звонок проходит этапы со своим статусом в базе. Поэтому после остановки обработка продолжается с того места, где прервалась.

02

Сомнительное — человеку

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

03

Данные пациентов

В облачную модель уходят только обезличенные данные.

Стек
  • Pythonвесь конвейер, очередь и отчёты.
  • GigaAMраспознавание русской речи на своих видеокартах.
  • Gemma 4, Qwenлокальные языковые модели: исправление текста и разбор звонка по JSON-схеме.
  • Claude Opus через OpenRouterитоговые сводки по обезличенным данным.
  • Firebirdочередь, статусы, тексты и результаты анализа. Сами записи в базе не хранятся.
Итог
25 000+звонков разобрано за полгода

За полгода разобрано больше 25 000 звонков. Директор впервые увидел, о чём на самом деле просят пациенты, где им отказывают и как регистратура ведёт разговор, и получил развёрнутый отчёт по потерянным клиентам.

Только чтобы прослушать эти записи, человеку понадобилось бы около 70 рабочих дней — без пауз и без заметок.

Видео
Речевая аналитика звонков Как ИИ распознал и разобрал больше 25 000 звонков клиники и показал, о чём на самом деле просят пациенты.