Alignment ASR Gradients
Forced alignment

Gradient-based forced alignment для любых differentiable ASR моделей

WBE 39 ms

Статья предлагает универсальный способ получить word-level timestamps даже у ASR моделей, где aligner не заложен архитектурно: AED, Whisper-like models и speech LLMs. Идея проста и технически аккуратна: взять gradient teacher-forced token probability по входному аудио, превратить его в frame-level saliency и декодировать монотонный путь динамическим программированием. Это не замена быстрым production aligners, но сильный диагностический инструмент: один механизм работает для CTC, transducer, AED и speech LLM.

Метод. Для каждого токена авторы считают gradient его log probability относительно входа или промежуточного представления, редуцируют feature axis в saliency score, добавляют silence/blank topology и audio-energy weighting, а затем находят монотонное выравнивание. Для autoregressive AED и speech LLM они используют character targets, потому что input-grid saliency может уточнить границы тоньше, чем subword attention grid. Для CTC и transducer остаются native subwords, иначе char-level targets разваливают эмиссионную модель.

Результаты. На Buckeye Whisper-large-v3 с gradient на оптимальной глубине encoder дает WBE 39 ms и 80.0% границ в 50 ms collar против 49 ms и 69.1% у cross-attention. На TIMIT тот же вариант получает 33 ms WBE против 42 ms у cross-attention. В streaming моделях gradient особенно полезен: FastConformer-CTC на Buckeye имеет posterior WBE 366 ms, а gradient - 158 ms; Emformer transducer posterior 399 ms, gradient - 139 ms. При этом сильные native aligners остаются лучше в своих условиях: MMS-FA posterior на Buckeye дает 46 ms, тогда как gradient - 121 ms.

Ограничения. Главная цена - compute: нужен backward pass по токенам, поэтому авторы прямо не продают метод как практичный aligner для массового inference. Метод требует differentiable access к модели и teacher-forced scoring, а качество зависит от выбранной внутренней глубины и blank/silence схемы. Кроме того, сравнение с attention aligners частично использует tuned head selection на dev data, что ограничивает прямую переносимость абсолютных чисел.

Фишка из статьи. Самый интересный negative result: более высокая временная resolution входа не означает лучший alignment. Для Whisper-large-v3 лучший gradient берется не на log-mel input и не на выходе encoder, а примерно на 3/4 encoder; у streaming FastConformer глубокие слои, наоборот, накапливают задержку.

Gradient levelWhisper-large-v3 WBEWhisper <=50 msFastConformer WBEFastConformer offset
Log-mel input53 ms66.2%158 ms-80 ms
Encoder input44 ms74.6%152 ms-63 ms
Encoder 1/241 ms78.2%146 ms+73 ms
Encoder 3/439 ms80.0%229 ms+196 ms
Encoder output42 ms79.0%305 ms+274 ms

Как это читать: gradient alignment зависит не только от temporal grid, но и от того, на каком уровне сеть уже сформировала устойчивую speech-text correspondence. Для Whisper оптимум в середине encoder, а для streaming CTC поздние слои становятся хуже из-за накопленной emission delay.

Оригинальная статья на arXiv