¿Puede una IA de voz que corre en tu propio Mac atender una llamada?

Pasamos varios montajes de voz locales, en un portátil, por la misma prueba de llamada que a los modelos en la nube. Uno fue tan rápido como la nube, pero nunca usó sus herramientas. Dos modelos pequeños se acercaron lo bastante como para servir. Y el montaje más lento lo era por su motor, no por su modelo.

Por qué probar en local

Cuando tu agente te llama con agentring, quien habla es un modelo de voz en tiempo real. En nuestra primera prueba, Phonic, Grok Voice y Gemini Live empezaban a hablar en 1,2–1,6 segundos. Pero todos corren en la nube de otro, y cobran por minuto o piden una clave de API.

Un modelo local significaría no necesitar clave, no pagar por minuto y que el audio de la llamada no salga de tu máquina. La pregunta es si aguanta las dos cosas que hacen que una llamada parezca una llamada:

  • Empezar a hablar rápido cuando tú terminas. A partir de un segundo y medio, la pausa se nota.
  • Usar bien las herramientas: mirar el build, abrir una incidencia, preguntarle a tu agente. Una voz que suena genial pero se inventa las cosas es peor que nada en una llamada sobre tus servidores de producción.

El montaje

Todo corrió en un Mac con chip M1 Pro y 32 GB de memoria, a finales de octubre de 2026.

  • Hugging Face speech-to-speech 1.0.0 como servidor. Habla el protocolo de OpenAI Realtime, así que agentring se conecta con la misma clase que usa para OpenAI, solo cambiando la URL. Encadena tres modelos: voz a texto, un modelo de lenguaje y texto a voz.
  • Voz a texto: Parakeet TDT 0.6B v3. Texto a voz: Qwen3-TTS 1.7B.
  • Modelos de lenguaje: el que trae HF por defecto para Mac (Qwen3-4B-Instruct-2507, a 4 bits, sobre MLX de Apple), ese mismo Qwen3-4B en llama-server de llama.cpp, y Ministral 3 3B en llama-server. Los dos de llama.cpp, a 4 bits (Q4_K_M) y sin pensamiento.
  • Gemma 4 E4B, que entiende el audio directamente, así que se salta el paso de voz a texto. Corrió en llama-server con su codificador de audio.

La prueba es la del primer artículo: el mismo prompt de sistema, las mismas herramientas y los mismos cuatro prompts en español enviados en tiempo real, tres sesiones cada uno. Son una conversación normal, una herramienta rápida (qué hora es), dos herramientas seguidas (mirar el build y abrir una incidencia) y una herramienta que tarda 3 segundos en responder (preguntar al agente). Primera voz es el tiempo desde que el usuario termina de hablar hasta el primer audio de vuelta. Herramientas bien cuenta los 9 turnos con herramientas en los que el modelo llamó a lo que esperábamos. Grok Voice está en el gráfico como referencia de la nube.

Resultados

Tiempo hasta la primera voz, en segundos (menos es mejor)

  • Conversación, sin herramientas
  • Con herramientas (rango entre los prompts con herramientas)
Grok (nube) Grok (nube), conversación: 1,26 s 1,26 Grok (nube), con herramientas: 1,30–1,59 s 1,30–1,59 Gemma 4 E4B Gemma 4 E4B, conversación: 1,28 s 1,28 Gemma 4 E4B, con herramientas: 1,31–2,41 s 1,31–2,41 Qwen3-4B Qwen3-4B, conversación: 2,39 s 2,39 Qwen3-4B, con herramientas: 1,65–5,02 s 1,65–5,02 Ministral 3 3B Ministral 3 3B, conversación: 2,42 s 2,42 Ministral 3 3B, con herramientas: 1,76–6,30 s 1,76–6,30 HF por defecto HF por defecto, conversación: 5,40 s 5,40 HF por defecto, con herramientas: 5,97–13,12 s 5,97–13,12 Grok (nube) Grok (nube), conversación: 1,26 s 1,26 Grok (nube), con herramientas: 1,30–1,59 s 1,30–1,59 Gemma 4 E4B Gemma 4 E4B, conversación: 1,28 s 1,28 Gemma 4 E4B, con herramientas: 1,31–2,41 s 1,31–2,41 Qwen3-4B Qwen3-4B, conversación: 2,39 s 2,39 Qwen3-4B, con herramientas: 1,65–5,02 s 1,65–5,02 Ministral 3 3B Ministral 3 3B, conversación: 2,42 s 2,42 Ministral 3 3B, con herramientas: 1,76–6,30 s 1,76–6,30 HF por defecto HF por defecto, conversación: 5,40 s 5,40 HF por defecto, con herramientas: 5,97–13,12 s 5,97–13,12
Resultados por montaje
Grok Voice (nube)Gemma 4 E4BQwen3-4B, llama.cppMinistral 3 3B, llama.cppHF por defecto (MLX)
Conversación1,26 s1,28 s2,39 s2,42 s5,40 s
Herramienta rápida1,30 s1,31 s1,65 s1,76 s5,97 s
Dos herramientas1,31 s2,17 s5,02 s4,66 s13,12 s
Herramienta lenta (3 s)1,59 s2,41 s2,38 s*6,3 ssin respuesta
Herramientas bien9/90/97/97/96/9

* Rápido porque en 2 de las 3 sesiones contestó sin llamar a la herramienta.

Gemma 4 E4B: tan rápido como la nube, pero no usa sus herramientas

Gemma fue la sorpresa. Empezaba a hablar en 1,3 segundos, igual que Grok, y luego falló todos los turnos con herramientas. Al preguntarle la hora, se la inventó ("las tres y cuarto"). Al pedirle que mirara el build, decía "voy a comprobar el build" y no lo hacía.

Para saber si era cosa del modelo o de nuestro montaje, le mandamos el mismo prompt y las mismas herramientas directamente por llama-server:

Uso de herramientas de Gemma 4 E4B con y sin pensamiento
Gemma 4 E4BHerramientas bien, textoHerramientas bien, audioEmpieza a responder en
Pensando (lo que hace por defecto)9/98/92–9 s
Sin pensar1/90/90,15 s
Sin pensar, con prompt más estricto6/90/90,15 s

A este tamaño, Gemma solo usa las herramientas con fiabilidad si le dejas pensar, y pensar le cuesta de 2 a 9 segundos antes de la primera palabra. Con un prompt muy corto sí llamaba a la herramienta del reloj. Con un prompt realista de asistente telefónico dejaba de hacerlo. Para una voz que tiene que consultar cosas, de momento eso lo descarta.

El montaje lento era lento por su motor

HF speech-to-speech con su configuración por defecto para Mac tardaba 5,4 segundos solo en contestar una conversación. Sus logs dicen dónde se iba el tiempo: la voz a texto tardaba 80 ms, el texto a voz 0,24 s y el modelo de lenguaje 3,3 s. Con la herramienta lenta, el modelo pasó un argumento mal formado, el servidor descartó la llamada y no llegó a hablar.

Así que sacamos el modelo de lenguaje y lo servimos con llama-server. Antes de las pruebas de voz completas, comprobamos cinco modelos pequeños de pesos abiertos solo con texto (los cuatro prompts, tres veces cada uno, solo la primera respuesta, sin pensamiento):

Modelos pequeños en llama-server, primera respuesta a los cuatro prompts
Modelo (4 bits, llama-server)Bien de 12Empieza a responder en
Ministral 3 3B12/120,16 s
Qwen3.5 2B12/120,16 s
Qwen3-4B-Instruct-250712/120,39 s
Qwen3.5 4B8/120,23 s
LFM2.5 1.2B6/120,06 s

El mismo Qwen3-4B que dentro de la configuración por defecto de HF tardaba 3,3 s empieza a responder en 0,39 s con llama-server. El cuello de botella nunca fue el modelo. Con Ministral 3 3B o Qwen3-4B detrás, la cadena de voz completa contesta una conversación en unos 2,4 s y una herramienta rápida en unos 1,7 s.

Lo que todavía estorba

  • Silencio con las herramientas lentas. Ministral llamó bien a la herramienta de 3 segundos, pero no dijo nada hasta que volvió. Los modelos de la nube dicen antes "voy a mirarlo". Una frase de espera antes de las herramientas lentas arreglaría casi todo.
  • Entiende mal. Parakeet oyó "a la gente" en vez de "al agente". Es una sílaba, pero en una llamada cambia lo que hace la voz.
  • Una sola GPU para todo. El modelo de lenguaje y el de texto a voz comparten la GPU del Mac, así que el primer audio del texto a voz iba de 0,3 a 2 segundos según lo que estuviera corriendo a la vez.
  • Una llamada a la vez, ocupando unos 6–7 GB de memoria.

Entonces, ¿puede?

Casi. A finales de 2026, un modelo de 3–4B en un portátil aguanta una llamada y usa bien las herramientas la mayoría de las veces. Tarda unos 2 segundos en contestar, frente a 1,3 de la nube, y unos 5 cuando tiene que encadenar dos herramientas. El montaje que mejor funcionó fue:

  • HF speech-to-speech como servidor, con Parakeet para la voz a texto y Qwen3-TTS para la voz;
  • Ministral 3 3B o Qwen3-4B-Instruct-2507, a 4 bits, en llama-server y sin pensamiento.

Para llamadas sobre cosas que importan, como una caída en producción o una alerta de seguridad, seguiríamos usando un modelo en la nube: Grok Voice para llamadas con muchas herramientas, o Gemini Live para empezar gratis. Lo local es buena opción si te importan más la privacidad o el coste que ese último segundo.

Para probarlo con agentring en tu servidor, arranca el servidor local y elígelo como voz: agentring call "…" --ai --provider local. agentring voice bench --provider local pasa esta misma prueba en tu máquina (los pasos completos, en la documentación de voz, en inglés).

Limitaciones

Es una prueba pequeña: cuatro prompts en español, tres sesiones por montaje, dichos por la voz sintética de macOS y en un solo Mac. El servidor de HF se cayó una vez durante la tanda de Ministral, así que repetimos aparte su prompt de la herramienta lenta (3/3). Los modelos locales y sus motores cambian cada pocas semanas, y un Mac más rápido o una GPU dedicada moverían todos estos números. Toma los resultados como una foto del momento y prueba con tus propios prompts si la elección te importa.

Deja que tu agente te llame. Gratis para empezar, código abierto por debajo.