Диаризация

Диаризация — разделение записи по говорящим: определение, где речь одного человека кончается и начинается речь другого. Она отвечает на вопрос «кто говорил», тогда как распознавание речи отвечает на вопрос «что сказано».

Как это работает по шагам

  1. 1
    Отделить речь от тишины

    Сначала запись делится на отрезки, где вообще есть речь. Пауза, шум кондиционера, стук чашки — всё это отбрасывается. Без этого шага шум попал бы в чей-нибудь голос и испортил разметку.

  2. 2
    Посчитать отпечаток каждого отрезка

    Для каждого фрагмента речи считается вектор — числовое описание голоса: высота, тембр, манера произношения. Слова при этом не важны: одна и та же фраза у двух людей даёт разные векторы, а разные фразы у одного человека — близкие.

  3. 3
    Сгруппировать похожие

    Векторы собираются в группы по близости. Каждая группа — один говорящий; сколько получилось групп, столько людей на записи. Здесь и определяется число участников, которое никто не задавал заранее.

  4. 4
    Свести с текстом

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

Диаризация и идентификация по голосу — разные вещи

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

Диаризация

Работает на любой записи и без подготовки. Результат — метки вида «говорящий 1», «говорящий 2» с точными границами по времени.

Идентификация

Требует, чтобы голос человека был знаком системе. Результат — имя. Именно это позволяет во второй записи подставить «Иван Петров» вместо «говорящий 2».

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

DER — чем измеряют качество разделения

Diarization Error Rate — доля времени записи, размеченной неправильно. Складывается из трёх частей: пропущенная речь, речь, услышанная там, где её нет, и перепутанные говорящие. Важно, что DER считается по времени, а не по числу реплик: одна минута, приписанная не тому человеку, весит больше, чем десяток коротких ошибок на границах.

  • Границы реплик — самая частая ошибка: полсекунды на стыке уходят соседу. На чтение текста это почти не влияет.
  • Слитые говорящие — двух похожих голосов система считает одним. Заметно сразу: в диалоге пропадает один участник.
  • Лишний говорящий — обратная ошибка: один человек разделён на двоих, обычно из-за смены микрофона или громкости внутри записи.
Сколько это стоит по времени. Диаризация — отдельная работа поверх распознавания, и она не бесплатна по вычислениям: на нашем наборе восемнадцатиминутная встреча размечается за считанные десятки секунд, а не за минуты, как у распространённых открытых реализаций. Поэтому разделение по голосам включено по умолчанию, а не спрятано в платную опцию «для профессионалов».

Где разделение ломается

  • Одновременная речь. В отрезке смешаны два голоса, отпечаток получается средним и не похож ни на один из них.
  • Очень короткие реплики. На «да» и «ага» длиной в треть секунды голосу просто негде проявиться.
  • Один канал связи на двоих. Если оба участника звонят через один телефон, полоса и искажения у них общие — различия голосов сглаживаются.
  • Родственники и близкие тембры. Братья, коллеги с похожими голосами — тот случай, когда разметку стоит проверить глазами.

Посмотреть на своей записи

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

Вопросы

Диаризация и распознавание речи — это одно и то же?

Нет. Распознавание отвечает на вопрос «какие слова сказаны», диаризация — «кто их сказал». Это две разные задачи, которые решаются разными моделями и потом сводятся: слова получают метку говорящего по времени.

Нужно ли заранее говорить, сколько людей на записи?

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

Чем диаризация отличается от идентификации по голосу?

Диаризация только разделяет: «это говорящий A, это говорящий B». Она не знает имён. Идентификация — следующий шаг: сравнить голос с известными и сказать, что A — это Иван Петров. Первое работает на любой записи, второе требует, чтобы голос человека был знаком системе.

Что такое DER?

Diarization Error Rate — доля времени записи, размеченной неверно: пропущенная речь, речь на месте тишины и перепутанные говорящие. Считается по времени, а не по словам, поэтому одна длинная ошибка весит больше десяти коротких.

Почему на перебиваниях разметка портится?

Разделение опирается на голосовой отпечаток отрезка. Когда двое говорят одновременно, в отрезке смешаны два голоса, и отпечаток получается средним — не похожим ни на один из них.