Subsistem Inti: PhraseRecognitionSubsystem — MRTK3
Catatan
Untuk informasi umum tentang subsistem di MRTK3, lihat di sini.
Paket Definisi Inti mengirimkan PhraseRecognitionSubsystem
, implementasi MRTKSubsystem
dasar dan IPhraseRecognitionSubsystem
yang berfungsi sebagai dasar subsistem yang bertanggung jawab atas pengenalan kata kunci/frasa di MRTK3. Implementasi konkret yang dikirim sebagai bagian dari MRTK seperti WindowsPhraseRecognitionSubsystem
dan subsistem pengenalan frasa potensial lainnya yang mungkin Anda bangun semuanya harus didasarkan pada kelas ini. Subsistem yang mewarisi PhraseRecognitionSubsystem
dapat bekerja dengan SpeechInteractor
untuk memicu peristiwa tertentu berdasarkan StatefulInteractable
pengaturan yang dapat berinteraksi. Subkelas yang diwariskan juga akan memungkinkan pendaftaran s arbitrer UnityAction
ke kata kunci pilihan Anda sehingga tindakan akan dipanggil ketika kata tersebut dikatakan.
Untuk informasi yang lebih spesifik, lihat dokumentasi implementasi konkret PhraseRecognitionSubsystem
yang ingin Anda gunakan.
Siapkan
Catatan
Panduan ini menyediakan langkah-langkah untuk mengaktifkan subsistem ucapan dalam proyek MRTK baru (dengan pengaturan terkait non-ucapan dasar lainnya). Jika Anda menggunakan proyek sampel kami, Anda mungkin melihat bahwa beberapa langkah telah dilakukan untuk Anda.
1. Aktifkan subsistem ucapan
Buka Project Pengaturan>MRTK3Subsistem MRTK yang Tersedia lalu aktifkan subsistem ucapan yang ingin Anda gunakan.
2. Tetapkan aset konfigurasi (untuk subsistem tertentu)
Untuk subsistem tertentu, aset konfigurasi diperlukan agar dapat berkinerja normal.
- Klik subsistem yang Anda aktifkan di Penyetelan 1.
- Periksa untuk melihat apakah slot kosong
Configuration Asset
muncul di bawah Detail Subsistem di sebelah kanan. Jika demikian, buat konfigurasi baru dengan memilih Aset ->BuatSubsistemMRTK>[nama subsistem> Anda] Konfigurasi lalu seret konfigurasi yang dibuat ke slot. - Setelah memastikan slot konfigurasi diisi, ubah pengaturan di konfigurasi yang baru dibuat untuk proyek spesifik Anda. Ingatlah untuk menyimpan proyek saat Anda selesai.
3. Pastikan MRTK Speech GameObject aktif (diperlukan untuk StatefulInteractable
s (misalnya, tombol) untuk merespons frasa)
Pastikan MRTK XR Rig -> MRTK Speech aktif dan skrip terlampir diaktifkan.
4. Pastikan kemampuan yang tepat diatur di Player Pengaturan
Implementasi yang PhraseRecognitionSubsystem
berbeda memiliki kemampuan yang diperlukan yang berbeda. Untuk informasi selengkapnya, lihat dokumentasi subsistem yang ingin Anda gunakan.
Sebagai contoh, untuk digunakan WindowsPhraseRecognitionSubsystem
pada Platform UWP, buka Project PengaturanPublikasiPlayer>> Pengaturan >Capabilities dan pastikan kemampuan Mikrofon diatur.
5. Menjalankan adegan pada editor perangkat/di
Proyek sekarang harus siap untuk dijalankan pada perangkat atau di editor.
Menggunakan PhraseRecognitionSubsystem
Menggunakan PhraseRecognitionSubsystem dengan StatefulInteractable
s (misalnya, tombol)
Cara term mudah untuk menggunakannya PhraseRecognitionSubsystem
adalah dengan StatefulInteractable
s. Jika Langkah 3 di bawah bagian penyiapan dilakukan, SpeechInteractor
akan memicu peristiwa tertentu pada StatefulInteractable
saat kondisi yang ditentukan pada dapat berinteraksi tersebut terpenuhi (misalnya, frasa tertentu didengar dan dapat berinteraksi sedang melayang-layang). Lihat inspektur StatefulInteractable
dan SpeechInteractor
(MRTK XR Rig -> MRTK Speech) untuk pengaturan yang dapat dikonfigurasi.
Menggunakan PhraseRecognitionSubsystem secara manual
Cara alternatif untuk digunakan PhraseRecognitionSubsystem
adalah dengan mendaftarkan frasa secara manual dan UnityAction
yang ingin Anda lihat dipanggil ketika frasa didengar dengan subsistem.
// Get the first running phrase recognition subsystem.
var phraseRecognitionSubsystem = XRSubsystemHelpers.GetFirstRunningSubsystem<PhraseRecognitionSubsystem>();
// If we found one...
if (phraseRecognitionSubsystem != null)
{
// Register a phrase and its associated action with the subsystem
phraseRecognitionSubsystem.CreateOrGetEventForPhrase("your phrase").AddListener(() => Debug.Log("Phrase recognized"));
}