Что такое диаризация спикеров и как она работает
Диаризация спикеров — это технология, которая отвечает на вопрос «кто говорил когда». Она разделяет аудиозапись на сегменты, принадлежащие разным говорящим, и помечает каждый сегмент соответствующей меткой. В этой статье мы разберём, как работает speaker diarization изнутри, какие алгоритмы используются, где это применяется и какие ограничения существуют.
Что такое диаризация спикеров
Представьте, что у вас есть часовая запись совещания с пятью участниками. Сервис распознавания речи превратит звук в текст, но вы получите сплошной поток слов без указания, кто что сказал. Диаризация спикеров решает именно эту проблему — она определяет, кто говорил в каждый момент времени.
Важно различать три смежные технологии:
- Распознавание речи (ASR) — преобразование звука в текст. Отвечает на вопрос «что сказано?»
- Диаризация спикеров — разделение аудио по говорящим. Отвечает на вопрос «кто говорил когда?»
- Идентификация голоса — определение конкретной личности по голосу. Отвечает на вопрос «это голос Ивана Петрова?»
Диаризация не знает имён — она просто присваивает метки: Спикер 1, Спикер 2, Спикер 3. Но в сочетании с профилями голосов (об этом ниже) метки можно заменить на реальные имена.
Практический пример: вы записали совещание, где обсуждался бюджет проекта. Без диаризации вы увидите просто текст. С диаризацией — структурированный диалог:
Спикер 1 (00:00–00:45): Предлагаю увеличить бюджет на маркетинг на 20%. Спикер 2 (00:46–01:12): Не согласен. Давайте сначала посмотрим результаты текущей кампании. Спикер 3 (01:13–01:40): Могу подготовить отчёт к пятнице.
Теперь понятно не только что обсуждалось, но и кто какую позицию занял.
Зачем нужна диаризация
Разделение спикеров критически важно в десятках сценариев. Вот основные:
Протоколы совещаний
Самый массовый сценарий. Когда в совещании участвуют 5–10 человек, без диаризации невозможно понять, кто принял решение, кто возразил, кто взял задачу на себя. Протокол без имён — бесполезная стенограмма.
Интервью и журналистика
Журналисту нужно точно разделить свои вопросы и ответы респондента. При расшифровке двухчасового интервью ручное разделение занимает часы. Диаризация делает это автоматически.
Подкасты
Ведущий и гость (или несколько гостей) должны быть чётко разделены — для создания стенограммы, субтитров, цитат и SEO-оптимизированных описаний выпуска.
Судебные заседания
Судья, прокурор, адвокат, подсудимый, свидетели — каждое высказывание должно быть точно атрибутировано. Ошибка в атрибуции может повлиять на судебное решение.
Медицинские консультации
Разговор врача и пациента: кто описал симптомы, кто назначил лечение. Важно для медицинской документации и страховых случаев.
Колл-центры
Оператор vs клиент. Диаризация позволяет анализировать качество обслуживания, время ответа, соблюдение скриптов. Компании обрабатывают тысячи звонков в день — ручная разметка невозможна.
Образование
Лекции с вопросами студентов: разделение речи преподавателя и вопросов из аудитории. Полезно для создания учебных материалов.
Как работает диаризация: технический разбор
Диаризация спикеров — это конвейер (pipeline) из нескольких последовательных этапов. Каждый этап решает свою задачу, и качество каждого влияет на конечный результат.
Этап 1: Voice Activity Detection (VAD)
Первый шаг — определить, где в аудио вообще есть речь. Аудиозапись содержит тишину, фоновый шум, музыку, стук клавиатуры и другие не-речевые звуки. VAD (детектор голосовой активности) разделяет аудио на участки с речью и без неё.
Современные подходы к VAD:
- Silero VAD — нейросетевая модель, компактная и быстрая. Работает на CPU в реальном времени. Используется в большинстве современных pipeline-ов.
- WebRTC VAD — классический алгоритм из проекта WebRTC от Google. Быстрый, но менее точный в шумных условиях.
- Энергетические методы — простейший подход: если амплитуда сигнала выше порога — значит, кто-то говорит. Ненадёжен в реальных условиях.
Результат VAD — временные метки участков с речью: [(0.5с–3.2с), (4.1с–7.8с), (8.5с–12.0с), ...].
Этап 2: Сегментация
Теперь нужно разбить участки речи на однородные сегменты — так, чтобы каждый сегмент принадлежал одному спикеру.
Ключевая задача — детектирование смены спикера (Speaker Change Detection). Алгоритм ищет моменты, когда один голос сменяется другим. Это сложная задача, потому что:
- Смена может быть мгновенной (перебивание)
- Между репликами может быть пауза
- Один спикер может менять интонацию, громкость и темп
Современные системы (например, pyannote.audio) используют нейросетевые модели, обученные определять границы сегментов с точностью до 200–500 миллисекунд.
Этап 3: Извлечение эмбеддингов
Это ключевой этап. Для каждого сегмента речи нейросеть вычисляет голосовой эмбеддинг — числовой вектор, который является своеобразным «отпечатком голоса».
Что кодирует эмбеддинг:
- Тембр голоса — уникальная «окраска» звука, определяемая анатомией голосового тракта
- Высота — базовая частота голоса (F0)
- Манера речи — скорость, интонационные паттерны, произношение
- Акустические особенности — формантные частоты, спектральная огибающая
Нейросети для извлечения эмбеддингов:
- ECAPA-TDNN — одна из самых популярных архитектур. Использует механизм внимания и многоуровневые агрегации признаков. Стандарт в pyannote.audio.
- TitaNet — разработка NVIDIA. Высокая точность, оптимизирована для GPU.
- WavLM — модель от Microsoft на базе трансформеров. Предобучена на огромном корпусе данных, показывает state-of-the-art результаты.
- ResNet-based — классические свёрточные сети, адаптированные для аудио.
Типичный эмбеддинг — это вектор из 192–512 чисел. Два сегмента от одного и того же спикера будут иметь похожие эмбеддинги (близкие векторы), а от разных — далёкие.
Этап 4: Кластеризация
Имея эмбеддинги всех сегментов, нужно сгруппировать их по спикерам. Это задача кластеризации — классическая задача машинного обучения.
Основные алгоритмы:
- Agglomerative Clustering (иерархическая кластеризация) — начинает с предположения, что каждый сегмент — отдельный спикер, затем последовательно объединяет самые похожие. Самый распространённый подход в диаризации.
- Spectral Clustering — строит граф сходства между сегментами и ищет оптимальное разбиение. Хорошо работает, когда число спикеров известно заранее.
- K-Means — быстрый, но требует заранее указать число кластеров.
- HDBSCAN — автоматически определяет число кластеров и устойчив к шуму.
Отдельная задача — определение числа спикеров. Если число известно заранее (например, «в звонке было 2 участника»), задача упрощается. Если нет — алгоритм должен определить его сам, используя метрики вроде BIC (Bayesian Information Criterion) или silhouette score.
Этап 5: Финальная разметка
На последнем этапе каждому сегменту присваивается метка спикера. Результат — временная разметка:
- 00:00–00:45 → Спикер 1
- 00:46–01:12 → Спикер 2
- 01:13–01:40 → Спикер 3
- 01:41–02:05 → Спикер 1
Отдельная сложность — обработка перекрытий (overlapping speech). Когда два человека говорят одновременно, один сегмент должен быть размечен двумя метками. Современные системы (pyannote.audio 3.x) умеют обрабатывать перекрытия, используя специальные модели сегментации, обученные на данных с многоканальными микрофонами.
Метрики качества диаризации
Как оценить, насколько хорошо работает диаризация? Стандартная метрика — DER (Diarization Error Rate).
DER складывается из трёх компонентов:
- Missed Speech — речь, которую система не обнаружила (пропущена)
- False Alarm — тишина или шум, ошибочно размеченные как речь
- Speaker Confusion — речь правильно обнаружена, но приписана не тому спикеру
Формула: DER = (missed + false alarm + confusion) / total speech duration
Современные результаты:
- Чистые записи (студийное качество): DER 3–8%
- Совещания (1 микрофон): DER 8–15%
- Телеконференции: DER 12–25%
- Коктейль-пати (множество спикеров, шум): DER 20–40%
Для большинства практических задач DER ниже 10% считается хорошим результатом. Если вас интересует точность распознавания самой речи (не разделения по спикерам), читайте наш обзор моделей и их WER-бенчмарков для русского языка.
Профили спикеров: следующий уровень
Стандартная диаризация присваивает безличные метки: Спикер 1, Спикер 2. Но что, если система может узнать знакомый голос?
Голосовые эмбеддинги, извлечённые на этапе диаризации, можно сохранить как профиль спикера. При обработке новой записи система сравнивает эмбеддинги новых сегментов с сохранёнными профилями и автоматически подставляет имена.
Диктовка поддерживает эту функцию — профили голосов (voice profiles). При первой записи система создаёт эмбеддинг каждого нового спикера и предлагает присвоить ему имя. В следующих записях Диктовка автоматически узнаёт голос и подставляет сохранённое имя.
Для сравнения эмбеддингов используется косинусное сходство (cosine similarity). Два вектора считаются принадлежащими одному человеку, если cosine similarity >= 0.75. Это порог, обеспечивающий баланс между точностью (не спутать разных людей) и полнотой (узнать того же человека при разных условиях записи).
Профили спикеров особенно полезны для:
- Регулярных совещаний — команда из 5–7 человек встречается каждую неделю. Система знает всех участников.
- Подкастов — ведущий и постоянные со-ведущие узнаются автоматически, только гости помечаются как новые спикеры.
- Медицинской практики — врач записывает приёмы, его голос узнаётся автоматически, а голоса пациентов — новые каждый раз.
Ограничения и сложности
Диаризация — впечатляющая технология, но далеко не совершенная. Вот основные сложности:
Перекрывающаяся речь
Когда два или более человек говорят одновременно, алгоритму крайне сложно разделить голоса. Это самый частый источник ошибок на реальных совещаниях, особенно в эмоциональных дискуссиях.
Похожие голоса
Если в записи участвуют люди с очень похожими голосами (однополая группа близкого возраста, близнецы), эмбеддинги могут быть слишком похожи, и алгоритм спутает спикеров.
Шумное окружение
Фоновый шум (кафе, улица, вентиляция) снижает качество эмбеддингов и усложняет VAD. Особенно проблематичны нестационарные шумы — хлопки, сирены, музыка.
Телефонная связь
Телефонные каналы передают частоты только в диапазоне 300–3400 Гц (у широкополосного аудио — 50–8000 Гц и более). Это урезает акустическую информацию и снижает точность эмбеддингов.
Неизвестное число спикеров
Когда алгоритм не знает заранее, сколько человек участвовало в записи, он может ошибиться: объединить двух похожих спикеров в одного или, наоборот, разделить одного на двух.
Короткие реплики
Для качественного эмбеддинга нужно минимум 1–2 секунды речи. Короткие реплики («Да», «Нет», «Согласен») не содержат достаточно информации для надёжной идентификации.
Инструменты с поддержкой диаризации
| Инструмент | Технология | Макс. спикеров | Точность | Цена |
|---|---|---|---|---|
| Диктовка | Whisper + pyannote | Без ограничений | Высокая (DER ~8–12%) | Бесплатно (бета) |
| Otter.ai | Проприетарная | До 10 | Высокая | От $16.99/мес |
| AssemblyAI | Проприетарная | Без ограничений | Очень высокая | От $0.65/час |
| Deepgram | Проприетарная | Без ограничений | Высокая | От $0.25/час |
| Rev | Человек + AI | Без ограничений | Наивысшая | От $1.50/мин |
| pyannote.audio | Open-source | Без ограничений | Высокая | Бесплатно |
Диктовка использует комбинацию Whisper (для распознавания речи) и pyannote (для диаризации) с дополнительной функцией профилей голосов. Это позволяет не только разделять спикеров, но и узнавать их в новых записях — уникальная функция среди бесплатных инструментов. Подробный обзор всех приложений для транскрибации — от десктопных GUI до self-hosted решений — в нашей статье «Транскрибация для СНГ-рынка: приложения и инструменты».
Будущее диаризации
Технология активно развивается. Вот ключевые направления:
Real-time диаризация
Сегодня большинство систем работают в пакетном режиме — сначала вся запись обрабатывается, потом выдаётся результат. Будущее за потоковой диаризацией в реальном времени, когда метки спикеров появляются с задержкой в 1–2 секунды. Это критически важно для live-субтитров на конференциях и видеозвонках.
Мультимодальная диаризация
Зачем полагаться только на аудио, если есть видео? Комбинация аудио-эмбеддингов с визуальной информацией (распознавание лиц, отслеживание движения губ) значительно повышает точность. Особенно полезно при перекрывающейся речи — камера показывает, кто шевелит губами.
Персонализация через профили
Системы будут хранить всё больше профилей и использовать их не только для идентификации, но и для адаптации модели под конкретных спикеров — учитывая их акцент, темп речи, словарный запас.
Улучшение обработки перекрытий
Самое слабое место современной диаризации — перекрывающаяся речь. Новые модели (multi-speaker ASR, target speaker extraction) учатся разделять наложенные голоса с растущей точностью.
End-to-end модели
Тренд на объединение всех этапов (VAD → сегментация → эмбеддинги → кластеризация) в единую модель, обученную от начала до конца. Такие системы проще в развёртывании и потенциально точнее, потому что этапы не теряют информацию при передаче между собой.
Заключение
Диаризация спикеров превращает безликий поток текста в структурированный диалог с атрибуцией каждого высказывания. За простой идеей «кто говорил когда» стоит сложный конвейер из детекции речи, сегментации, извлечения голосовых отпечатков и кластеризации.
Технология уже достаточно зрелая для практического применения — DER 5–15% покрывает большинство сценариев. А в сочетании с профилями спикеров, которые поддерживает Диктовка, система не просто разделяет голоса, но и узнаёт знакомых людей в новых записях.
Если вы работаете с записями совещаний, интервью или подкастов — диаризация экономит часы ручной разметки и превращает аудио в действительно полезный документ. Если приватность записей для вас критична, разберитесь в различиях локальной и облачной транскрипции.
FAQ
Что такое диаризация спикеров?
Диаризация спикеров — это технология, которая определяет, кто говорил в каждый момент аудиозаписи. Она разделяет запись на сегменты, принадлежащие разным говорящим, и помечает их метками — Спикер 1, Спикер 2 и так далее.
Насколько точна автоматическая диаризация?
На чистых студийных записях DER (Diarization Error Rate) составляет 3–8%. На записях совещаний с одного микрофона — 8–15%. На телеконференциях — 12–25%. Для большинства практических задач DER ниже 10% считается хорошим результатом.
Сколько спикеров может определить диаризация?
Современные системы диаризации (например, pyannote.audio) не имеют жёсткого ограничения на число спикеров. Однако точность снижается при большом количестве участников, особенно если голоса похожи или люди говорят одновременно.
Какие инструменты поддерживают диаризацию спикеров?
Бесплатные: Диктовка (Whisper + pyannote, с профилями голосов) и pyannote.audio (open-source библиотека). Платные: Otter.ai, AssemblyAI, Deepgram, Rev. Диктовка — единственный бесплатный сервис с функцией автоматического узнавания знакомых голосов.
Чем диаризация отличается от распознавания речи?
Распознавание речи (ASR) отвечает на вопрос «что сказано» — превращает звук в текст. Диаризация отвечает на вопрос «кто говорил когда» — разделяет аудио по говорящим. Это разные технологии, которые работают в связке для создания структурированных транскриптов.