El vocabulario personalizado no desapareció de la nueva pila SpeechAnalyzer de Apple. El detalle importante es la elección del módulo. Apple documentos AnalysisContext.contextualStrings específicamente con DictationTranscriber. Si estás construyendo en torno a SpeechTranscriber, no asumas que adjuntar el mismo contexto te da el mismo comportamiento de vocabulario.

Versión corta: elija DictationTranscriber cuando las frases contextuales sean parte de su diseño de reconocimiento. Mantenga la lista corta, mantenga las frases breves y trátelas como sugerencias sesgadas en lugar de reemplazos garantizados.

Hay dos módulos de transcripción, y no son intercambiables

El marco de voz de iOS 26 hace que la transcripción sea modular. SpeechTranscriber es el transcriptor de propósito general de Apple para conversaciones normales. DictationTranscriber está más cerca del dictado del sistema y expone controles de precisión adicionales.

NecesidadMódulo para evaluar primeroPor qué
Conversación general / transcripción de formato largoSpeechTranscriberApple lo describe como el módulo de voz a texto de propósito general.
Dictado corto con nombres o términos específicos de la aplicaciónDictationTranscriberApple documenta explícitamente AnalysisContext.contextualStrings con este módulo.
Pronunciación personalizada / modelo de lenguajeDictationTranscriberTambién expone una pista de contenido de idioma personalizado respaldada por SFSpeechLanguageModel.

Cómo funciona realmente contextualStrings

AnalysisContext.contextualStrings es un diccionario agrupado por etiquetas de cadena contextual. Apple dice que estas palabras o frases se pueden usar con DictationTranscriber para mejorar la probabilidad de que se reconozcan nombres, productos, lugares, terminología de dominio o palabras inusuales específicos de la aplicación.

let context = AnalysisContext()
context.contextualStrings[.general] = [
    "Simple Memo",
    "Obsidian",
    "SpeechAnalyzer"
]

try await analyzer.setContext(context)

Tres límites importan en la práctica:

  • Mantén las frases breves. Apple recomienda una o dos palabras siempre que sea posible.
  • Mantener el total en 100 frases o menos en todas las etiquetas.
  • Estas son pistas, no garantías. El API sesga el reconocimiento; no promete una transcripción exacta.

setContext reemplaza el contexto — no se añade

SpeechAnalyzer.setContext(_:) reemplaza el objeto de contexto actual del analizador. Si desea conservar las frases anteriores al agregar un nuevo grupo, construya el nuevo contexto completo que desea usar y confártelo.

let next = AnalysisContext()
next.contextualStrings[.general] = baseTerms + currentScreenTerms
try await analyzer.setContext(next)

Esto también hace que las etiquetas sean útiles: puede mantener categorías en su propio estado y reconstruir el contexto deliberadamente en lugar de tratar llamadas repetidas de setContext como adiciones incrementales.

¿Qué pasa con SpeechTranscriber?

La documentación actual de Apple para SpeechTranscriber no documenta contextualStrings como uno de los controles de precisión de ese módulo. Por el contrario, la documentación de DictationTranscriber le dice explícitamente a los desarrolladores que creen un AnalysisContext y agreguen palabras a contextualStrings.

Esa distinción es el límite de implementación segura: no diseñe una canalización SpeechTranscriber en torno al vocabulario contextual a menos que haya verificado de forma independiente el comportamiento exacto que necesita en su sistema operativo, configuración regional y dispositivo de destino.

Si necesitas vocabulario en forma de habla larga hoy

No hay una regla de migración universal. Si su ruta SFSpeechRecognizer existente ya depende de contextualStrings, pasar a iOS 26 debe tratarse como un ejercicio de selección de módulos y pruebas de regresión en lugar de un renombramiento mecánico de API.

  1. Pruebe si DictationTranscriber se ajusta a la duración, la latencia, la configuración regional y el rango de dispositivo que necesita.
  2. Si necesita un vocabulario más rico, evalúe su opción de modelo de lenguaje personalizado.
  3. Si ninguna de las rutas del nuevo módulo conserva el comportamiento del que depende su producto, mantenga la ruta SFSpeechRecognizer probada para ese caso de uso mientras migra otras rutas por separado.

Regla de decisión mínima

Conversación primero: comience con SpeechTranscriber. Vocabulario primero: comience evaluando DictationTranscriber. Si el vocabulario es crítico, mida el reconocimiento de las palabras reales y las ubicaciones que envía en lugar de asumir la paridad entre los módulos.

Guía de implementación relacionada

Para la canalización de micrófonos en vivo: activos de modelo, conversión de PCM, resultados volátiles frente a finales, comportamiento de parada/finalización y concurrencia de Swift 6, consulte la guía completa de micrófono en vivo iOS 26 SpeechAnalyzer. La muestra ejecutable está en GitHub (MIT).

Fuentes primarias