Kosakata khusus tidak hilang dari tumpukan SpeechAnalyzer baru Apple. Detail yang penting adalah pilihan modul. Dokumen Apple AnalysisContext.contextualStrings secara khusus dengan DictationTranscriber. Jika Anda membangun di sekitar SpeechTranscriber, jangan berasumsi bahwa melampirkan konteks yang sama memberi Anda perilaku kosakata yang sama.

Versi singkat: pilih DictationTranscriber ketika frasa kontekstual adalah bagian dari desain pengenalan Anda. Buat daftarnya singkat, buat frasanya singkat, dan perlakukan mereka sebagai petunjuk bias daripada pengganti yang dijamin.

Ada dua modul transkripsi — dan keduanya tidak dapat dipertukarkan

Kerangka Pidato iOS 26 membuat transkripsi modular. SpeechTranscriber adalah transkripter tujuan umum Apple untuk percakapan normal. DictationTranscriber lebih dekat dengan dikte sistem dan memperlihatkan kontrol akurasi tambahan.

DibutuhkanModul untuk mengevaluasi terlebih dahuluMengapa
Percakapan umum / transkripsi bentuk panjangSpeechTranscriberApple menggambarkannya sebagai modul ucapan-ke-teks tujuan umum.
Kte singkat dengan nama atau istilah khusus aplikasiDictationTranscriberApple secara eksplisit mendokumentasikan AnalysisContext.contextualStrings dengan modul ini.
Pengucapan khusus / model bahasaDictationTranscriberIni juga memperlihatkan petunjuk konten bahasa yang disesuaikan yang didukung oleh SFSpeechLanguageModel.

Bagaimana cara kerja String kontekstual

AnalysisContext.contextualStrings adalah kamus yang dikelompokkan berdasarkan tag string kontekstual. Apple mengatakan kata atau frasa ini dapat digunakan dengan DictationTranscriber untuk meningkatkan kemungkinan bahwa nama khusus aplikasi, produk, tempat, terminologi domain, atau kata-kata yang tidak biasa dikenali.

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

try await analyzer.setContext(context)

Tiga batasan penting dalam praktiknya:

  • Jaga agar frasa tetap singkat. Apple merekomendasikan satu atau dua kata kapan pun memungkinkan.
  • Pertahankan total pada 100 frasa atau kurang di semua tag.
  • Ini adalah petunjuk, bukan jaminan. Pengakuan bias API; itu tidak menjanjikan transkripsi yang tepat.

setContext menggantikan konteks — tidak ditambahkan

SpeechAnalyzer.setContext(_:) menggantikan objek konteks penganalisa saat ini. Jika Anda ingin mempertahankan frasa sebelumnya saat menambahkan grup baru, buat konteks baru lengkap yang ingin Anda gunakan dan atur itu.

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

Ini juga membuat tag berguna: Anda dapat mempertahankan kategori dalam keadaan Anda sendiri dan membangun kembali konteks dengan sengaja daripada memperlakukan panggilan setContext berulang sebagai penambahan tambahan.

Bagaimana dengan SpeechTranscriber?

Dokumentasi Apple saat ini untuk SpeechTranscriber tidak mendokumentasikan contextualStrings sebagai salah satu kontrol akurasi modul tersebut. Sebaliknya, dokumentasi DictationTranscriber secara eksplisit memberi tahu pengembang untuk membuat AnalysisContext dan menambahkan kata-kata ke contextualStrings.

Perbedaan itu adalah batas implementasi yang aman: jangan merancang jalur pipa SpeechTranscriber di sekitar kosakata kontekstual kecuali Anda telah memverifikasi secara independen perilaku yang tepat yang Anda butuhkan pada OS, lokal, dan perangkat target Anda.

Jika Anda membutuhkan kosakata dalam pidato bentuk panjang hari ini

Tidak ada aturan migrasi universal. Jika jalur SFSpeechRecognizer Anda yang ada sudah bergantung pada contextualStrings, pindah ke iOS 26 harus diperlakukan sebagai latihan pemilihan modul dan pengujian regresi daripada nama mekanik API.

  1. Uji apakah DictationTranscriber sesuai dengan durasi, latensi, lokal, dan jangkauan perangkat yang Anda butuhkan.
  2. Jika Anda membutuhkan kosakata yang lebih kaya, evaluasi opsi model bahasa yang disesuaikan.
  3. Jika tidak ada jalur modul baru yang mempertahankan perilaku yang bergantung pada produk Anda, pertahankan jalur SFSpeechRecognizer yang telah terbukti untuk kasus penggunaan tersebut saat Anda memigrasikan jalur lain secara terpisah.

Aturan keputusan minimal

Percakapan-pertama: dimulai dengan SpeechTranscriber. Kosakata-pertama: mulai dengan mengevaluasi DictationTranscriber. Jika kosakata sangat penting, ukur pengenalan pada kata-kata dan lokal yang sebenarnya yang Anda kirim alih-alih mengasumsikan paritas antar modul.

Panduan implementasi terkait

Untuk jalur pipa mikrofon langsung — aset model, konversi PCM, hasil volatile vs final, perilaku berhenti/finalisasi, dan konkurensi Swift 6 — lihat panduan lengkap iOS 26 SpeechAnalyzer live-mic. Sampel yang dapat dijalankan ada di GitHub (MIT).

Sumber utama