Alapvető alrendszer: KeywordRecognitionSubsystem – MRTK3
Feljegyzés
Az MRTK3 alrendszerekkel kapcsolatos általános információkért lásd itt.
Az alapdefiníciók csomag KeywordRecognitionSubsystem
az MRTK3 kulcsszó-/kifejezésfelismeréséért felelős alrendszerek bázisaként MRTKSubsystem
IKeywordRecognitionSubsystem
szolgál. Az MRTK részeként szállított konkrét implementációknak, mint például WindowsKeywordRecognitionSubsystem
a lehetséges kifejezésfelismerési alrendszerek, amelyeket felépíthet, mind ennek az osztálynak kell alapulnia. Az öröklő KeywordRecognitionSubsystem
alrendszerek az SpeechInteractor
interakciós beállítások alapján aktiválhatják az eseményeket StatefulInteractable's
. Az öröklött alosztályok lehetővé teszik az tetszőleges UnityAction's
kulcsszó regisztrálását is, hogy a művelet az ilyen szó kimondásakor meg legyen hívva.
További információkért tekintse meg a használni kívánt konkrét KeywordRecognitionSubsystem
megvalósítás dokumentációját.
Beállítás
Feljegyzés
Ez az útmutató lépésekkel teszi lehetővé a beszédalrendszer használatát egy új MRTK-projektben (más alapvető, nem beszéddel kapcsolatos beállításokkal). Ha a mintaprojektet használja, észreveheti, hogy néhány lépést végrehajtottak Önnek.
1. A beszédalrendszer engedélyezése
Nyissa meg a Project Settings>MRTK3 Rendelkezésre álló MRTK-alrendszereket, majd engedélyezze a használni kívánt beszédalrendszert.
2. Konfigurációs eszköz hozzárendelése (bizonyos alrendszerekhez)
Bizonyos alrendszerek esetében egy konfigurációs eszközre van szükség ahhoz, hogy az megfelelően teljesíthessen.
- Kattintson az 1. beállításban engedélyezett alrendszerre.
- Ellenőrizze, hogy megjelenik-e egy üres
Configuration Asset
pont a jobb oldali Alrendszer részletei területen. Ha igen, hozzon létre egy új konfigurációt az Eszközök –>MRTK-alrendszerek>> létrehozása[az alrendszer neve] konfiguráció kiválasztásával, majd húzza a létrehozott konfigurációt a pontra. - Miután meggyőződett arról, hogy a konfigurációs pont ki van töltve, módosítsa a beállításokat az adott projekt újonnan létrehozott konfigurációjában. Ne felejtse el menteni a projektet, ha elkészült.
3. Győződjön meg arról, hogy az MRTK Speech GameObject aktív (szükséges ahhoz StatefulInteractable
, hogy az s (például gombok) válaszoljanak a kifejezésekre)
Győződjön meg arról, hogy az MRTK XR Rig –> MRTK Speech aktív, és a csatolt szkript(ek) engedélyezve vannak.
4. Győződjön meg arról, hogy a megfelelő képességek be vannak állítva a Lejátszó beállításai között
A különböző implementációk KeywordRecognitionSubsystem
különböző szükséges képességekkel rendelkeznek. További információkért tekintse meg a használni kívánt alrendszer dokumentációját.
Ha például az UWP platformon szeretné használniWindowsKeywordRecognitionSubsystem
, nyissa meg a Project Settings>Player>közzétételi beállításainak>képességeit, és győződjön meg arról, hogy a Mikrofon funkció be van állítva.
5. A jelenet futtatása eszközön/szerkesztőben
A projektnek most már készen kell állnia az eszközön vagy a szerkesztőben való futtatásra.
A KeywordRecognitionSubsystem használata
A KeywordRecognitionSubsystem használata s-vel StatefulInteractable
(például gombokkal)
A legegyszerűbben úgy használhatja KeywordRecognitionSubsystem
, ha s-vel StatefulInteractable
használja. Ha a beállítási szakaszban a 3. lépés végrehajtása történik, a SpeechInteractor
rendszer kiválasztja az eseményeket az s-en StatefulInteractable
, amikor teljesülnek az ilyen interakciókban megadott feltételek (például egy adott kifejezés hallható, és az interakcióra alkalmas látható). Konfigurálható beállításokért tekintse meg az SpeechInteractor
és (MRTK XR Rig –> MRTK Speech) felügyelőtStatefulInteractable
.
A KeywordRecognitionSubsystem manuális használata
Másik lehetőségként manuálisan regisztrálhatja KeywordRecognitionSubsystem
a kulcsszót, és a UnityAction
meghívni kívánt kulcsszavakat, amikor a kulcsszót az alrendszerrel hallja.
// Get the first running phrase recognition subsystem.
var keywordRecognitionSubsystem = XRSubsystemHelpers.GetFirstRunningSubsystem<KeywordRecognitionSubsystem>();
// If we found one...
if (keywordRecognitionSubsystem != null)
{
// Register a keyword and its associated action with the subsystem
keywordRecognitionSubsystem.CreateOrGetEventForKeyword("your keyword").AddListener(() => Debug.Log("Keyword recognized"));
}