INTELIGENCIA ARTIFICIAL. CRITERIO HUMANO.Un paso adelante, cada día ↗
Herramientas
Lectura accesible · Para empezar

Hugging Face presenta AnySpeechRecognizer y AnyDecisionModel: reconocimiento de voz y decisiones con IA local en Swift

Hugging Face anuncia dos paquetes Swift de código abierto para incorporar transcripción de voz, identificación de hablantes y decisiones basadas en probabilidades a aplicaciones. AnySpeechRecognizer integra modelos como Parakeet y Qwen3-ASR, mientras que AnyDecisionModel permite obtener respuestas estructuradas mediante distintos motores de inferencia.

Ilustración editorial: Hugging Face presenta AnySpeechRecognizer y AnyDecisionModel: reconocimiento de voz y decisiones con IA local en Swift

Lo esencial

Hugging Face anuncia dos paquetes Swift de código abierto para incorporar transcripción de voz, identificación de hablantes y decisiones basadas en probabilidades a aplicaciones. AnySpeechRecognizer integra modelos como Parakeet y Qwen3-ASR, mientras que AnyDecisionModel permite obtener respuestas estructuradas mediante distintos motores de inferencia.

  • Hugging Face anuncia AnySpeechRecognizer y AnyDecisionModel, dos paquetes Swift abiertos para ejecutar modelos de IA en el dispositivo y utilizar distintos motores de inferencia.
  • AnySpeechRecognizer integra la API SpeechAnalyzer de Apple con Parakeet y Qwen3-ASR, además de ofrecer diarización de hasta cuatro hablantes mediante Sortformer.
  • En LibriSpeech, Parakeet Unified obtuvo tasas de error del 1,43% en test-clean y del 2,19% en test-other durante la transcripción desde archivos.
  • AnyDecisionModel permite responder preguntas de sí/no, seleccionar alternativas y generar valoraciones mediante probabilidades, con resultados tipados.
  • Emoji Magnet demuestra el procesamiento de 343 decisiones con Jev alojado o Qwen3 4B local mediante MLX, con tiempos de aproximadamente medio segundo y 10 segundos, respectivamente.
  • Los paquetes requieren Swift 6.2 o posterior y macOS 26 o iOS 26 o posterior; AnyDecisionModel ofrece seis backends, incluidos MLX, Core AI, llama.cpp, Jev y Ollama.

Hugging Face ha anunciado AnySpeechRecognizer y AnyDecisionModel, dos paquetes Swift abiertos que facilitan la integración de modelos de inteligencia artificial en aplicaciones. Ambos permiten acceder a modelos abiertos del Hugging Face Hub y ejecutarlos directamente en el dispositivo, ampliando la línea de herramientas que incluye AnyLanguageModel y swift-huggingface 1.x.

Los paquetes abordan dos necesidades diferentes. AnySpeechRecognizer permite convertir audio en texto, utilizar distintos motores de reconocimiento y distinguir hablantes. AnyDecisionModel se centra en responder preguntas cerradas, seleccionar opciones y asignar puntuaciones mediante probabilidades calculadas por modelos de IA.

El anuncio se publicó el 29 de octubre de 2026 en el blog oficial de Hugging Face.

AnySpeechRecognizer: una interfaz para varios motores de transcripción

AnySpeechRecognizer implementa la API SpeechAnalyzer introducida por Apple en macOS 26 e iOS 26. Esta interfaz reúne componentes como SpeechTranscriber, DictationTranscriber, SpeechDetector y AssetInventory.

La diferencia principal es que permite seleccionar el modelo de reconocimiento de voz sin abandonar la API compartida.

El motor predeterminado sigue siendo el de Apple, pero también es posible utilizar modelos ejecutados localmente mediante Core ML:

  • NVIDIA Parakeet v3.
  • Parakeet Ultra de Moondream.
  • Parakeet Unified, especializado en inglés.
  • Alibaba Qwen3-ASR.

Para aplicaciones que ya utilizan la API compartida, el cambio puede limitarse a sustituir la importación de Speech por AnySpeechRecognizer.

La selección de Parakeet se realiza al crear el transcriptor. Por ejemplo:

SpeechTranscriber(model: ParakeetSpeechModel(variant: .v3))

Parakeet y Qwen3-ASR: capacidades y diferencias

Parakeet v3 reconoce 25 idiomas europeos e identifica automáticamente el idioma utilizado.

Qwen3-ASR, desarrollado por Alibaba, está disponible en variantes de 0.6B y 1.7B. Admite 30 idiomas y 22 dialectos chinos, con cobertura que incluye mandarín, cantonés, japonés y coreano.

Qwen3-ASR procesa segmentos de hasta 40 segundos y produce un resultado definitivo para cada uno. Su funcionamiento prescinde de resultados intermedios cambiantes, tiempos por palabra y valores de confianza.

Este modelo utiliza la GPU y presenta una velocidad de procesamiento menor, por lo que se adapta mejor a la transcripción de archivos que al reconocimiento en directo.

Característica Parakeet v3 Qwen3-ASR
Cobertura lingüística 25 idiomas europeos 30 idiomas y 22 dialectos chinos
Identificación automática del idioma Sí Sí, o se puede fijar un idioma
Variantes indicadas v3 0.6B y 1.7B
Procesamiento por segmento — Hasta 40 segundos
Uso destacado Archivos y procesamiento en vivo Transcripción de archivos

Identificación de hablantes con SpeakerDiarizer

AnySpeechRecognizer también incorpora diarización de hablantes, una capacidad que permite determinar quién interviene en una conversación.

El componente SpeakerDiarizer utiliza NVIDIA Streaming Sortformer, ejecutado mediante Core ML, para identificar hasta cuatro hablantes, incluso cuando varias personas hablan simultáneamente.

A su vez, SpeakerTimeline asigna cada palabra con información temporal al hablante correspondiente.

Esta funcionalidad amplía las posibilidades de SpeechAnalyzer, ya que el framework de Apple no incorpora diarización de hablantes.

Tamaños y licencias de los modelos

Los modelos convertidos a Core ML están publicados en Hugging Face Hub con sus respectivas licencias. Sus descargas se realizan cuando una aplicación solicita utilizarlos.

Modelo o componente Tamaño aproximado de descarga Licencia
Parakeet v3 600 MB CC BY 4.0
Parakeet Ultra 600 MB CC BY 4.0
Codificador para procesamiento en vivo de Parakeet 590 MB adicionales —
Parakeet Unified 600 MB NVIDIA Open Model License
Qwen3-ASR 0,9-2,4 GB Apache 2.0
Sortformer 250 MB CC BY 4.0 / NVIDIA Open Model License

Los runtimes de Parakeet y Sortformer requieren Apple silicon.

Rendimiento de transcripción: Parakeet frente al motor de Apple

Hugging Face presenta mediciones obtenidas con hear, una herramienta de línea de comandos que permite transcribir archivos locales, identificar hablantes y evaluar resultados.

Las mediciones se realizaron en un Mac Studio con chip M4 Max y macOS 27.0.1, utilizando grabaciones de LibriSpeech de entre tres y ocho minutos.

La métrica utilizada es la tasa de error de palabra, o WER, que expresa el porcentaje de errores durante la transcripción.

Comparación de tasas de error

Motor Archivo test-clean Archivo test-other En vivo test-clean En vivo test-other
Parakeet v3 1,55% 2,78% 4,73% 4,29%
Parakeet Ultra 1,66% 2,55% 2,65% 3,28%
Parakeet Unified 1,43% 2,19% 1,45% 2,42%
Transcriptor de Apple 2,12% 3,97% — —

En el procesamiento de archivos, Parakeet Unified registra la menor tasa de error de los modelos comparados, con un 1,43% en test-clean y un 2,19% en test-other.

También obtiene los valores más bajos en las mediciones en vivo de Parakeet, con un 1,45% y un 2,42%, respectivamente.

Velocidad, memoria y conversaciones con solapamientos

Parakeet puede procesar una hora de audio en aproximadamente 20 a 40 segundos cuando trabaja con archivos.

En la modalidad de procesamiento en vivo, el tiempo indicado para una hora de audio es de entre 1,5 y 2,5 minutos.

Modalidad Tiempo para procesar una hora de audio
Parakeet desde archivo 20-40 segundos
Parakeet en vivo 1,5-2,5 minutos

Una vez compilado el modelo en Core ML, el consumo de memoria comunicado es de aproximadamente 100 MB.

El comportamiento cambia en conversaciones con intervenciones simultáneas. En grabaciones del conjunto AMI que contienen solapamientos entre hablantes, todos los motores analizados registraron tasas de error superiores al 23%.

La herramienta hear

El paquete incluye hear, una utilidad de línea de comandos destinada a la transcripción de archivos, el etiquetado de hablantes y la evaluación de resultados.

Cada comando requiere seleccionar explícitamente un backend mediante una de estas opciones:

  • --backend apple
  • --backend parakeet
  • --backend qwen

Antes de realizar el análisis se utiliza hear prepare con las mismas opciones de backend.

AnyDecisionModel: respuestas estructuradas a partir de probabilidades

El segundo paquete anunciado por Hugging Face es AnyDecisionModel, una biblioteca Swift que permite utilizar modelos de inteligencia artificial para responder preguntas con un conjunto definido de posibles respuestas.

En lugar de solicitar al modelo que redacte una respuesta en lenguaje natural, la biblioteca calcula probabilidades y devuelve resultados tipados.

Admite tres clases de decisiones:

  • Preguntas de sí o no: evalúan la probabilidad de una respuesta afirmativa.
  • Selección de opciones: permiten escoger entre alternativas definidas.
  • Escalas de valoración: asignan una respuesta entre distintos niveles.

La biblioteca puede trabajar con modelos ejecutados en el dispositivo mediante MLX, Core AI o llama.cpp, y también con motores de decisión de Jev u Ollama.

Un ejemplo de clasificación de tickets

Uno de los ejemplos presentados utiliza un ticket de soporte con el siguiente contenido:

"I was charged twice for my order, and now the app logs me out when I try to ask for a refund."

El ejemplo define Department como una enumeración conforme a Choosable, con tres alternativas: billing, technical y sales.

Una DecisionSession recibe el texto del ticket y permite formular distintas preguntas sobre ese mismo contenido.

Para evaluar si el mensaje expresa urgencia:

probability(of: "Does this convey urgency?")

Para seleccionar el equipo responsable:

choice("Which team?", from: Department.self)

Para evaluar el nivel de frustración:

score("How frustrated?", levels: ["Calm", "Frustrated", "Very angry"])

La sesión conserva un único estado, representado como texto o JSON, y cada pregunta se procesa de manera independiente.

Cómo calcula las respuestas

En los backends basados en predicción del siguiente token, AnyDecisionModel construye un prompt que asigna una etiqueta de un solo token a cada respuesta permitida.

El modelo realiza una pasada de inferencia y la biblioteca obtiene la probabilidad asociada a cada etiqueta.

Este mecanismo permite convertir las probabilidades del modelo en resultados estructurados.

Las selecciones admiten hasta 26 alternativas, mientras que las escalas de puntuación pueden contener un máximo de 10 niveles.

Emoji Magnet: un ejemplo con 343 decisiones

Hugging Face también presenta Emoji Magnet, una aplicación para macOS que utiliza AnyDecisionModel para relacionar texto con emojis.

La aplicación trabaja con 343 emojis sin recurrir a reglas basadas en palabras clave.

Con el backend Jev alojado, las 343 preguntas se envían en una única solicitud. Los emojis se posicionan en aproximadamente medio segundo por frase.

Cuando no está definida la clave TYPESAFE_AI_API_KEY, la aplicación utiliza Qwen3 4B ejecutado localmente con MLX.

En esta modalidad, procesa 16 preguntas por pasada. En un M4 Max, cada grupo requiere aproximadamente 0,45 segundos y el procesamiento completo tarda alrededor de 10 segundos.

Característica Jev alojado Qwen3 4B local con MLX
Número de preguntas 343 343
Preguntas por solicitud o pasada 343 16
Tiempo comunicado Aproximadamente 0,5 segundos por frase Aproximadamente 0,45 segundos por grupo de 16
Tiempo del procesamiento completo — Aproximadamente 10 segundos
Ejecución Backend alojado Local con MLX

Modelos especializados: Clef y MLXHeadDecisionModel

AnyDecisionModel también admite modelos que incorporan una cabeza de decisión entrenada específicamente para producir resultados de este tipo.

Entre ellos se encuentra Clef de Cloudflare, incluida su variante Clef-Flash 9B.

La biblioteca proporciona MLXHeadDecisionModel, que permite utilizar el modelo mlx-community/clef-flash-4bit.

La descarga ocupa 6,2 GB y la tarjeta del modelo recomienda un Mac con al menos 16 GB de memoria.

Aunque Clef puede procesar imágenes y video, la integración mediante MLXHeadDecisionModel acepta estados de texto y JSON.

Calibración de probabilidades y medición de confianza

AnyDecisionModel incorpora mecanismos para ajustar e interpretar las probabilidades devueltas por los modelos.

Los backends locales admiten Calibration, que permite aplicar ajustes de temperatura y sesgo en preguntas de sí o no.

También incluyen rotationDebiasing, un mecanismo que repite una pregunta con distintas rotaciones del orden de sus opciones y calcula el promedio de las probabilidades obtenidas.

Este procedimiento requiere una evaluación por cada rotación.

Por otra parte, la confianza se calcula mediante entropía. Esta medida expresa qué tan concentradas están las probabilidades entre las respuestas disponibles, y no determina por sí misma si una respuesta es correcta.

Seis backends para integrar modelos de decisión

AnyDecisionModel ofrece seis alternativas para ejecutar las consultas, tanto con modelos locales como con servicios externos.

Backend Características y requisitos
MLX Ejecución local mediante MLX
MLX decision heads Compatibilidad con modelos que incorporan cabezas de decisión
Core AI Disponible en macOS 27 e iOS 27
llama.cpp Ejecución de modelos GGUF locales
Jev API System One de TypeSafe o servidor compatible, como Kev
Ollama Requiere Ollama 0.35.0 o posterior; para modelos en la nube, 0.40.5 o posterior

Sin activar traits, AnyDecisionModel proporciona los tipos centrales y los backends Jev y Ollama, sin incorporar dependencias de terceros. Esta configuración también compila en Linux.

Los backends locales se habilitan mediante los traits MLX, CoreAI o Llama.

Requisitos y dependencias de los paquetes

Ambos proyectos requieren Swift 6.2 o posterior y macOS 26 o iOS 26 o versiones posteriores.

Los runtimes Parakeet y Sortformer, así como el backend MLX, necesitan dispositivos con Apple silicon.

Referencias de instalación en Package.swift

Las dependencias indicadas para los paquetes son:

AnySpeechRecognizer:

.package(url: "https://github.com/mattt/AnySpeechRecognizer", from: "0.1.0")

AnyDecisionModel con el trait MLX:

.package(url: "https://github.com/mattt/AnyDecisionModel", from: "0.6.0", traits: ["MLX"])

Compatibilidad entre Core AI y AnySpeechRecognizer

Existe una incompatibilidad actual al combinar el trait CoreAI de AnyDecisionModel con AnySpeechRecognizer.

La causa está en las versiones requeridas de swift-huggingface: coreai-kit 0.7.3 necesita una versión anterior a 1.0, mientras que AnySpeechRecognizer depende de la línea 1.x.

Esta diferencia impide utilizar ambas configuraciones conjuntamente.

Hugging Face en contexto

AnySpeechRecognizer y AnyDecisionModel forman parte de la línea de herramientas Swift abiertas de Hugging Face, junto con AnyLanguageModel y swift-huggingface 1.x. Los proyectos amplían esa familia con capacidades de reconocimiento de voz, diarización y decisiones basadas en probabilidades.

Fuentes

✳

Una idea más. Un paso adelante.

Sigue aprendiendo

También te puede interesar

Buscar en Aitualizate

Artículos, herramientas, prompts y código en una sola búsqueda.

Escribe al menos dos caracteres. Puedes buscar sin tildes.

Explora:GuíasHerramientasPrompts