Транскрипт із мітками мовців потребує правильних відповідей на обидва питання, а оскільки мітки лежать поверх слів, помилкову можна виправити, не чіпаючи самого тексту.
Транскрипт зустрічі відповідає одразу на два питання: що було сказано і хто це сказав. Читач бачить одне завдання — ім’я біля кожного рядка. Під ним приховано дві задачі, кожна з власними вхідними даними і власними способами помилятися.
Розпізнавання мовлення слухає слова. Воно перетворює аудіо на текст і, коли працює добре, дає час початку й кінця кожного слова. Його не хвилює, чи змінився голос посеред речення; його завдання — правильно передати речення.
Діаризація мовців слухає голоси. Слів вона не знає. Її завдання — поділити часову шкалу на репліки і сказати, які з них належать одній людині: Мовець 1, Мовець 2. Слово запозичене з англійського «diary» (щоденник), і це доволі точний опис результату: журнал того, хто і коли мав слово.
Поруч є три схожі терміни, які часто плутають. Діаризація визначає, хто й коли говорив, не знаючи жодної особи. Ідентифікація мовця вказує, якій відомій людині належить мовлення, обираючи з набору зареєстрованих голосів. Верифікація мовця відповідає «так чи ні»: чи справді цей голос належить людині X? Твердження постачальників легше читати, коли ці три речі розведено: «мітки мовців» можуть означати що завгодно — від грубої оцінки меж реплік до імен, що переходять від одного запису до наступного. Щоб зрозуміти, що саме ці мітки можуть і чого не можуть обіцяти, варто зазирнути всередину діаризатора.
Більшість систем діаризації працює у три кроки, і жоден з них не пов’язаний з мовою.
Кожен крок може зламатися сам по собі. Тихий мовець пропускається. Два схожі голоси зливаються в один. Людина, яка переходить від спокійного тону до збудженого, розщеплюється на двох.
Галузь оцінює все це показником діаризаційної помилки, DER: часткою мовного часу, яку пропущено, хибно визначено як мовлення або віднесено не тому мовцю, зазвичай із «пробаченим» вікном близько чверті секунди навколо кожної межі. Таке вікно існує тому, що ніхто — ні людина, ні машина — не може розмістити зміну мовця з точністю до мілісекунди. Така толерантність прийнятна для оцінки самого діаризатора. Для транскрипта вона не годиться: межа, зміщена на чверть секунди, потрапляє на слово.
Саме тут сходяться дві задачі, і тут вирішується якість транскрипта з мітками. Діаризатор ставить межі з певною неточністю, часто на частку секунди в той чи інший бік. Розпізнавач розміщує слова на тій самій шкалі часу. Якщо накласти одне на інше без урахування, межа опиниться всередині слова, і половина «завтра» належатиме Мовцю 1, а друга половина — Мовцю 2.
Мітки також можуть якийсь час бути хибними, перш ніж стати правильними. Діаризатор стає впевненішим у своїх групах у міру того, як чує більше аудіо, тож рання мітка може здаватися помилковою з погляду того, що з’ясується згодом. У живому транскрипті мітку можна переглянути вже після показу рядка: VocalStack у своєму API реального часу надсилає кадр transcript.amended, який виправляє текст або мовця вже зафіксованого рядка на місці, тож читач бачить уточнення, а не суперечність.
Навіть ідеально розміщена, абсолютно стабільна мітка лишається лише числом. Число достатньо, щоб відстежувати розмову; читачеві ж потрібне ім’я.
Мітка стає іменем двома способами, і один будується на іншому.
Перший — іменування всередині запису. Кожен мовець, якого знаходить транскрибування, отримує індекс, що починається з 0. Будь-хто з доступом може назвати кожного мовця під час запису або після нього. Ім’я є шаром поверх слів, тож його можна встановити, змінити чи очистити, не торкаючись тексту. Через API це PUT /v1/recordings/{id}/speakers/{idx} з полем name; порожнє ім’я очищає мітку. Рядок, у якому speaker дорівнює -1, не має мітки: або мітки вимкнені, або в живій чернетці рядок ще не віднесено до мовця.
Другий — розпізнавання між записами, та сама задача ідентифікації з першого розділу. Діаризатор може сказати лише, що два голоси різні, але не хто вони. Щоб перейти від «різні» до «це Ана», системі потрібен еталон: збережений голос, узятий із запису цієї однієї людини. Мінімум — тридцять секунд чистого мовлення, краще кілька хвилин. Зразок також має звучати так само, як записи, з якими його зіставлятимуть: та сама людина з мікрофона ноутбука і зі сценічного мікрофона може звучати для машини менш схоже, ніж два незнайомці, записані однаково. Щойно голос збережено, кожного мовця, якого чує транскрибування, порівнюють з ним, і збіг переносить ім’я в транскрипт. У VocalStack це розділ Voices: транскрипції файлів і живі сесії на панелі керування автоматично зіставляють ваші збережені голоси, а сесія API реального часу розпізнає лише ті голоси, які ви перелічили в identifyVoices.
Збережений голос — це біометричні дані: він може впізнати людину в будь-якому записі, а у VocalStack також слугує клоном, який може озвучувати її репліки. Панель керування просить підтвердити, що у вас є дозвіл цієї людини, перш ніж зберегти голос, а голос можна видалити будь-коли.
Усе це припускає, що мітки взагалі потрібні. Часто — ні.
Одна людина, яка читає лекцію, не потребує «Мовець 1» перед кожним рядком. Аудиторія й так знає, у кого мікрофон. Тож налаштування міток мовців має три положення, і вони однакові для сесії реального часу, трансляції, транскрипції та запису.
auto в API). Рядки позначаються мовцем, щойно чути більше за один голос; запис з одним мовцем лишається простим текстом, а другий голос, що приєднався пізно, теж буде врахований. З цього положення починається нова форма транскрибування наживо на панелі керування.Завантаження файлу приймає ту саму опцію speakerLabels, а API реального часу дозволяє змінити її посеред потоку; деталі — у довіднику API. Розділення та іменування мовців ніколи не збільшують рахунок (тарифи є на сторінці цін), тож вибір стосується того, що має бачити читач, а не того, скільки це коштує.
Увімкнена діаризація добра, але не магічна. Два випадки їй досі не під силу.
Перший — перекриття. Коли двоє говорять одночасно, один відрізок аудіо містить два голоси. Діаризатори з урахуванням перекриття існують у дослідженнях і дедалі частіше в продуктах: наскрізна нейронна діаризація (EEND), наприклад, розглядає «хто говорить» як набір одночасних питань «так чи ні», а не як одну відповідь. Проте більшість промислових систем досі призначають одного мовця на відрізок, а розпізнавач поверх них транскрибує по одному голосу. Перехресна мова в гарячій панельній дискусії — найважче аудіо в галузі, і на ньому мітки кожного постачальника гіршають. Це також та частина, яку всі потім хочуть процитувати.
Другий — дуже схожі голоси. Брати й сестри можуть давати вбудовування, надто близькі для надійного розділення, тим більше коли обмінюються короткими репліками протягом години. Телефонне аудіо погіршує ситуацію для всіх: вузькосмуговий канал дискретизовано на 8 кГц і він не передає нічого вище приблизно 3,4 кГц, хоча значна частина того, що відрізняє один голос від іншого, лежить вище цієї межі. Двоє людей на одній телефонній лінії звучать для діаризатора схожішими, ніж для вас.
Найпрактичніше рішення для обох випадків лежить до будь-якої моделі: дайте кожній людині власний мікрофон. За одного каналу на мовця діаризація зводиться до питання, який канал гучний, перекриття стає двома чистими доріжками замість однієї каламутної, і вбудовуванням ніколи не доводиться робити найважчу частину. Один настільний мікрофон дешевший і майже завжди є тим, що у вас є, тому решта цієї статті й існує.
Жодне з обмежень не мусить доходити до читача без змін. Оскільки мітки є шаром поверх слів, хибна мітка ніколи не коштує вам тексту: імена мовців можна встановити або очистити для запису в будь-який момент, а в живій транскрипції ведучий може переписати будь-яке слово чи рядок, поки запис іде, причому кожне виправлення позначається і його можна скасувати.
Щодо слів: що вимірює частота помилок у словах і чого вона не бачить докладно розглядає шари виправлень. WER для розпізнавача — це те саме, що DER для діаризатора, і транскрипту потрібні низькі значення обох.