Компанія Liquid AI анонсувала LiquidCodec — стрімінговий аудіокодек, який використовується у моделях LFM3-Audio-2B та LFM3-Omni-2B. Цей кодек має близько 74 мільйонів параметрів і призначений для перетворення мовлення у токени, які потім можуть бути передбачені мовною моделлю, з подальшим відтворенням аудіо.
Як працює LiquidCodec
LiquidCodec кодує аудіо з частотою дискретизації 24 кГц, розбиваючи його на 12,5 кадрів на секунду, кожен з яких перетворюється у 12 дискретних токенів. Архітектура кодека симетрична: він має повністю каузальний енкодер, що підходить для стрімінгових застосунків. Для квантизації застосовується метод групованої скалярної квантизації (GFSQ), що дозволяє паралельно передбачати всі 12 кодових книг за допомогою трансформерів у стилі MaskGIT. Декодер напряму прогнозує спектральні коефіцієнти, уникаючи ресурсомістких операцій, як-от транспоноване згортання.
Навчання та продуктивність
Навчання кодека проходило у два етапи: спочатку на 264 тисячах годин мовлення 107 мовами із застосуванням хвильових та спектральних втрат, а потім — на 55 тисячах годин повночастотного аудіо з використанням адверсарних критиків для усунення металевих артефактів. Останній етап включав квантизаційно-обізнану оптимізацію для ефективного запуску на периферії.
За даними Liquid AI, кодек працює приблизно у 361 раз швидше за реальний час при кодуванні і у 87 разів швидше при декодуванні на одному CPU-потоці Apple M4 Max. Це значно перевищує показники конкурентів Mimi, NanoCodec та X-Codec 2.
Порівняння якості з іншими кодеками
LiquidCodec показав найкращі результати за метриками ViSQOL та мел-розходження на восьми тестових наборах, включно з LibriSpeech, Seed-TTS та FLEURS. У тестах текст-в-мову (TTS) моделі на основі LiquidCodec досягли найвищих оцінок UTMOSv2 і кращих показників помилок розпізнавання (WER/CER) у половині випадків. Проте NanoCodec випереджає LiquidCodec за PESQ (WB) та схожістю голосу на більшості тестів.
Як розгорнути LiquidCodec
Розробники можуть використовувати LiquidCodec через бібліотеку Hugging Face Transformers із параметром trust_remote_code=True. Для кодування викликається функція encode(), для декодування — decode(). Існує також підтримка потокового декодування через LiquidCodecStreamingCache. Для запуску на периферії доступні оптимізовані збірки у форматі GGUF для llama.cpp, які значно зменшують розмір декодера з мінімальними втратами якості.
Джерело: www.marktechpost.com
Показати більше



