O vocabulário personalizado não desapareceu da nova pilha SpeechAnalyzer do Apple. O detalhe importante é a escolha do módulo. Apple documenta AnalysisContext.contextualStrings especificamente com DictationTranscriber. Se você está construindo em torno de SpeechTranscriber, não assuma que anexar o mesmo contexto lhe dá o mesmo comportamento de vocabulário.

Versão curta: escolha DictationTranscriber quando as frases contextuais fizerem parte do seu design de reconhecimento. Mantenha a lista curta, mantenha as frases breves e trate-as como dicas tendenciosas em vez de substituições garantidas.

Existem dois módulos de transcrição — e eles não são intercambiáveis

A estrutura de fala do iOS 26 torna a transcrição modular. SpeechTranscriber é o transcritor de uso geral do Apple para conversas normais. O DictationTranscriber está mais próximo do ditado do sistema e expõe controles de precisão adicionais.

NecesssidadeMódulo para avaliar primeiroPor que
Conversa geral / transcrição de formato longoSpeechTranscriberApple o descreve como o módulo de fala para texto de propósito geral.
ditado curto com nomes ou termos específicos do aplicativoDictationTranscriberApple documenta explicitamente o AnalysisContext.contextualStrings com este módulo.
Pronúncia personalizada / modelo de idiomaDictationTranscriberEle também expõe uma dica de conteúdo de idioma personalizado apoiada por SFSpeechLanguageModel.

Como contextualStrings realmente funciona

AnalysisContext.contextualStrings é um dicionário agrupado por tags de string contextuais. Apple diz que essas palavras ou frases podem ser usadas com DictationTranscriber para melhorar a probabilidade de que nomes, produtos, lugares, terminologia de domínio ou palavras incomuns específicos de aplicativos sejam reconhecidos.

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

try await analyzer.setContext(context)

Três limites importam na prática:

  • Mantenha as frases breves. Apple recomenda uma ou duas palavras sempre que possível.
  • Mantenha o total em 100 frases ou menos em todas as tags.
  • Estas são dicas, não garantias. O reconhecimento viés API; não promete uma transcrição exata.

setContext substitui o contexto — ele não se anexa

SpeechAnalyzer.setContext(_:) substitui o objeto de contexto atual do analisador. Se você quiser preservar frases anteriores ao adicionar um novo grupo, construa o novo contexto completo que deseja usar e defina-o.

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

Isso também torna as tags úteis: você pode manter categorias em seu próprio estado e reconstruir o contexto deliberadamente, em vez de tratar chamadas setContext repetidas como adições incrementais.

E quanto ao SpeechTranscriber?

A documentação atual do Apple para SpeechTranscriber não documenta o contextualStrings como um dos controles de precisão desse módulo. Por outro lado, a documentação do DictationTranscriber diz explicitamente aos desenvolvedores para criar um AnalysisContext e adicionar palavras ao contextualStrings.

Essa distinção é o limite de implementação segura: não projete um pipeline SpeechTranscriber em torno do vocabulário contextual, a menos que você tenha verificado de forma independente o comportamento exato que você precisa no seu sistema operacional, localidade e dispositivo de destino.

Se você precisar de vocabulário em discurso longo hoje

Não existe uma regra de migração universal. Se o seu caminho SFSpeechRecognizer existente já depende do contextualStrings, a mudança para iOS 26 deve ser tratada como um exercício de seleção de módulo e teste de regressão, em vez de uma renomeação mecânica de API.

  1. Teste se o DictationTranscriber se encaixa na duração, latência, localidade e alcance do dispositivo que você precisa.
  2. Se você precisa de um vocabulário mais rico, avalie sua opção de modelo de linguagem personalizada.
  3. Se nenhum dos novos caminhos do módulos preservar o comportamento do qual seu produto depende, mantenha o caminho SFSpeechRecognizer comprovado para esse caso de uso enquanto você migra outros caminhos separadamente.

Regra de decisão mínima

Conversa-first: comece com SpeechTranscriber. Vocabulário-first: comece avaliando DictationTranscriber. Se o vocabulário for crítico, meça o reconhecimento nas palavras e locais reais que você envia, em vez de assumir a paridade entre os módulos.

Guia de implementação relacionado

Para o pipeline de microfone ao vivo — ativos do modelo, conversão de PCM, resultados voláteis vs finais, comportamento de parada/finalização e concorrência Swift 6 — consulte o guia completo do iOS 26 SpeechAnalyzer ao vivo. A amostra executável está em GitHub (MIT).

Fontes primárias