docs(diarization): уточнены правила сведения и формат
- Зачем: - спецификация не должна оставлять неоднозначности перед реализацией диаризации. - Что: - уточнены сведение слов, таймкоды и предупреждение о малом кластере. - очищены терминология и граница между ADR и спецификацией. - сохранён результат сравнения WeSpeaker и CAMPPlus. - Проверка: - git diff --cached --check и проверка относительных ссылок.
This commit is contained in:
@@ -57,13 +57,15 @@
|
||||
слова нормализуются в адаптере бэкенда; их обратная сборка должна сохранять
|
||||
распознанный текст с точностью до нормализации пробелов.
|
||||
|
||||
Результат диаризации — отдельная упорядоченная разметка говорящих: временные
|
||||
интервалы с анонимным идентификатором голосового кластера. ASR-бэкенд не знает о
|
||||
кластерах, а диаризатор не знает о распознанном тексте.
|
||||
Разметка говорящих хранится отдельно от результата ASR: это упорядоченные
|
||||
временные интервалы с анонимным идентификатором голосового кластера. ASR-бэкенд
|
||||
не знает о кластерах, а диаризатор не знает о распознанном тексте.
|
||||
|
||||
Операция сведения назначает слову кластер с наибольшим временным перекрытием.
|
||||
Если пересечения нет либо наибольшее перекрытие не единственно, слово получает
|
||||
неизвестного говорящего. Соседние слова одного говорящего объединяются в
|
||||
Операция сведения суммирует временное перекрытие слова с интервалами каждого
|
||||
кластера и назначает кластер с единственным наибольшим ненулевым перекрытием.
|
||||
Если пересечения нет либо несколько кластеров делят наибольшее значение, слово
|
||||
получает неизвестного говорящего: порядок кластеров не используется как
|
||||
искусственная развязка ничьей. Соседние слова одного говорящего объединяются в
|
||||
реплику; порядок слов и исходная временная шкала не меняются.
|
||||
|
||||
Все три ASR-пути обязаны предоставлять пословный контракт до включения
|
||||
@@ -105,12 +107,14 @@
|
||||
|
||||
- Pyannote segmentation 3.0;
|
||||
- WeSpeaker ResNet34 LM;
|
||||
- `FastClusteringConfig.threshold = 0.89`;
|
||||
- порог кластеризации 0,89;
|
||||
- автоматическое число кластеров.
|
||||
|
||||
`--speakers N` передаёт явное число кластеров вместо автоматического. Малый
|
||||
кластер — кластер с речью короче максимума из 5 секунд и 2% длительности записи.
|
||||
Он не отбрасывается и получает обычный номер, но вызывает предупреждение.
|
||||
`--speakers N` передаёт явное число кластеров вместо автоматического. Для
|
||||
предупреждения используется диагностическая граница из калибровки: малым
|
||||
считается кластер с речью короче максимума из 5 секунд и 2% длительности записи.
|
||||
Граница влияет только на предупреждение — кластер не отбрасывается, получает
|
||||
обычный номер и не меняет статус команды.
|
||||
|
||||
## Формат Markdown
|
||||
|
||||
@@ -122,8 +126,9 @@
|
||||
[09:18] Speaker 2: Мне гораздо проще накатывать обновления…
|
||||
```
|
||||
|
||||
- Печатается только начало реплики, округлённое до целой секунды. Для записей
|
||||
длиннее часа используется `[HH:MM:SS]`, иначе `[MM:SS]`.
|
||||
- Печатается только начало реплики; доли секунды отбрасываются, а не округляются
|
||||
(`09:07.96` → `[09:07]`). Для записей длиннее часа используется
|
||||
`[HH:MM:SS]`, иначе `[MM:SS]`.
|
||||
- Метка `Speaker N` не получает Markdown-выделение.
|
||||
- Нумерация начинается заново для каждого файла; номера назначаются по порядку
|
||||
первого появления кластера в словах транскрипта.
|
||||
@@ -164,9 +169,10 @@
|
||||
- Адаптер каждого ASR-бэкенда возвращает монотонные слова с временной
|
||||
привязкой; сборка слов сохраняет текст сегментов с точностью до пробелов.
|
||||
- Сведение покрывает смену говорящего, отсутствие пересечения, равное
|
||||
перекрытие, пунктуацию на границе реплик и хронологический порядок.
|
||||
наибольшее перекрытие с результатом `Speaker ?`, пунктуацию на границе реплик
|
||||
и хронологический порядок.
|
||||
- Форматтер проверяется для обычных, часовых, неизвестных и малых кластеров,
|
||||
`Speaker ?`, паузы 2 секунды и предела 60 секунд.
|
||||
`Speaker ?`, отбрасывания долей таймкода, паузы 2 секунды и предела 60 секунд.
|
||||
- CLI проверяет несовместимые и граничные значения, не запускает ASR при ошибке
|
||||
preflight и соблюдает всю матрицу деградации в single- и batch-режимах.
|
||||
- Батч создаёт диаризатор ровно один раз, пропускает его для пустого ASR,
|
||||
|
||||
Reference in New Issue
Block a user