iOS 26 não matou o vocabulário personalizado — você está adicionando-o ao módulo errado
Esta página é uma tradução automática do original em inglês. Ler o original em inglês
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.
| Necesssidade | Módulo para avaliar primeiro | Por que |
|---|---|---|
| Conversa geral / transcrição de formato longo | SpeechTranscriber | Apple o descreve como o módulo de fala para texto de propósito geral. |
| ditado curto com nomes ou termos específicos do aplicativo | DictationTranscriber | Apple documenta explicitamente o AnalysisContext.contextualStrings com este módulo. |
| Pronúncia personalizada / modelo de idioma | DictationTranscriber | Ele 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.
- Teste se o
DictationTranscriberse encaixa na duração, latência, localidade e alcance do dispositivo que você precisa. - Se você precisa de um vocabulário mais rico, avalie sua opção de modelo de linguagem personalizada.
- Se nenhum dos novos caminhos do módulos preservar o comportamento do qual seu produto depende, mantenha o caminho
SFSpeechRecognizercomprovado 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).