自定義詞彙沒有從Apple的新SpeechAnalyzer堆疊中消失。重要的細節是模組選擇。 Apple專門用DictationTranscriber記錄AnalysisContext.contextualStrings。 如果您是圍繞SpeechTranscriber構建的,不要假設附加相同的上下文會為您提供相同的詞彙行為。

簡短版本:當上下文短語是您識別設計的一部分時,請選擇DictationTranscriber。 保持列表簡短,保持短語簡短,並將它們視為有偏見的暗示,而不是保證的替換。

有兩個轉錄模組——它們不能互換

iOS 26的語音框架使轉錄變得模組化。 SpeechTranscriber是Apple的通用轉錄器,用於正常對話。 DictationTranscriber更接近系統聽寫,並暴露了額外的準確性控制。

需要首先評估模組為什麼
一般對話/長篇轉錄SpeechTranscriberApple將其描述為通用的語音轉文字模組。
帶有特定於應用程式的名稱或術語的簡短聽寫DictationTranscriberApple 明確記錄了帶有此模組的 AnalysisContext.contextualStrings。
自定義發音/語言模型DictationTranscriber它還暴露了由SFSpeechLanguageModel支援的定製語言內容提示。

contextStrings的實際工作方式

AnalysisContext.contextualStrings是一個按上下文字串標籤分組的字典。 Apple表示,這些單詞或短語可以與DictationTranscriber一起使用,以提高識別特定於應用程式的名稱、產品、地點、域術語或不尋常的單詞的可能性。

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

try await analyzer.setContext(context)

三個限制在實踐中很重要:

  • 保持短語簡短。 Apple儘可能推薦一個或兩個單詞。
  • 在所有標籤中將總數保持在100或更少的短語。
  • 這些是提示,不是保證。API有偏見的識別;它不承諾精確的轉錄。

setContext替換上下文——它不附加

SpeechAnalyzer.setContext(_:)替換分析器的當前上下文物件。 如果您想在新增新組時保留早期的短語,請構建要使用的完整新上下文並進行設定。

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

這也使標籤變得有用:您可以在自己的狀態下保持類別,並有意識地重建上下文,而不是將重複的setContext呼叫視為增量新增。

SpeechTranscriber怎麼樣?

Apple 的 SpeechTranscriber 當前檔案未將 contextualStrings 記錄為該模組的精度控制之一。 相比之下,DictationTranscriber文件明確告訴開發人員建立AnalysisContext並在contextualStrings中新增單詞。

這種區別是安全的實現邊界:不要圍繞上下文詞彙設計SpeechTranscriber管道,除非你在目標作業系統、區域設定和裝置上獨立驗證了所需的確切行為。

如果您今天需要長篇演講的詞彙

沒有普遍的移民規則。 如果您現有的SFSpeechRecognizer路徑已經依賴於contextualStrings,那麼移動到iOS 26應被視為模組選擇和迴歸測試練習,而不是機械的API重新命名。

  1. 測試DictationTranscriber是否符合您所需的持續時間、延遲、區域設定和裝置範圍。
  2. 如果您需要更豐富的詞彙,請評估其自定義語言模型選項。
  3. 如果兩個新模組路徑都沒有保留您的產品所依賴的行為,請保留該用例的經過驗證的SFSpeechRecognizer路徑,同時單獨遷移其他路徑。

最小決策規則

對話優先:從SpeechTranscriber開始。詞彙優先:從評估DictationTranscriber開始。 如果詞彙至關重要,請根據您傳送的實際單詞和區域來衡量識別,而不是假設模組之間的奇偶性。

相關實施指南

關於即時麥克風處理流程,包括模型資源、PCM 轉換、暫定結果與最終結果、停止與收尾行為,以及 Swift 6 並行處理,請參閱完整的 iOS 26 SpeechAnalyzer 即時麥克風指南。可執行範例位於 GitHub(MIT 授權條款)。

主要來源