- LLaMA-Omni es un modelo de voz-lenguaje basado en Llama-3.1-8B-Instruct que recibe instrucciones por voz y genera simultáneamente respuestas en texto y voz
- Su objetivo principal es la interacción de voz de baja latencia y alta calidad; según el README, la latencia puede bajar hasta 226 ms
- El modelo fue entrenado en menos de 3 días con solo 4 GPU, y se ejecuta usando
Llama-3.1-8B-Omni,Whisper-large-v3y el vocoder HiFi-GAN basado en unidades - La demo de Gradio está estructurada para ejecutar por separado controller, web server y model worker, y debido a la inestabilidad de la reproducción de audio en streaming de Gradio, la reproducción automática no está activada
- El código tiene licencia Apache-2.0, pero el modelo es solo para investigación académica; el uso comercial está prohibido y requiere consultar por una licencia comercial aparte
Qué hace LLaMA-Omni
- LLaMA-Omni es un modelo de voz-lenguaje basado en Llama-3.1-8B-Instruct
- Recibe instrucciones por voz como entrada y genera al mismo tiempo una respuesta en texto y una respuesta en voz
- Busca ofrecer interacción por voz de baja latencia y respuestas de alta calidad; según los destacados del README, la latencia mínima es de 226 ms
- El artículo relacionado está publicado en arXiv:2409.06666
Modelos y dataset publicados
- El modelo está disponible en Hugging Face, ModelScope, Wisemodel y Replicate
- El dataset está publicado como Multiturn-Speech-Conversations
- En la actualización de mayo de 2025 se publicó un
InstructS2S-200Kmejorado, ampliado a conversaciones multivuelta y con mayor diversidad en los timbres de voz de entrada
Actualizaciones recientes
- En mayo de 2025, LLaMA-Omni 2 fue aceptado en la conferencia principal de ACL 2025
- En abril de 2025, se publicó LLaMA-Omni2
- Es una serie de modelos de voz-lenguaje que va de 0.5B a 32B parámetros
- Mejora la calidad de las respuestas y la calidad de la generación de voz
- En enero de 2025, LLaMA-Omni fue aceptado en ICLR 2025
Instalación y flujo de ejecución
- La instalación consiste en clonar el repositorio y luego instalar los paquetes en un entorno conda de Python 3.10
- Después de instalar
pip==24.0, se ejecutapip install -e .
- Después de instalar
- También hay que instalar como dependencias adicionales fairseq y flash-attn
- El inicio rápido requiere tres recursos
- Descargar el modelo
Llama-3.1-8B-Omni - Descargar el modelo
Whisper-large-v3 - Descargar el vocoder HiFi-GAN basado en unidades y
config.json
- Descargar el modelo
Demo de Gradio e inferencia local
- La demo de Gradio está compuesta por tres procesos
- controller:
omni_speech.serve.controller - Gradio web server:
omni_speech.serve.gradio_web_server - model worker:
omni_speech.serve.model_worker
- controller:
- Después de ejecutar la demo, se puede interactuar con
LLaMA-3.1-8B-Omnienlocalhost:8000 - Dado que la reproducción de audio en streaming de Gradio es inestable, solo está implementada la síntesis de audio en streaming y la reproducción automática no está activada
- La inferencia local se ejecuta organizando el archivo de instrucciones de voz según el formato de
omni_speech/infer/examplesy luego corriendobash omni_speech/infer/run.sh omni_speech/infer/examples
Licencia y restricciones de uso
- El código se publica bajo la licencia Apache-2.0
- El modelo solo puede usarse con fines de investigación académica y el uso comercial está prohibido
- En entornos académicos se permite su uso, modificación y distribución, pero es necesario citar el artículo original
- Para consultas sobre uso comercial u obtener una licencia comercial, hay que contactar a
fengyang@ict.ac.cn
Proyectos base y cita
- La base de código se apoya en LLaVA
- Parte del código relacionado con el codificador de voz y el adaptador de voz fue tomado de SLAM-LLM
- Si resulta útil para la investigación, se debe citar el artículo
LLaMA-Omni: Seamless Speech Interaction with Large Language Models - Las consultas pueden hacerse mediante un issue en GitHub o a
fangqingkai21b@ict.ac.cn
1 comentarios
Opiniones de Hacker News
¿Este modelo también puede hacer sonidos que no se pueden expresar con texto? Por ejemplo, una solicitud como “haz el sonido que hace una gallina”.
Pero ¿podría hacer tanto decir la palabra “cloc cloc” como producir el sonido real de cacareo?
No tengo claro qué ventajas o potencial tiene un modelo así frente a un enfoque de agregar reconocimiento de voz/síntesis de voz a un modelo puramente de texto.
¿La clave es que, cuando el modelo se vuelva más sofisticado, pueda interpretar o generar correctamente cosas como entonación, ritmo y emoción, que se pierden en la síntesis de voz?
Un modelo de reconocimiento de voz puede entender mal las palabras, pero un LLM de audio podría entender las palabras reales gracias a un contexto más amplio. Un modelo de síntesis de voz tiene que adivinar la entonación y puede equivocarse por completo, pero un LLM de audio puede aprender de forma natural con qué tono debería hablar. Por ejemplo, si es una interrupción, podría usar un tono más alto.
Incluso solo para interrumpir, los sistemas de reconocimiento/síntesis de voz suelen depender de detección de actividad de voz y heurísticas para decidir cuándo hablar, por lo que muchas veces siguen la regla de hablar solo después de que el usuario deja de hablar. Un LLM de audio también puede aprender conversaciones naturales, cómo no acaparar demasiado tiempo de conversación y cómo hablar con varias personas a la vez.
Un LLM de audio puede generar música o sonidos, o decirte qué canción estás tarareando. Hay muchas posibilidades nuevas.
Dicho eso, digo “puede aprender” porque se necesitan buenos datos de entrenamiento. Según entiendo, la mayoría de estos modelos actuales se entrenan convirtiendo datasets de texto general a síntesis de voz, así que en realidad no son mejores que los sistemas comunes de reconocimiento/síntesis de voz. Sirven para demostrar la arquitectura, pero no muestran toda su capacidad.
La capacidad de hablar rápido o lento ya es algo que los sistemas tradicionales de síntesis de voz no podían hacer. En teoría, también podría decirme si mi pronunciación es correcta, repetir lo que pronuncié mal y luego mostrarme la pronunciación correcta para corregirme.
Todavía no he visto pruebas serias de qué tan bien hace esto realmente el advanced voice mode de OpenAI, así que no sé, pero quiero probarlo. Si otros modelos de voz llegan a este nivel, creo que serían increíbles como herramientas para aprender idiomas.
Uno de los grandes factores es la latencia causada por el batching. Es difícil interrumpir correctamente al agente, así que la conversación real se vuelve más incómoda. Y sí, lo multimodal entiende mejor. Pero no he visto análisis sobre reconocimiento de emociones, y me pregunto si alguien ha visto alguno sobre esta capacidad de GPT-O.
Además, puede haber ventajas secundarias como menor latencia de respuesta, mejor separación de hablantes y mejor reacción a pausas durante la conversación.
Aunque escribas “Really?” o “Really!”, sigue habiendo margen de interpretación. Para que una interfaz de voz tenga éxito de verdad, necesita un momento como cuando la búsqueda antes de Google era un desastre y luego cambió con Google; si la clave de eso es interpretar y generar entonación, ritmo y emoción, entonces crear modelos así tiene bastante sentido.
¿Alguna de las herramientas para ejecutar modelos como Ollama, LM Studio o llama.cpp soporta esto?
Entonces, ¿no es una arquitectura de reconocimiento de voz → LLM → síntesis de voz? Si le grito sonidos de Chewbacca como entrada, ¿el modelo lo reconocerá como una entrada sin sentido, o interpretará cualquier palabra al azar como un mal reconocimiento de voz?
Sentía que funcionaba especialmente bien con idiomas tonales.
La voz de síntesis del clip de demo suena sorprendentemente parecida a Ellen McLain, la actriz de voz de Valve.
https://en.m.wikipedia.org/wiki/Ellen_McLain
La velocidad se ve bastante buena. Hace poco probé chat de voz local con LMStudio + AnythingLLM y todavía era un poco más lento de lo que quería; la voz de PiperTTS era mejor que esta.
No está mal para 3 días de entrenamiento. La calidad de la salida de voz todavía necesita pulirse más, pero es interesante ver qué cambiaría con más entrenamiento.
Ojalá hubiera código de entrenamiento o fine-tuning. Para uso comercial, el fine-tuning de voces parece un requisito clave.
¿Soy el único al que le da mucha menos confianza cuando el README del repo de GitHub tiene ese tonto gráfico de evolución de estrellas?
¿Hay alguna demo que muestre el rendimiento?