AnySpeechRecognizer: voz open source en apps Apple

Dos paquetes Swift que le quitan a Apple el monopolio de la voz en sus propias plataformas

AnySpeechRecognizer implementa la API de speech-to-text que Apple introdujo en macOS 26 y iOS 26, pero permite cambiar el motor de reconocimiento. En lugar de depender solo del motor de Apple, puedes correr NVIDIA Parakeet o Alibaba Qwen3-ASR localmente sobre Core ML, con diarización de hablantes incluida.

El segundo paquete, AnyDecisionModel, ataca otro problema: responder preguntas de sí/no, opción múltiple y escala con resultados tipados y probabilidades, en lugar de generar texto y parsearlo. Ambos descargan modelos abiertos desde el Hugging Face Hub y los ejecutan en el dispositivo.

Para un founder que construye producto sobre Apple, esto importa por una razón concreta: hasta ahora, si querías transcripción en tu app, tenías un solo proveedor y cero control sobre el modelo. Ahora hay elección, y la elección viene con números.

Leíste lo que hace la IA. ¿Y en tu negocio?

Un agente de IA puede quedarse con parte de tu día: ordenar lo pendiente y pedirte el OK antes de actuar. El Kit «tu mano derecha con IA» trae un video de 11 minutos y una ficha para dejar al tuyo trabajando. CAR está cerrada por ahora; al anotarte, te avisamos cuando abra.

👥 Quiero el Kit →

¿Qué es AnySpeechRecognizer y qué cambia frente a la API de Apple?

La API nativa de Apple es SpeechAnalyzer. Le agregas módulos como SpeechTranscriber y SpeechDetector, le entregas un archivo o un stream de buffers de audio, y lees resultados desde secuencias asíncronas. AssetInventory se encarga de instalar los modelos, así que tu app decide cuándo ocurren las descargas.

El paquete espeja esa superficie —SpeechAnalyzer, SpeechTranscriber, DictationTranscriber, SpeechDetector y AssetInventory— con el framework de Apple como motor por defecto. Si tu código ya usa esa API compartida, cambiar el import es suficiente para migrar. Para usar Parakeet, solo cambias cómo creas el transcriber; los pasos de instalación de assets, ejecución del analizador y lectura de resultados quedan iguales.

Esa decisión de diseño es la parte inteligente: no te obliga a reescribir tu app para probar otro motor. Es la diferencia entre una migración de semanas y un cambio de una línea.

¿Qué motores de reconocimiento de voz puedes elegir?

Hay dos familias, y no compiten por el mismo caso de uso.

  • Parakeet v3 es el Parakeet TDT 0.6B v3 de NVIDIA. Es políglota: reconoce 25 idiomas europeos y detecta cuál está escuchando, así que no necesitas pasarle un locale.
  • Parakeet Ultra es la versión post-entrenada de Moondream sobre v3, y fue más precisa en la mayoría de las mediciones del equipo.
  • Parakeet Unified es el Parakeet de NVIDIA solo para inglés.
  • Qwen3-ASR es el modelo de Alibaba, en tamaños de 0.6B y 1.7B. Reconoce 30 idiomas y 22 dialectos chinos, incluidos mandarín, cantonés, japonés y coreano, que Parakeet no cubre.

Los tres Parakeet corren sobre el runtime propio de Core ML del paquete, con soporte para entrada de archivo y en vivo, resultados volátiles, timing por palabra y confianza por palabra. Qwen3-ASR entrega un resultado final por segmento de hasta 40 segundos, sin resultados volátiles, timing ni confianza. Corre en la GPU y es más lento, así que encaja mejor transcribiendo archivos que en vivo.

El antecedente del sector ayuda a dimensionar por qué estos modelos son noticia. Según Geeky Gadgets, Parakeet v2 —el modelo de 600 millones de parámetros que NVIDIA entrenó con 120.000 horas de audio en inglés— transcribe 26 minutos de audio en unos 25 segundos. La generación que ahora llega a Core ML mantiene esa filosofía: modelos chicos, rápidos y baratos de correr.

¿Cómo rinden de verdad? Los números de error medidos

El equipo midió el paquete con su herramienta de línea de comandos hear, en un M4 Max Mac Studio con macOS 27.0.1, sobre archivos LibriSpeech de 3 a 8 minutos. Estas son las tasas de error por palabra (WER):

  • Parakeet v3, archivo: 1,55% en test-clean y 2,78% en test-other.
  • Parakeet v3, en vivo: 4,73% y 4,29%.
  • Parakeet Ultra, archivo: 1,66% y 2,55%.
  • Parakeet Ultra, en vivo: 2,65% y 3,28%.
  • Parakeet Unified, archivo: 1,43% y 2,19%.
  • Parakeet Unified, en vivo: 1,45% y 2,42%.
  • Transcriber de Apple, archivo: 2,12% y 3,97%.

Parakeet transcribe una hora de audio en unos 20 a 40 segundos desde archivo, o entre 1,5 y 2,5 minutos en vivo, con cerca de 100 MB de memoria una vez que Core ML compila el modelo. Qwen3-ASR es bastante más lento y necesita varios gigabytes de memoria.

Hay un dato que conviene leer con atención: en grabaciones AMI, donde la gente se pisa al hablar, todos los motores probados superaron el 23% de WER. Las reuniones siguen siendo difíciles para todos. Y el propio equipo advierte que estos números salen de una sola máquina y unos pocos datasets, así que la recomendación es medir con tu hardware y tu audio.

¿Qué aporta la diarización de hablantes?

Cuando transcribes una conversación, normalmente quieres saber quién dijo qué. Eso es la diarización de hablantes, y el framework de Apple no tiene un módulo para hacerlo, así que AnySpeechRecognizer agrega uno.

SpeakerDiarizer corre el Streaming Sortformer de NVIDIA sobre Core ML junto a un transcriber de Apple o Parakeet, en la misma línea de tiempo. Rastrea hasta cuatro hablantes, incluso cuando se solapan. Un SpeakerTimeline recolecta los resultados y atribuye cada palabra con timing a un hablante, para que puedas imprimir la transcripción por turnos.

Usa Sortformer v2 por defecto. También puedes elegir v2.1, que NVIDIA entrenó con más datos de reuniones y que fue más preciso en reuniones en las mediciones del equipo.

¿Qué significa esto para tu startup?

Si construyes sobre Apple, este anuncio te da margen de maniobra que antes no tenías. Tres cosas concretas para hacer esta semana:

  • Mide antes de decidir. El paquete incluye hear evaluate, que corre sobre tus propios archivos. No adoptes un motor por el WER de un benchmark ajeno: el dato que importa es el tuyo, con tu acento, tu ruido y tu vocabulario técnico.
  • Elige el motor según el caso de uso, no según el ranking. Parakeet Unified gana en inglés y en velocidad; Qwen3-ASR cubre idiomas que Parakeet no toca, pero es más lento y pesado. Si tu producto es en vivo, el encoder de 8 segundos para input en vivo reduce el tiempo de análisis cerca de un tercio, a costa de un WER algo mayor.
  • Planifica el peso de las descargas. Cada Parakeet pesa unos 600 MB, más unos 590 MB del encoder en vivo; Qwen3-ASR va de 0,9 a 2,4 GB; Sortformer, unos 250 MB. Los archivos van al cache estándar de Hugging Face, así que una app de Mac fuera del sandbox los comparte con Python y otras herramientas.

¿Cuándo conviene un modelo de decisión en vez de un LLM?

La segunda mitad del anuncio es más sutil. Las apps suelen pedirle decisiones a un modelo de lenguaje: ¿este mensaje es urgente?, ¿qué equipo debería atender este ticket?, ¿qué tan frustrado está este cliente? El enfoque habitual es hacer un prompt y parsear el texto generado. Eso te da una respuesta, pero no las probabilidades que el modelo asignó a las alternativas.

AnyDecisionModel deriva cada respuesta de las probabilidades del modelo en lugar de generar texto. El resultado es tipado: una pregunta de sí/no devuelve un Double, una de opción múltiple devuelve el caso elegido con una probabilidad por opción y un valor de confianza, y una de escala devuelve el nivel esperado con sus probabilidades.

El paquete tiene seis backends: MLX, cabezas de decisión MLX (como Clef de Cloudflare), Core AI, llama.cpp, Jev y Ollama. Los backends de next-token etiquetan las respuestas como sí/no, A a Z o 0 a 9, así que una elección admite como máximo 26 opciones y una escala, 10 niveles. Las cabezas de decisión no tienen ese límite.

Dos detalles que evitan errores caros en producción: las probabilidades crudas de los modelos de lenguaje suelen ser sobreconfiadas, así que los backends locales aceptan una Calibration que aplica temperatura y sesgo. Y los modelos pueden favorecer una opción por su posición en la lista, así que puedes activar rotationDebiasing para preguntar una vez por cada rotación y promediar.

Conclusión

La jugada de fondo es clara: Apple abrió una API de voz en macOS 26 y iOS 26, y la comunidad la convirtió en una capa intercambiable. Para un founder, eso significa que la transcripción deja de ser una dependencia cerrada y pasa a ser una decisión de arquitectura con alternativas medidas.

El paquete está en versión 0.1.0 y el equipo aclara que solo probó en macOS 27, no en iPhone. Requiere Swift 6.2 o superior y macOS 26 o iOS 26 o superior; los runtimes de Parakeet y Sortformer y el backend MLX necesitan Apple silicon. Si tu producto depende de voz o de decisiones clasificadas, vale la pena probarlo ahora, cuando el costo de cambiar de motor todavía es una línea de código.

Fuentes

Leíste lo que hace la IA. ¿Y en tu negocio?

Un agente de IA puede quedarse con parte de tu día: ordenar lo pendiente y pedirte el OK antes de actuar. El Kit «tu mano derecha con IA» trae un video de 11 minutos y una ficha para dejar al tuyo trabajando. CAR está cerrada por ahora; al anotarte, te avisamos cuando abra.

👥 Quiero el Kit →

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

📡 El Daily Shot Startupero

Noticias del ecosistema startup en 2 minutos. Gratis, todos los días.

Share to...