Liquid AI publie LiquidCodec, un codec audio en streaming de 74 millions de paramètres

Liquid AI publie LiquidCodec, un codec audio en streaming de 74 millions de paramètres
3 min de lecture

Liquid AI a publié LiquidCodec, un codec audio en streaming d’environ 74 millions de paramètres, qui sert de base à ses modèles LFM3-Audio-2B et LFM3-Omni-2B. Il transforme la parole en tokens, des unités discrètes qu’un modèle de langage peut prédire, puis reconvertit ces tokens en audio. Les poids sont disponibles sur Hugging Face.

  • Liquid AI publie LiquidCodec, un codec audio en streaming de 74 millions de paramètres.
  • Le codec remplace Mimi et traite la parole à 24 kHz.
  • Selon Liquid AI, il est plus rapide que Mimi, mais NanoCodec obtient un meilleur score PESQ.
  • Des versions GGUF permettent son utilisation sur appareils embarqués.

LiquidCodec traite un son échantillonné à 24 kHz et le découpe en trames de 80 ms. Chaque trame devient 12 tokens, répartis en 12 flux, selon la fiche du modèle LFM3-Audio-2B. Le codec remplace Mimi, de Kyutai, que Liquid AI utilisait dans LFM2-Audio-1.5B. Mimi compte 96,2 millions de paramètres.

Un fonctionnement en trois étapes

Le fonctionnement repose sur une chaîne en trois temps : encodage, quantification, décodage. Liquid AI utilise des blocs de son architecture LFM3 dans l’encodeur comme dans le décodeur, deux parties symétriques. L’encodeur est entièrement causal, c’est-à-dire qu’il ne s’appuie que sur les sons déjà reçus, ce qui convient au streaming.

Pour la quantification, LiquidCodec utilise une méthode appelée GFSQ (grouped finite scalar quantization) plutôt que la RVQ (residual vector quantization). Dans la RVQ, chaque dictionnaire de codes corrige ce que le précédent n’a pas capturé. Avec la GFSQ, les groupes sont indépendants, si bien que les 12 flux peuvent être prédits en parallèle par des transformeurs de type MaskGIT. Le décodeur prédit directement les coefficients spectraux, sans l’étape de suréchantillonnage par convolution transposée, souvent coûteuse dans les décodeurs d’ondes.

L’entraînement s’est déroulé en deux phases. La première a utilisé 264 000 heures de parole dans 107 langues, sans pertes adversariales. La seconde a été affinée sur 55 000 heures de parole pleine bande (24 kHz ou plus), avec des critiques adversariales. Selon Liquid AI, cette étape a supprimé les artefacts métalliques restants. Une dernière étape, la quantification consciente de l’entraînement (QAT) sur le seul décodeur, vise l’inférence sur appareils de périphérie.

Vitesse et qualité selon Liquid AI

Liquid AI a mesuré la vitesse en FP32 sur un seul fil d’exécution de processeur d’un MacBook Pro équipé d’une puce Apple M4 Max. Selon ces chiffres, qui sont déclaratifs, LiquidCodec traite l’encodage à environ 361 fois le temps réel et le décodage à environ 87 fois. Le facteur temps réel (RTF) est le temps de traitement divisé par la durée de l’audio : plus il est bas, plus le traitement est rapide. Le RTF d’encodage est de 0,0028, contre 0,0361 pour Mimi, 0,2145 pour NanoCodec et 0,7359 pour X-Codec 2. En décodage, il est de 0,0115, contre 0,0329, 0,2543 et 0,0379.

Pour la qualité, Liquid AI a utilisé huit jeux de test : LibriSpeech test-clean, Seed-TTS en anglais et en mandarin, et cinq langues de FLEURS (allemand, français, mandarin, japonais, coréen). LiquidCodec obtient le meilleur score ViSQOL et la plus faible distance de mel sur les huit jeux. Sur LibriSpeech, le score ViSQOL atteint 4,319, contre 4,219 pour NanoCodec, 4,119 pour X-Codec 2 et 4,031 pour Mimi. Dans des tests de synthèse vocale entraînés sur les tokens de chaque codec, LiquidCodec affiche le meilleur score UTMOSv2 sur les huit jeux. Le taux d’erreur de mots sur LibriSpeech est de 3,15 %, contre 6,27 % pour Mimi.

NanoCodec obtient toutefois un meilleur score PESQ (WB) sur sept des huit jeux, et il devance LiquidCodec en similarité de locuteur sur LibriSpeech (SECS 0,836 contre 0,785).

Déploiement

Le codec se charge avec Hugging Face Transformers, en activant trust_remote_code=True. La fonction encode() produit les codes audio et decode() restitue la forme d’onde. Une classe native, LiquidCodecStreamingCache, permet un décodage morceau par morceau. Les exemples de la fiche utilisent des processeurs graphiques (GPU) CUDA en bfloat16.

Pour les appareils embarqués, Liquid AI propose des versions GGUF Q4_0, Q4_K_M et Q8_0 destinées à llama.cpp, ainsi que des dépôts GGUF pour LFM3-Audio-2B et LFM3-Omni-2B. Selon l’entreprise, la combinaison de Q4_0 et de la QAT du décodeur réduit l’empreinte de ce dernier d’un facteur 3,5. Le score ViSQOL sur LibriSpeech passe alors de 4,319 à 4,292.

S’abonner
Notification pour
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x