Чому діаризація мовців ламається на реальних записах
Діаризація мовців на тестовому записі виглядає як вирішена задача: чистий звук, роздільні канали, учасники говорять по черзі.
На бойовому матеріалі — нарада в переговорній, дзвінок клієнта, інтерв'ю з диктофона — розмітка розсипається: у розшифровці замість трьох учасників з'являється сім, а частину реплік приписано не тим людям.
Найчастіший збій — перекривна мова.
Коли двоє людей починають говорити одночасно, їхні голоси складаються в один сигнал, і система бачить не два джерела, а одне нестабільне: точки зміни мовця зсуваються, короткі вставки «так», «згоден» зникають, а фрагмент цілком дістається одному співрозмовнику.
Другий тип проблем — одноканальний запис на всю кімнату. Один мікрофон збирає все одразу: шум вентиляції, луну від стін, шелест паперів, а голос учасника з дальнього кінця столу приходить тихіше й з реверберацією.
Голосовий відбиток людини на початку й наприкінці зустрічі розходиться настільки, що групування голосів вважає його двома різними учасниками.
Третій — зміна мовця всередині репліки. Людина починає фразу, її перебивають на півслові, потім вона договорює: для алгоритму це обрив сегмента, і далі частину тексту приписують випадковому учаснику. Помилка в одну-дві секунди на межі сегмента ламає вже не розшифровку, а атрибуцію.
Ціна цих збоїв видна далі по ланцюжку.
Протокол зустрічі, де репліки переплутані, доводиться вичитувати вручну; пошук по архіву дзвінків не знаходить потрібний фрагмент, бо він рахується за іншим співробітником; аналітика за часом виступів і часткою питань клієнта показує цифри, яким не можна довіряти. Розбираємо, як це закривається на рівні підготовки запису та постобробки.
Що дає розділення мови за учасниками розмови
Діаризація перетворює запис на потік реплік із мітками мовців — далі розшифровка, протокол і аналітика працюють не з «текстом взагалі», а з репліками конкретних людей.
Точність розділення голосів на чистих записах тримається в нас на рівні 90–95% правильно атрибутованих реплік, на перекриттях і дальньому мікрофоні вона падає — тому ми вимірюємо її на ваших записах, а не беремо цифру з загальної статті.
Час обробки перестає бути вузьким місцем: година запису розбирається за одиниці хвилин, добовий архів — за один нічний прогін. Якщо розшифровка вже є, повторна розмітка не потребує переслуховування — змінюється лише шар мовців, а не текст.
Частка ручного виправлення падає з 30–40% реплік до 5–10%, і виправлення стає точковим: імена, короткі перетини, рідкісна зміна голосу всередині фрази. Це знімає основну статтю трудовитрат у тих, хто веде протокол зустрічі або розбирає дзвінки.
Зникає цілий клас помилок: репліка більше не приписується не тому учаснику, а оцінка роботи операторів не будується на змішаному тексті.
В аналітиці дзвінків з'являються коректні частки мовлення клієнта й оператора, тривалість пауз і перехоплень — за ними видно, хто веде розмову, а хто відповідає односкладово.
Базову сегментацію беремо з відкритого pyannote і донавчаємо на ваших записах — під акустику конкретних переговорних і канали телефонії. Покажіть 10–20 характерних записів — повернемося з оцінкою точності та планом впровадження.
Режими діаризації мовців: порівняння підходів
Вибір режиму визначає не точність моделі, а те, де в системі з'являється готова відповідь. Коли запис уже лежить в архіві, діаризація мовців іде пакетно: файл ріжеться на вікна, ембединги голосів кластеризуються, межі мовлення уточнюються за перекриттями.
Такий прохід можна перезапускати після оновлення моделі — якість зростає без перезнімання матеріалу.
Розмітка в потоці будує гіпотезу за першими секундами й приклеює її до наступних вікон. Підписані репліки з'являються майже без затримки, але новий голос, що увійшов у середині розмови, якийсь час залишається без мітки.
Гібридна схема поєднує обидва режими: швидкий контур віддає чорнові мітки, фоновий прохід перерозмічує запис цілком і замінює їх.
| Варіант | Коли підходить | Обмеження |
|---|---|---|
| Пакетна обробка архіву | Записи вже зібрані, потрібна максимальна точність | Відповідь з'являється лише після закінчення розмови |
| Розмітка в потоці | Розшифровка діалогу в реальному часі | Помилки на перекриттях і швидкій зміні мовця, потрібен буфер |
| Гібрид: чорновий контур + перерозмітка | Чорновик потрібен одразу, фінал — пізніше | Два контури й узгодження міток між ними |
| Роздільні доріжки | Кожен учасник пише зі свого мікрофона | Працює лише там, де канали не змішуються |
Для кластеризації та розмітки архівів беремо відкриті інструменти на кшталт pyannote.audio і обв'язуємо їх своїм сервісом черг. Режим обираємо за пріоритетом: швидкість відповіді або точність фінальної розмітки.
Етапи впровадження: від аудиту записів до передачі результату
Роботи йдуть від корпусу записів, а не від моделі: спочатку рахуємо, що реально доведеться розділяти — канали, перекривну мову, шум мікрофонів. Аудит задає схему обробки та цільові метрики, за якими далі приймається результат, а не «на слух».
- Аудит корпусу записів. Розбираємо кілька десятків файлів із різних груп — наради, дзвінки, інтерв'ю. Рахуємо частку накладань, музики та поганих мікрофонів, отримуємо карту складності корпусу.
- Схема обробки. Обираємо розділення за каналами, пошук меж реплік за голосовими ознаками або гібрид. Фіксуємо формат розмітки: тайм-коди, ідентифікатори мовців, розбиття на сегменти.
- Налаштування під профіль мовлення. Параметри добираються під кількість учасників, довжину реплік і перекриття: для телефонного каналу одна калібрування, для залу з реверберацією — інша. Окремо налаштовується поріг склеювання сегментів однієї людини.
- Перевірка на контрольній вибірці. Беремо файли, яких не було в налаштуванні, і рахуємо частку переплутаних реплік, пропущені короткі вставки та хибні спрацювання на шумі. Якщо метрики гірші за цільові — повертаємося до параметрів, а не до приймання.
- Критерії приймання. Фіксуємо письмово до старту: частка правильних реплік на контрольній вибірці, стабільність нумерації мовців, поведінка на записах із тихим мовленням, час обробки години аудіо.
- Передача результату. Віддаємо конфігурації, схему обробки, порядок запуску та правила повторного калібрування при зміні записувального тракту.
Якщо додається новий канал або змінюється мікрофон, контрольна вибірка проганяється заново — інакше метрики приймання за місяць перестають відображати реальність.
Комплект постачання: конфігурації, схеми та регламенти
Комплект постачання закриває питання «що робити, коли підрядник пішов». У нас це не презентація з обіцянками, а набір артефактів, кожен з яких проходить приймання: якщо пункту немає або він незастосовний на практиці — робота не закрита. Нижче — що саме передаємо з діаризації мовців.
- Робочі конфігурації — поріг детектора мовлення, мінімальна тривалість репліки, правило склеювання близьких фрагментів одного мовця, чутливість моделі до перекривної мови. Параметри винесені в окремий файл і змінюються без правки коду.
- Схема обробки аудіо — маршрут запису від завантаження до розмітки з мітками мовців: де йде очищення від шуму, де оцінюється кількість голосів у доріжці, де збирається підсумковий файл. Позначено вузли, які можна перезапустити без втрати вже обробленого.
- Правила доступу до записів — ролі, терміни зберігання, розділення сирого аудіо та текстових розміток, порядок видачі й відкликання доступу, видалення на запит. Політика описує, хто і на якій підставі бачить розшифровку.
- Інструкція для операторів — типові дії: завантаження дзвінка, перевірка результату, ручне виправлення спірних міток, перезапуск задачі. З розрахунком на співробітника без підготовки.
- Регламент експлуатації — що контролювати щодня, які показники знімати, за яких відхилень ескалувати, як оновлювати моделі без зупинки сервісу.
- Журнал якості — частка реплік із упевнено визначеним мовцем, кількість перемикань на хвилину розмови, частка втраченого мовлення. Ведеться з моменту запуску, слугує основою для щомісячної звірки.
- Пакет розміток у відкритих форматах — текст із таймкодами й мітками мовців вивантажується у звичні формати, придатні для завантаження у ваші системи без доопрацювань.
- План відкату та приймання — контрольні записи з відомою кількістю мовців, методика вимірювань і порядок повернення до попередньої конфігурації, якщо якість просіла.
Розбір проєкту: розмітка мовлення в записах контакт-центру
Контакт-центр із кількома десятками операторів: записи розмов вивантажувалися з Genesys, а розмітку діалогів вели вручну — супервізор прослуховував дзвінок і позначав, де репліка оператора, а де клієнта.
На вибірці з 1200 дзвінків частка правильних реплік трималася близько 84%: заважали перекриття, паузи на утриманні та тихі вхідні.
Кожен шостий дзвінок ішов у контроль якості операторів із переплутаними ролями, тому звіти за скриптами та запереченнями будувалися на викривленій картині.
| Метрика на одній і тій самій вибірці | До | Після |
|---|---|---|
| Частка правильних реплік | 84% | 97% |
| Дзвінки з помилкою розмітки | 17% | 2.5% |
| Час обробки одного запису | 25 хвилин вручну | близько 3 хвилин з автоперевіркою |
| Охоплення контролем якості | вибірково, близько 2% дзвінків | усі записи, спірні — першими |
Що змінили в процесі
Розмітку розділили на два проходи: діаризація ріже запис на голоси й склеює їх у стійкі канали, потім репліки прив'язуються до ролей за контекстом діалогу.
Ділянки з низькою впевненістю та короткі перекриття не домальовуються алгоритмом, а позначаються й ідуть на перевірку людиною — таких місць виявилося менше 4%.
Підсумок на тій же вибірці: частка правильних реплік зросла до 97%, час обробки запису впав із 25 хвилин до трьох, а контроль якості операторів уперше охопив увесь потік розмов, а не окремі. Звіт за запереченнями тепер збирається по всій денній базі дзвінків, без ручного прослуховування.
Що робити, якщо запис уже зроблено в одному каналі?
Одноканальний запис діаризації не заважає: розділення за голосами спирається на відмінності тембру й ритму мовлення, а не на кількість доріжок. Питання в тому, скільки завад доведеться зняти з сигналу до того, як до нього підпустять модель.
Передобробка аудіо закриває половину задачі. Ми придушуємо постійний шум і гул, вирівнюємо рівень, послаблюємо реверберацію, детектуємо ділянки активності голосу й приводимо доріжку до єдиного формату.
Без очищення сигналу шумовий фон дробить мовлення на хибні репліки, а кластери мовців множаться там, де людина мовчала.
Далі йде розбиття на фрагменти, розрахунок векторного подання голосу для кожного та кластеризація: схожі шматки збираються в одного мовця, постобробка згладжує короткі перемикання й склеює розірвані репліки. Якщо склад учасників відомий заздалегідь, розмітка виходить помітно стійкішою.
Перекривна мова — чесна межа методу. Коли двоє говорять одночасно в один мікрофон, розділення за голосами стає ймовірнісним: ми знаходимо таку ділянку й позначаємо її, але дослівного розбору обох реплік гарантувати не можна. Близькі за звучанням тембри й постійний гул у приміщенні ускладнюють задачу так само.
Якщо є вибір, роздільні доріжки точніші та дешевші в обробці: запис кожного учасника або петля з мікшера майже знімає задачу розділення.
Тому ми заздалегідь даємо вимоги до схеми запису, а для готових одноканальних матеріалів чесно кажемо, де точності вистачить, а де знадобиться ручна верифікація.
Технічні сумніви: шум, акценти та кількість учасників
Записи з виробництва, переговорної або лінії підтримки рідко бувають чистими: фоновий гул, луна, мікрофон на іншому кінці столу.
Тому діаризація починається не з розмітки голосів, а з підготовки доріжки — придушення стаціонарного шуму, вирівнювання рівня, відсікання немовленнєвих фрагментів.
Кожен сегмент отримує оцінку впевненості: спірні місця не ховаємо, а позначаємо — їх видно в розмітці й можна перевірити вручну.
Шумний запис узагалі можна розмітити?
Так, якщо відділити мовлення від шуму до розмітки: стаціонарний фон на кшталт вентиляції прибирається фільтрацією, нестаціонарний — стукіт, посуд, кроки — відсікається за ймовірністю голосу.
Впевненість кожного сегмента зберігається, тому видно, де висновок надійний, а де потрібна перевірка.
Що з акцентом, тихим мовленням і одночасним говорінням?
Відбиток голосу уточнюється по ходу запису, тому короткі репліки на початку розмови розмічуються гірше, ніж у середині. Перекривна мова розділяється на потоки, але за одночасного говоріння двох-трьох людей частина слів губиться — це обмеження самого запису, а не методу.
Скільки учасників витримує і де лежать записи?
Розрізняємо десятки голосів на одній доріжці: обмеження не у швидкості обробки, а в схожих тембрах — близькі голоси починають плутатися.
Аудіо та розмітка залишаються у вашому контурі, доступ розмежовується за ролями, а термін зберігання задає політика: наприклад, аудіо видаляється після розшифровки, текст і розмітка залишаються.
Обговоримо задачу: що потрібно для точної оцінки
Щоб повернутися з оцінкою проєкту, а не з загальними словами, нам потрібен мінімум ввідних щодо ваших даних. За досвідом, для діаризації мовців точність оцінки на 80% визначається якістю та структурою запису — тому просимо саме артефакти, а не опис «у загальних рисах».
Що достатньо надіслати на старті:
- Приклад запису — 10-20 хвилин реального аудіо з вашого каналу: телефонний дзвінок, мікрофон переговорної, потік із відеоконференції.
- Кількість каналів і доріжок — моно, стерео або вже розведені за учасниками треки: від цього залежить, чи потрібна взагалі діаризація або достатньо розділення каналів.
- Очікувана кількість мовців у записі та чи є перетини мовлення — накладання реплік задає вимоги до алгоритму сегментації.
- Критерії приймання — яка частка правильно розміченого часу і яка точність визначення кількості голосів вважається для вас робочою.
- Формат результату — розмітка з таймкодами, транскрипт з атрибуцією реплік або готовий JSON для вашої системи.
- Обсяг і режим обробки — скільки годин запису на місяць і чи потрібен розбір у реальному часі або достатньо пакетної обробки.
- Обмеження за контуром — обробка на ваших серверах, ізольовано або із зовнішніми сервісами.
Після цього ми розбираємо приклад запису, звіряємо метрики на ваших даних і повертаємося з оцінкою проєкту та планом робіт: етапи, строки, точки контролю якості. Обговорення задачі займає один созвон — далі ви отримуєте цифри під свій матеріал, а не усереднені.







