iOS 26 tidak membunuh kosakata khusus — Anda menambahkannya ke modul yang salah
Halaman ini diterjemahkan secara otomatis dari bahasa Inggris. Baca versi asli berbahasa Inggris
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.
| Dibutuhkan | Modul untuk mengevaluasi terlebih dahulu | Mengapa |
|---|---|---|
| Percakapan umum / transkripsi bentuk panjang | SpeechTranscriber | Apple menggambarkannya sebagai modul ucapan-ke-teks tujuan umum. |
| Kte singkat dengan nama atau istilah khusus aplikasi | DictationTranscriber | Apple secara eksplisit mendokumentasikan AnalysisContext.contextualStrings dengan modul ini. |
| Pengucapan khusus / model bahasa | DictationTranscriber | Ini 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.
- Uji apakah
DictationTranscribersesuai dengan durasi, latensi, lokal, dan jangkauan perangkat yang Anda butuhkan. - Jika Anda membutuhkan kosakata yang lebih kaya, evaluasi opsi model bahasa yang disesuaikan.
- Jika tidak ada jalur modul baru yang mempertahankan perilaku yang bergantung pada produk Anda, pertahankan jalur
SFSpeechRecognizeryang 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).