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 StatefulInteractablepengaturan yang dapat berinteraksi. Subkelas yang diwariskan juga akan memungkinkan pendaftaran s arbitrer UnityActionke 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.

  1. Klik subsistem yang Anda aktifkan di Penyetelan 1.
  2. 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.
  3. 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 StatefulInteractables (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 StatefulInteractables (misalnya, tombol)

Cara term mudah untuk menggunakannya PhraseRecognitionSubsystem adalah dengan StatefulInteractables. Jika Langkah 3 di bawah bagian penyiapan dilakukan, SpeechInteractor akan memicu peristiwa tertentu pada StatefulInteractablesaat 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"));
}