Liquid AI ha publicado LiquidCodec, un códec de audio en streaming de aproximadamente 74 millones de parámetros, que sirve de base a sus modelos LFM3-Audio-2B y LFM3-Omni-2B. Transforma el habla en tokens, unidades discretas que un modelo de lenguaje puede predecir, y luego reconvierte estos tokens en audio. Los pesos están disponibles en Hugging Face.
LiquidCodec procesa un sonido muestreado a 24 kHz y lo divide en tramas de 80 ms. Cada trama se convierte en 12 tokens, distribuidos en 12 flujos, según la ficha del modelo LFM3-Audio-2B. El códec reemplaza a Mimi, de Kyutai, que Liquid AI utilizaba en LFM2-Audio-1.5B. Mimi cuenta con 96,2 millones de parámetros.
Un funcionamiento en tres etapas
El funcionamiento se basa en una cadena de tres tiempos: codificación, cuantificación, decodificación. Liquid AI utiliza bloques de su arquitectura LFM3 tanto en el codificador como en el decodificador, dos partes simétricas. El codificador es completamente causal, es decir, solo se basa en los sonidos ya recibidos, lo que es adecuado para el streaming.
Para la cuantificación, LiquidCodec utiliza un método llamado GFSQ (grouped finite scalar quantization) en lugar de la RVQ (residual vector quantization). En la RVQ, cada diccionario de códigos corrige lo que el anterior no ha capturado. Con la GFSQ, los grupos son independientes, de modo que los 12 flujos pueden ser predichos en paralelo por transformadores tipo MaskGIT. El decodificador predice directamente los coeficientes espectrales, sin la etapa de sobremuestreo por convolución transpuesta, a menudo costosa en los decodificadores de ondas.
El entrenamiento se realizó en dos fases. La primera utilizó 264.000 horas de habla en 107 idiomas, sin pérdidas adversariales. La segunda se afinó con 55.000 horas de habla de banda completa (24 kHz o más), con críticas adversariales. Según Liquid AI, esta etapa eliminó los artefactos metálicos restantes. Una última etapa, la cuantificación consciente del entrenamiento (QAT) solo en el decodificador, tiene como objetivo la inferencia en dispositivos periféricos.
Velocidad y calidad según Liquid AI
Liquid AI midió la velocidad en FP32 en un solo hilo de ejecución de procesador de un MacBook Pro equipado con un chip Apple M4 Max. Según estas cifras, que son declarativas, LiquidCodec procesa la codificación a aproximadamente 361 veces el tiempo real y la decodificación a aproximadamente 87 veces. El factor tiempo real (RTF) es el tiempo de procesamiento dividido por la duración del audio: cuanto más bajo es, más rápido es el procesamiento. El RTF de codificación es de 0,0028, frente a 0,0361 para Mimi, 0,2145 para NanoCodec y 0,7359 para X-Codec 2. En decodificación, es de 0,0115, frente a 0,0329, 0,2543 y 0,0379.
Para la calidad, Liquid AI utilizó ocho conjuntos de prueba: LibriSpeech test-clean, Seed-TTS en inglés y mandarín, y cinco idiomas de FLEURS (alemán, francés, mandarín, japonés, coreano). LiquidCodec obtiene la mejor puntuación ViSQOL y la menor distancia de mel en los ocho conjuntos. En LibriSpeech, la puntuación ViSQOL alcanza 4,319, frente a 4,219 para NanoCodec, 4,119 para X-Codec 2 y 4,031 para Mimi. En pruebas de síntesis de voz entrenadas con los tokens de cada códec, LiquidCodec muestra la mejor puntuación UTMOSv2 en los ocho conjuntos. La tasa de error de palabras en LibriSpeech es del 3,15 %, frente al 6,27 % de Mimi.
No obstante, NanoCodec obtiene una mejor puntuación PESQ (WB) en siete de los ocho conjuntos, y supera a LiquidCodec en similitud de locutor en LibriSpeech (SECS 0,836 frente a 0,785).
Despliegue
El códec se carga con Hugging Face Transformers, activando trust_remote_code=True. La función encode() produce los códigos de audio y decode() restituye la forma de onda. Una clase nativa, LiquidCodecStreamingCache, permite un decodificado fragmento a fragmento. Los ejemplos de la ficha utilizan unidades de procesamiento gráfico (GPU) CUDA en bfloat16.
Para dispositivos embebidos, Liquid AI propone versiones GGUF Q4_0, Q4_K_M y Q8_0 destinadas a llama.cpp, así como repositorios GGUF para LFM3-Audio-2B y LFM3-Omni-2B. Según la empresa, la combinación de Q4_0 y la QAT del decodificador reduce la huella de este último en un factor de 3,5. La puntuación ViSQOL en LibriSpeech pasa entonces de 4,319 a 4,292.
