Распознавание речи CPU Квантование
Распознавание речи

VibeVoice-ASR-BitNet: распознавание речи на CPU с 1.58 ГБ

RTF 0.77

VibeVoice-ASR-BitNet интересна как инженерный отчет о том, как довести LLM-подобное распознавание речи до реального времени на обычном CPU. Авторы не просто квантуют всю модель одним способом, а разделяют узкие места: акустический VAE-токенизатор получает полный INT8-путь, а языковой декодер - ternary BitNet-веса. Главный результат - модель весом около 1.58 ГБ, которая выходит на RTF ниже 1 уже с 3 потоками CPU.

Метод. В обычной CPU-квантизации легко упереться либо в память активаций, либо в чтение весов. Здесь VAE-токенизатор переводится в I8_S: веса, активации, буферы и границы операторов остаются INT8, плюс используются fused-операторы и SIMD. Декодер заменяется на Qwen2.5-1.5B с I2_S ternary-весами; это уменьшает поток чтения весов, а progressive QAT с постепенным смешиванием квантизованного пути нужен, потому что прямой QAT в статье не сходился.

Результаты. Размер системы падает с 4.62 ГБ FP16 до 1.58 ГБ: VAE 1.31->0.65 ГБ, декодер 3.32->0.92 ГБ. На 20-секундном аудио RTF равен 1.98 на 1 потоке, 1.08 на 2 потоках, 0.77 на 3 потоках, 0.63 на 4 потоках и 0.42 на 8 потоках. По точности сжатие стоит умеренно: например, Libri-clean WER 2.41 против 2.17 у VibeVoice-ASR-7B, AMI-sdm 25.87 против 24.18, VoxPopuli 5.18 против 4.92.

Ограничения. Это offline batch-вывод, а потоковый режим с chunked VAE encoding и incremental LM decoding оставлен на будущее. Подход проверен только на архитектуре VibeVoice-ASR, поэтому перенос на Whisper-подобные или Qwen-Audio-подобные системы не доказан. Также сравнение с Whisper.cpp делается на одном 20-секундном клипе, а не на полном наборе задержек и железа.

Фишка из статьи. Самый показательный блок - не WER, а таблица RTF: после 3 потоков модель впервые проходит границу реального времени, а дальнейшее ускорение уже дает запас для менее стабильных CPU.

Длина аудио1 поток2 потока3 потока4 потока8 потоков
5 с2.111.220.890.760.54
10 с2.051.130.820.690.47
20 с1.981.080.770.630.42
40 с1.961.050.760.610.41

Как это читать: RTF меньше 1 означает быстрее реального времени. Поэтому 3 потока - практический порог для локального распознавания, а 1-2 потока показывают, что модель все еще тяжела для совсем малых CPU-бюджетов.

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