Tokenizer QbE-STD CTC
Speech tokenization

wav2tok 2.0: выравненные speech tokens для поиска spoken terms

MRR 0.90

wav2tok 2.0 — специализированный дискретный speech tokenizer для query-by-example spoken term detection. В отличие от универсальных токенизаторов вроде HuBERT/WavLM clustering или EnCodec, здесь токены специально учатся сохранять сходство между разными произнесениями одного spoken term, даже если длина, speaker и акустика отличаются.

Проблема

В QbE-STD пользователь дает аудио-запрос, а система ищет похожие spoken terms в аудиобазе без текстовой транскрипции. Для этого токены должны быть не просто “хорошими представлениями речи”, а стабильными для одного и того же слова/фразы. wav2tok уже использовал CTC-based alignment, но training recipe был связан с clustering и хуже масштабировался.

Что меняется в wav2tok 2.0

  • Backbone берется из BEST-STD.
  • Сначала модель учит discriminative, speaker-invariant representations через contrastive learning и vector quantization.
  • Затем добавляется pairwise token consistency через CTC alignment loss.
  • Новый DTW-aligned framewise prediction objective с adaptive weighting помогает выравнивать frames между парными utterances, не сводя всё к одному hard path.

Результаты

На LibriSpeech train-clean-100 wav2tok 2.0 дает более согласованные токены для парных произнесений: при 256 токенах unigram Jaccard 0.83 и bigram Jaccard 0.75. Для сравнения, старый wav2tok при 256 токенах дает 0.80 / 0.72, BEST-STD — 0.74 / 0.59, Speech Tokenizer — 0.44 / 0.24.

В retrieval-таблице прирост тоже устойчивый. На LibriSpeech in-vocabulary при 512 токенах wav2tok 2.0 получает MAP 0.86, MRR 0.90 и MTWV 0.66. Старый wav2tok при 512 токенах — MAP 0.80, MRR 0.86, MTWV 0.61; BEST-STD — MAP 0.73, MRR 0.78, MTWV 0.56. На unseen TIMIT out-of-vocabulary при 1024 токенах wav2tok 2.0 дает MAP 0.66, MRR 0.71, MTWV 0.70, что особенно важно для переноса на новый корпус.

Практический вывод

Это не универсальный codec tokenizer для генерации аудио, а более узкий и потому ценный tokenizer для аудиопоиска. Он хорошо ложится на задачи типа “найти все упоминания бренда/команды/термина в звонках”, когда ASR может ошибаться на OOV-словах, а аудиозапрос известен. Главное достоинство — явное pairwise alignment, которое делает токены пригодными для retrieval, а не только для downstream fine-tuning.

Фишка из статьи. Wav2tok 2.0 стоит читать как работу не только про дискретные speech-токены, а про их согласованность во времени. Авторы явно оптимизируют pairwise token alignment и добавляют DTW-aligned framewise objective, чтобы разные произношения одного и того же слова давали близкие цепочки токенов, а не просто похожие глобальные эмбеддинги.

ТокенизаторCodebookUnigram consistencyBigram consistency
BEST-STD5120.730.57
wav2tok5120.770.65
wav2tok 2.05120.810.71
wav2tok 2.02560.830.75
Speech Tokenizer10240.440.24
QbE-STDBEST-STD 512wav2tok 2.0 512
LibriSpeech IV, MAP / MRR / MTWV0.73 / 0.78 / 0.560.86 / 0.90 / 0.66
LibriSpeech OOV, MAP / MRR / MTWV0.70 / 0.71 / 0.510.82 / 0.84 / 0.60
TIMIT IV, MAP / MRR / MTWV0.61 / 0.66 / 0.630.72 / 0.78 / 0.74
TIMIT OOV, MAP / MRR / MTWV0.59 / 0.64 / 0.550.69 / 0.75 / 0.65

Практическая деталь: модель работает с 1-секундными окнами, потому что около 93% уникальных терминов короче секунды. Внутри стоит небольшой backbone на 4 bidirectional Mamba layers, примерно 4.7M параметров, а обучение разделено на стадию contrastive/VQ и стадию CTC + DTW-выравнивания.

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