Dynamic Clustering: склейка длинного разделения речи без дообучения
Статья решает типичную проблему длинного разделения речи: короткие сегменты можно разделить независимо, но потом нужно понять, какой выходной поток соответствует какому диктору в соседних сегментах. Авторы предлагают training-free dynamic clustering, который ведет reference pools дикторов и выравнивает перестановки по сходству embedding. Сильная сторона работы - метод можно подключить как постобработку к существующему separation model.
Метод. Для каждого сегмента извлекаются speaker embeddings, затем текущие потоки сопоставляются с reference pools через cosine similarity. Пулы обновляются не всеми embedding подряд, а наиболее представительными, причем качество сегмента влияет и на решение перестановки, и на обновление пула. Используются обычные компоненты: FTRNN separator, pyannote VAD и ECAPA-TDNN embeddings.
Результаты. В 2-speaker dense сценарии метод получает 98.5% segment-wise permutation accuracy и 11.7 дБ SI-SDR, почти доходя до oracle 11.8 дБ. В sparse сценарии выигрыш крупнее: 96.8% и 13.3 дБ против 89.3% и 8.2 дБ у CSS-sep + VAD + embedding + k-clustering. Обычный CSS-sep без глобальной привязки проваливается: 59.1%/-3.0 дБ в dense и 53.7%/-4.5 дБ в sparse.
Ограничения. Эксперименты завязаны на конкретный separator и синтетические dense/sparse long speech сценарии. Метод зависит от качества VAD и speaker embeddings; в реальных встречах с сильным шумом, сменой микрофонов или очень похожими голосами reference pools могут дрейфовать. Также работа в основном показывает 2-speaker таблицу, хотя проблема числа дикторов шире.
Фишка из статьи. Абляция хорошо показывает, что главное - не размер пула, а качество обновления reference pool и метрика сходства.
| Сравнение | Число | Что означает |
|---|---|---|
| Полный метод | 96.8% / 13.3 дБ | Sparse-сценарий, высокая точность перестановок |
| Без quality weighting в решении | 95.8% / 12.7 дБ | Небольшая потеря |
| Без quality weighting в обновлении | 90.8% / 10.6 дБ | Пул начинает загрязняться |
| Без обоих weighting | 90.6% / 10.5 дБ | Почти тот же провал |
| Euclidean вместо cosine | 68.2% / 1.5 дБ | Неподходящая метрика ломает сопоставление |
Как это читать: это практичная подсказка для длинного разделения: качество исторического пула важнее, чем просто собрать больше embedding.