Codec VFR Bitrate
Audio codec

DTM-Codec: variable-frame-rate speech codec с mask-guided decoding

800 bps

DTM-Codec — практичная работа про variable-frame-rate speech coding: кодек не обязан хранить токены через равный шаг, если часть речи спектрально избыточна, а часть быстро меняется. Авторы предлагают Dynamic Token Masking, где retained time steps передаются вместе с position bits, а decoder заполняет пропуски через mask-guided reconstruction. Интересно, что выигрыш показан при честном matched total bitrate, то есть вместе с ценой side information.

Метод

Backbone похож на transformer audio autoencoder: STFT features проходят через Enc1, DTM выбирает retained Stage-1 tokens, Enc2 сжимает их до VQ bottleneck, после чего Dec1/Dec2 восстанавливают spectrogram и waveform. Вместо FSQ авторы используют single-codebook VQ с |C|=16 384, то есть 14 bits/token; position side information считается явно как 1 bit per Stage-1 step. Transformer layers работают с sliding attention window 128, а variable-length batches обрабатываются через FlashAttention variable-length kernel.

Главный технический блок — Path Length Equalization: selector выбирает boundary positions так, чтобы сохраненные токены покрывали динамичные участки, но path length оставался управляемым. В decoder пропуски представлены специальным mask embedding, а не простым повторением соседнего токена.

Результаты

  • На LibriSpeech test-clean DTM-Codec@50Hz при 800 bps дает UTMOS 4.22, PESQ 2.66, STOI 0.93, Spk-Sim 0.78 и WER 2.91.
  • При 400 bps DTM-Codec@25Hz дает UTMOS 4.11, PESQ 2.07, STOI 0.90 и WER 4.73; это заметно лучше VARSTok@406 bps по MUSHRA и WER.
  • Matched FFR→VFR сравнение на 800 bps улучшает PESQ 2.46→2.66 и WER 3.31→2.91.
  • MUSHRA: DTM-Codec VFR@50Hz получает 81.62±2.52 против 78.79±2.81 у matched FFR, а VFR@25Hz — 71.26±3.02 против 68.13±3.35.

Ограничения

Training идет на LibriSpeech-960 при 16 kHz, поэтому generalization на music, noisy far-field, emotional TTS или multilingual conversational speech требует отдельной проверки. VFR@80Hz показывает важную границу: при 1280 bps WER становится хуже, чем у FFR (2.98 против 2.54), то есть adaptive masking не всегда полезен на высоком frame-rate. Кодек также остается сравнительно крупным: около 127M parameters.

Фишка из статьи. Самая ценная таблица — matched-rate FFR→VFR: она показывает, что side information не “бесплатная”, но при 400-800 bps VFR всё равно дает выигрыш по quality/intelligibility.

RateTotal bpsPESQ FFR→VFRWER FFR→VFR
25Hz4001.97→2.075.61→4.73
40Hz6402.32→2.493.77→3.27
50Hz8002.46→2.663.31→2.91
80Hz12802.92→2.952.54→2.98

Как это читать: DTM хорош именно как low-bitrate VFR codec. На 80Hz полезность почти исчерпывается, и adaptive layout может уже вредить ASR-readable reconstruction.

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