Table of Contents
Voice Commands: Masa Depan Interaksi App iOS
Perintah suara secara fundamental membentuk ulang bagaimana pengguna terlibat dengan aplikasi iOS, bergerak di luar kemampuan tap-and-swipe sederhana untuk antarmuka bebas tangan, kontrol intuitif. Dengan mengungkit API speaching iOS Speech Recognition, pengembang dapat mengintegrasikan kemampuan berbicara-ke-teks secara real time yang membuat aplikasi lebih mudah diakses, efisien, dan terlibat. Apakah mengaktifkan navigasi yang dikendalikan suara untuk pelacak kebugaran, memungkinkan pengambilan catatan bebas tangan dalam aplikasi produktivitas, atau powering fitur aksesibilitas untuk pengguna dengan impairment motorik, API Penebusan Suara menyediakan landasan produksi yang kuat, siap. Artikel ini mengeksplorasi proses pelaksanaan perintah suara lengkap dalam aplikasi iOS, dari pengaturan awal, dan penanganan untuk praktek, dan penggunaan yang terbaik, dan nyata.
Menyambut bahwa orang-orang yang berbicara bahasa iOS akan mengenali
Pozeski Bahasa OisOS Speak Recognition API, bagian dari Speech framework, memungkinkan aplikasi untuk mengubah audio langsung atau terprerecorded menjadi teks. Ini mendukung lebih dari 60 bahasa dan dialek, dengan mesin pengakuan berjalan baik on-device (untuk bahasa yang didukung) atau pada server Apple. Pengenalan On-device memprioritasi privasi dan bekerja offline, sementara pengakuan berbasis server sering menyampaikan akurasi yang lebih tinggi untuk kalimat kompleks. Kelas primer adalah SFSpeechRecozer[FLT3]], yang mengelola pengakuan, proses dan [[FLT4:SechSfL:SChChChChChChChChChChlection]][REL:L][T]] untuk input audio audio.
Kemampuan kunci termasuk:
- Hasil parsial real-time (berguna untuk deteksi perintah progresif).
- Adonia Dukungan untuk vocabulari suai melalui SFSpeechRecognier's properti.
- Infintegrasi dengan AVAudioEngine untuk penangkapan audio dan penyangga.
Perlu diperhatikan bahwa API dirancang untuk perintah yang diinisialisasi pengguna dan bukan untuk terus-menerus, selalu-mendengarkan skenario (Apple memaksakan maksimum satu menit pada tugas pengakuan tunggal). Pembatasan ini mendorong keterlibatan disengaja dan melestarikan kehidupan baterai. Untuk pembacaan lebih lanjut, berkonsultasi dengan Dokumentasi kerangka kerja Pidato satu menit dan sesi WDC 2019 pada Speech Recognition].
Menyatakan Pertuturan dalam Aplikasi Saudara
Pengecaman pidato yang terintegrasi oleh orang-orang yang terintegrasi oleh bahasa membutuhkan izin yang cermat untuk menangani dan membuat konfigurasi sesi audio. Di bawah ini adalah langkah-langkah penting, diperluas dengan praktek terbaik.
1. Siapkan Projek Anda
- Foredon the Speech kapabilitas dalam proyek Anda Signing & Kapabilitas.
- ⁇ NSMicrophoneUsageDescription kunci dalam (e.g., ⁇ Aplikasi ini memerlukan akses mikrofon untuk memproses perintah suara ⁇ .
- Nama samarannya adalah NSSpeechRecognitionUsageDescription kunci (contoh:, ⁇ Aplikasi ini mengirimkan pidato Anda ke server Apple untuk mengenali perintah ⁇ .
Catatan: Kedua kunci diperlukan bahkan jika Anda berencana untuk hanya menggunakan pengenalan on-device — Apple masih membutuhkan persetujuan pengguna.
2. Permintaan Otorisasi
Aquitance]SFSpeechRecognizer.requestAuthorization[ di awal aliran aplikasi anda (misalnya, di ). Menangani setiap status otorisasi secara anggun:
import Speech
SFSpeechRecognizer.requestAuthorization { authStatus in
DispatchQueue.main.async {
switch authStatus {
case .authorized:
// Enable voice command UI
case .denied, .restricted:
// Explain why speech recognition is unavailable
case .notDetermined:
// This should not occur after the request
@unknown default:
break
}
}
}
253 . Buat Instans Pengecaman SFSpeech
Segerakan SFSpeechRecognionzer dengan lokal yang cocok dengan penonton target Anda. Untuk bahasa perangkat baku, lewat :
let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))
Buat konfigurasi Sesi Audio dan Mesin untuk Mesin
AVAVAudioEngine untuk menangkap input mikrofon. Gunakan .record[ kategori dan .measurement mode untuk menekankan kualitas pidato:
let audioEngine = AVAudioEngine()
let inputNode = audioEngine.inputNode
let recordingFormat = inputNode.outputFormat(forBus: 0)
inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer, _) in
self.request.append(buffer)
}
audioEngine.prepare()
try? audioEngine.start()
Selalu wrap mesin audio wrap selalu di mulai dalam blok dalam produksi untuk menangani ketidaktersediaan mikrofon.
Perlengkapan Bahasa yang Mengimplementasi Perintah Suara: Dari Pidato ke Tindakan
Setelah audio mengalir, Anda membuat tugas pengenalan dan mengurai hasil untuk perintah. Kuncinya adalah bereaksi terhadap hasil parsial sehingga perintah terdeteksi bahkan sebelum pengguna selesai berbicara.
Tugas Pengecaman Dasar
let request = SFSpeechAudioBufferRecognitionRequest()
request.shouldReportPartialResults = true
let recognitionTask = recognizer?.recognitionTask(with: request) { result, error in
guard let result = result else {
// Handle error
return
}
let transcript = result.bestTranscription.formattedString
// Check for commands
if transcript.lowercased().contains("next") {
// Execute action
}
}
Penguraian Perintah Lanjutan ULUS
vocabulary kecil, tetapi untuk set perintah yang kuat, pikirkan:
- [[GALALT:0]]Using NSLinguisticTagger untuk mengekstrak kata kunci dan menyaring keluar kebisingan.
- [[NOLT:0]]Merayakan kosakata perintah dengan sinonim (e.g., ⁇ skip ⁇ ⁇ ⁇ next ⁇ ⁇ forward ⁇ ⁇ .
- Menantikan untuk threshold kepercayaan diri yang lebih tinggi: Periksa sebelum bertindak.
- Pencobaan pendinginan untuk mencegah pemicu ganda dari frasa yang sama.
func processTranscript(_ transcript: String) {
let lowercased = transcript.lowercased()
let commands: [String: () -> Void] = [
"next": { self.showNextItem() },
"go back": { self.showPreviousItem() },
"stop": { self.stopPlayback() }
]
for (command, action) in commands {
if lowercased.contains(command) {
action()
break
}
}
}
Tangani Ujung-Ucapan dan Diam
Secara default, tugas pengakuan berakhir ketika pengguna berhenti berbicara dan jeda terdeteksi. Anda juga dapat mengakhiri tugas secara manual dengan memanggil atau . Untuk pengalaman perintah yang terus menerus (misalnya, dikte, aksi multi-langkah), memulai kembali tugas pengakuan setelah setiap hasil.Namun, tetap ingat batas ~1-menit Apple pada tugas tunggal; untuk sesi yang lebih lama, tugas berantai.
Fitur Lanjutan Keupayaan: Pengecaman dan Tata Ruang Biasa On-Device
Mulai dari iOS 13, Apple memperkenalkan pengenalan pidato on-device untuk bahasa pilihan (saat ini bahasa Inggris, Prancis, Jerman, Jepang, Korea, Mandarin Cina, Spanyol, dan lebih). Keuntungan termasuk tidak ada ketergantungan jaringan, latensi berkurang, dan privasi yang ditingkatkan — tidak ada audio yang meninggalkan perangkat. Untuk mengaktifkan pengenalan on-device:
guard let recognizer = SFSpeechRecognizer() else { return }
if recognizer.supportsOnDeviceRecognition {
request.requiresOnDeviceRecognition = true
}
Catatan: On-device akurasi mungkin sedikit lebih rendah dari server-base, terutama untuk entitas bernama atau kosakata yang tidak biasa. Untuk aplikasi dengan jargon suai (misalnya, istilah medis, nama produk), mempertimbangkan penambahan sebuah Daftar kosakata tercustom[ via SFSpeechRecognier's]]FLT:15]] atau dengan melatih sebuah built-in speakerT5]] melalui [[FLTFLT6]][TFLT:FLT:1][TFLT:1], [[FL]]]][TFLT]].
Teknik lanjutan lainnya adalah menggunakan SFSpeechRecognierDelegate untuk memantau perubahan ketersediaan (misalnya, pengguna mencabut izin, perubahan status jaringan). Implementasi:
class YourViewController: UIViewController, SFSpeechRecognizerDelegate {
func speechRecognizer(_ speechRecognizer: SFSpeechRecognizer, availabilityDidChange available: Bool) {
// Disable or enable voice command button based on availability
}
}
Praktek Terbaik untuk Perintah Suara dalam Produksi
Antarmuka suara dari suara tidak berkontak, ikuti pedoman ini untuk menyampaikan pengalaman pengguna yang dipoles.
Nelayani Suapan Kembali yang Aman
- Dia menunjukkan bentuk gelombang atau indikator yang berdenyut ketika mendengarkan.
- Dipaparkan teks yang diakui (bahkan sebagian) sehingga pengguna tahu sistem sedang bekerja.
- Use anYU haptic feedback (via UIImpactFeedbackGenerator) pada pengenalan perintah.
2. Handle Gagal dengan Baik
Kesalahan umum tidak termasuk akses mikrofon, layanan pengakuan tidak tersedia, atau kualitas audio yang buruk. Waspadai pengguna dengan pesan yang dapat ditindaklanjuti (misalnya, ⁇ Silakan berbicara lebih keras ⁇ atau ⁇ Periksa sambungan internet Anda ⁇ .
3. Mengoptimasi Hak dan Lingkungan yang Berbeda
Uji dengan kelompok penutur yang beragam. Gunakan SFSpeechRecognizer['s Properti untuk menjalankan pengakuan pada benang latar belakang. Implementation Pengesan aktivitas suara (VAD) heuristik untuk menghindari perekaman udara mati.
Kerahsiaan dan Ketelanan Hati 4.
Jelas sekali menjelaskan mengapa Anda membutuhkan izin mikrofon dan berbicara. Jangan pernah merekam atau memproses pidato tanpa maksud pengguna — desain sistem harus memerlukan ketukan eksplisit untuk memulai perintah suara. Untuk lebih lanjut pada pedoman privasi Apple, lihat Permintaan Kembali Authorisasi.
5. Laksanakan sebuah Fallback
Tidak semua pengguna dapat atau ingin menggunakan suara. Selalu memberikan masukan sentuh atau papan ketik alternatif. Untuk aksesibilitas, pastikan perintah suara dapat diseru melalui switch Control atau VoiceOver.
Kasus dan Inspirasi Penggunaan Dunia Real
- [[Aplikasi Navigasi: ⁇ Bawa aku pulang ⁇ atau ⁇ Tampilkan SPBU terdekat ⁇ menggunakan SDK peta.
- [[EfLAST:0]]Produktivitas & Catatan-Taking: ⁇ Cipta catatan baru ⁇ atau ⁇ Tambah tugas ⁇ terintegrasi dengan Data Inti atau CloudKit.
- [[NOLFLT:0]]Smart Home Controllers: ⁇ Matikan lampu ruang tamu ⁇ menggunakan HomeKit.
- [[CharleFLT:0]]Fitness & Workout:] ⁇ Start 5-minute cooldown ⁇ atau ⁇ Log 10 pushups ⁇
- [[ZANDAFLT:0]]E-Learning: Suara jawaban untuk kartu kilat atau kuiz.
Untuk ide lebih banyak, menjelajahi SFSpeechRecognizer API referensi dan ChangeToMe sample code dari Apple.
Kesingkuhan: Kuasai Pengguna Anda dengan Suara
API Pengakuan Suara iOS adalah alat yang matang dan terdokumentasi dengan baik yang menempatkan kekuatan perintah suara ke dalam aplikasi apapun. Dari onboarding hingga penggunaan sehari-hari, fitur suara yang diimplementasikan dengan baik mengurangi gesekan, meningkatkan aksesibilitas, dan pengguna yang menyenangkan. Dengan mengikuti langkah setup, praktik terbaik, dan teknik canggih yang diuraikan dalam artikel ini, Anda dapat membuat aplikasi yang mendengarkan — dan merespon — dengan cara yang terasa alami dan mudah.
Mulailah yang kecil: mengintegrasikan satu perintah ( \"Help\" atau \"Go back\") dalam pembaruan berikutnya, kemudian kembangkan berdasarkan umpan balik pengguna. Seperti pada-perangkat pengenalan peningkatan dan bahasa baru ditambahkan, potensi pengalaman iOS yang dikendalikan suara hanya akan tumbuh. Masa depan interaksi aplikasi diucapkan — pastikan aplikasi Anda memiliki suara.