HoloLens (1. generációs) és az Azure 303: Natural Language Understanding (LUIS)


Megjegyzés

Az Mixed Reality Academy oktatóanyagai HoloLens (1. generációs) és Mixed Reality Modern headsetekkel vannak megtervezve. Ezért fontos, hogy ezeket az oktatóanyagokat a helyére helyezzük azoknak a fejlesztőknek, akik továbbra is útmutatásra van szüksége az eszközök fejlesztéséhez. Ezek az oktatóanyagok nem frissülnek a 2. HoloLens használt legújabb eszközkészletekkel vagy interakciókkal. A rendszer fenntartja őket, hogy továbbra is a támogatott eszközökön dolgoznak. A jövőben egy új oktatóanyag-sorozat lesz közzétéve, amely bemutatja, hogyan fejleszthet a 2. HoloLens való fejlesztéshez. Ez az értesítés az oktatóanyagokra mutató hivatkozással fog frissülni, amikor közzé lesznek adva.


Ebben a kurzusban megtudhatja, hogyan integrálhatja a Language Understanding egy vegyes valóságú alkalmazásba a Azure Cognitive Services és a Language Understanding API-val.

Laboreredmény

Language Understanding (LUIS) egy Microsoft Azure-szolgáltatás, amely lehetővé teszi az alkalmazások számára, hogy jelentéssel bírnak a felhasználói bevitelből, például a saját szavaival kinyerve, hogy egy személy mit szeretne. Ez gépi tanulással érhető el, amely megérti és megtanulja a bemeneti adatokat, majd részletes, releváns információkkal válaszolhat. További információért látogasson el az Azure Language Understanding (LUIS) oldalára.

A kurzus befejezése után egy vegyes valóságú modern headset-alkalmazást fog használni, amely a következőkre lesz képes:

  1. Rögzítse a felhasználói beviteli beszédet a modern headsethez csatolt mikrofonnal.
  2. Küldje el a rögzített diktálást az Azure Language Understanding Intelligent Service(LUIS) szolgáltatásba.
  3. Kérje meg a LUIS-t, hogy kinyerje a jelentés jelentését a küldési információkból, amelyeket elemezni fog, és próbálja meg meghatározni a felhasználó kérésének szándékát.

A fejlesztés magában foglalja egy olyan alkalmazás létrehozását, amelyben a felhasználó hanggal és/vagy tekintetsel módosíthatja a jelenetben lévő objektumok méretét és színét. A mozgásvezérlők használatát nem fedi le.

Az alkalmazásban Ön kell, hogy az eredményeket hogyan integrálja a tervbe. Ennek a kurzusnak az a célja, hogy megtanítsa, hogyan integrálhat egy Azure-szolgáltatást a Unity-Project. Az Ön feladata, hogy az ebben a kurzusban megszerezhető ismereteket használja fel a vegyes valóságon áteső alkalmazások továbbadása érdekében.

Készüljön fel a LUIS többszöri betanításra, amelyet a 12. fejezetben kell lefednie. Minél többször lett betanítva a LUIS, annál jobb eredményeket fog kapni.

Eszköztámogatás

Tanfolyam HoloLens Modern headsetek
MR és Azure 303: Természetes nyelvi megértés (LUIS) ✔️ ✔️

Megjegyzés

Bár ez a kurzus elsősorban a Windows Mixed Reality (VR)-headsetekkel foglalkozik, a kurzusban tanultak használhatja a Microsoft HoloLens. Ahogy követi a kurzust, megjegyzéseket fog látni az esetleges változásokról, amelyekre szükség lehet a HoloLens. A HoloLens előfordulhat, hogy a hangrögzítés során valamilyen echo üzenetet fog kapni.

Előfeltételek

Megjegyzés

Ez az oktatóanyag olyan fejlesztők számára készült, akik alapszintű tapasztalattal rendelkeznek a Unity és a C# használatában. Vegye figyelembe azt is, hogy a jelen dokumentumban található előfeltételek és írásos utasítások az íráskor tesztelt és ellenőrzött adatokat jelölik (2018. május). Használhatja a legújabb szoftvereket, amelyek az eszközök telepítése cikkben szerepelnek, azonban nem feltételezhető, hogy a kurzusban szereplő információk tökéletesen megegyeznek az újabb szoftverekben található információkkal, mint az alább felsoroltak.

Ehhez a kurzushoz a következő hardvereket és szoftvereket javasoljuk:

Előkészületek

  1. A projekt létrehozásakor felmerülő problémák elkerülése érdekében határozottan javasoljuk, hogy az oktatóanyagban említett projektet egy gyökér- vagy gyökérmappában hozza létre (a hosszú mappaútvonalak problémákat okozhatnak a build létrehozásakor).

  2. Ha engedélyezni szeretné, hogy a gép engedélyezze a diktálást, a Windows Gépház Privacy Speech és a > Inking & Typing (Gépelés beírása) oldalon kattintson a Turn On Speech services and typing suggestions (Beszédszolgáltatások engedélyezése és javaslatok beírása) >

  3. Az oktatóanyagban található kód lehetővé teszi, hogy a gépén beállított alapértelmezett mikrofoneszközről rögzítsen. Győződjön meg arról, hogy az Alapértelmezett mikrofoneszköz van beállítva a hang rögzítéséhez használni kívánt eszközként.

  4. Ha a headset beépített mikrofonnal rendelkezik, győződjön meg arról, hogy a "Ha elhasználom a headsetet, váltsak át a headset mikrofonra" beállítás be van kapcsolva a Vegyes valóság portál beállítások között.

    Modern headset beállítása

1. fejezet – Az Azure Portal beállítása

A Language Understanding Azure-ban való használathoz konfigurálnia kell a szolgáltatás egy példányát, hogy elérhető legyen az alkalmazás számára.

  1. Jelentkezzen be az Azure Portalra.

    Megjegyzés

    Ha még nem rendelkezik Azure-fiókkal, létre kell hoznia egyet. Ha osztályterem- vagy laborhelyzetben követi ezt az oktatóanyagot, kérjen segítséget az oktatótól vagy valamelyik vezetőtől az új fiók beállításában.

  2. Miután bejelentkezett, kattintson az Új elemre a bal felső sarokban, keressen rá az Language Understanding,és kattintson az Enter gombra.

    LUIS-erőforrás létrehozása

    Megjegyzés

    Előfordulhat, hogy az Új szó helyére az Erőforráslétrehozása szó került az újabb portálok használatával.

  3. A jobb oldalon található új oldal a szolgáltatás Language Understanding meg. A lap bal alsó részén válassza a Létrehozás gombot a szolgáltatás egy példányának létrehozásához.

    LUIS-szolgáltatás létrehozása – jogi nyilatkozat

  4. Miután a Létrehozás gombra kattintott:

    1. Szúrja be a kívánt nevet a szolgáltatáspéldányhoz.

    2. Válasszon ki egy előfizetést.

    3. Válassza ki az Önnek megfelelő tarifacsomagot. Ha első alkalommal hoz létre LUIS-szolgáltatást,egy ingyenes szintnek (F0) kell elérhetőnek lennie. Az ingyenes kiosztásnak elegendőnek kell lennie ehhez a kurzushoz.

    4. Válasszon ki egy erőforráscsoportot, vagy hozzon létre egy újat. Az erőforráscsoport lehetővé teszi az Azure-eszközök gyűjteményének figyelése, hozzáférésének szabályozása, kiépítése és kezelése a számlázást. Javasoljuk, hogy az összes Azure-szolgáltatást egyetlen projekthez (például ezekhez a kurzusokhoz) egy közös erőforráscsoportban tartsa.

      Ha többet szeretne tudni az Azure-erőforráscsoportokról, tekintse meg az erőforráscsoportokkal kapcsolatos cikket.

    5. Határozza meg az erőforráscsoport helyét (ha új erőforráscsoportot hoz létre). A hely ideális esetben abban a régióban található, ahol az alkalmazás futna. Egyes Azure-eszközök csak bizonyos régiókban érhetők el.

    6. Azt is meg kell erősítenie, hogy megértette a szolgáltatásra vonatkozó használati feltételeket.

    7. Válassza a Létrehozás lehetőséget.

      LUIS-szolgáltatás létrehozása – felhasználói bevitel

  5. Miután a Létrehozás gombra kattintott,meg kell várnia a szolgáltatás létrejöttét, ez egy percet is igénybe vehet.

  6. A szolgáltatáspéldány létrehozása után egy értesítés jelenik meg a portálon.

    Új Azure-értesítési kép

  7. Kattintson az értesítésre az új szolgáltatáspéldány felfedezéséhez.

    Sikeres erőforrás-létrehozási értesítés

  8. Az értesítésben kattintson az Erőforrás ugrás gombra az új szolgáltatáspéldány felfedezéséhez. Meg fog lennie az új LUIS-szolgáltatáspéldányban.

    LUIS-kulcsok elérése

  9. Ebben az oktatóanyagban az alkalmazásnak hívásokat kell kezdeményezni a szolgáltatásához, amely a szolgáltatás előfizetői kulcsának használatával történik.

  10. A LUIS API-szolgáltatás gyorsindító lapján navigáljon az első lépéshez, fogja meg a kulcsokat, és kattintson a Kulcsok elemre (ezt a szolgáltatások navigációs menüjében található kék hivatkozáskulcsokra kattintva is megvalósíthatja, amit a kulcs ikon jelöl). Ez felfedi a szolgáltatáskulcsokat.

  11. Másolja le az egyik megjelenített kulcsot, mert később szüksége lesz rá a projektben.

  12. A Szolgáltatás lapon kattintson a Language Understanding portálra, hogy a rendszer átirányítsa az új szolgáltatás létrehozásához használt weblapra a LUIS-alkalmazásban.

2. fejezet – A Language Understanding portál

Ebben a szakaszban megtudhatja, hogyan készítse el a LUIS-alkalmazást a LUIS-portálon.

Fontos

Vegye figyelembe, hogy az entitások, szándékok és kimondott szöveg ebben a fejezetben való beállítása csak az első lépés a LUIS-szolgáltatás kiépítésekor: a szolgáltatás többszöri újraképzése is szükséges, hogy pontosabb legyen. A szolgáltatás újraképzését a kurzus utolsó fejezete fedi le, ezért győződjön meg róla, hogy befejezte.

  1. Amikor eléri Language Understanding portált,előfordulhat, hogy ugyanazokkal a hitelesítő adatokkal kell bejelentkeznie, mint a Azure Portal.

    LUIS bejelentkezési oldal

  2. Ha most használja először a LUIS-t, le kell görgetnie az üdvözlőoldal aljára, hogy megtalálja a LUIS-alkalmazás létrehozása gombot, és kattintson rá.

    LUIS-alkalmazás létrehozása oldal

  3. Miután bejelentkezett, kattintson a Saját alkalmazások elemre (ha jelenleg nem ebben a szakaszban van). Ezután kattintson az Új alkalmazás létrehozása elemre.

    LUIS – saját alkalmazások képe

  4. Adjon nevet az alkalmazásnak.

  5. Ha az alkalmazásnak más nyelvet kell értenie, mint az angolt, akkor a kulturális környezetnek a megfelelő nyelvre kell módosítania.

  6. Itt az új LUIS-alkalmazás leírását is hozzáadhatja.

    LUIS – új alkalmazás létrehozása

  7. Miután lenyomta a Kész gombot,meg kell adnia az új LUIS-alkalmazás Build (Build) lapját.

  8. Néhány fontos fogalmat itt kell megértenie:

    • A szándékazt a metódust jelöli, amely a felhasználó lekérdezése után lesz meghívva. A SZÁNDÉKok egy vagy több ENTITÁSt is lehetnek.
    • Aentitás a lekérdezés egy összetevője, amely az INTENT (szándék) szempontjából releváns információkat írja le.
    • A kimondott szövega fejlesztő által biztosított lekérdezések példái, amelyet a LUIS a betanításhoz fog használni.

Ha ezek a fogalmak nem teljesen világosak, ne aggódjon, mivel ez a kurzus még jobban tisztázza őket ebben a fejezetben.

Először létrehozza a kurzus létrehozásához szükséges entitásokat.

  1. A lap bal oldalán kattintson az Entitásokelemre, majd az Új entitás létrehozása elemre.

    Új entitás létrehozása

  2. Hívja meg az új Entitásszínt,állítsa a típusát Simple (Egyszerű)típusra, majd nyomja le a Done (Kész) gombot.

    Egyszerű entitás létrehozása – szín

  3. Ismételje meg ezt a folyamatot három (3) további, nevű egyszerű entitás létrehozásához:

    • Továbbfejleszteni
    • Csökkentse
    • Cél

Az eredménynek az alábbi képhez hasonlónak kell lennie:

Entitás létrehozásának eredménye

Ezen a ponton megkezdheti a szándékok létrehozását.

Figyelmeztetés

Ne törölje a None szándékot.

  1. Az oldal bal oldalán kattintson a Intents (Szándékok) elemre,majd a Create new intent (Új szándék létrehozása) elemre.

    Új szándékok létrehozása

  2. Hívja meg az új ChangeObjectColor szándékot.

    Fontos

    A kódban ezt a szándéknevet használjuk majd a tanfolyam későbbi felében, így a legjobb eredmény érdekében pontosan a megadott nevet használja.

Miután megerősítette a nevet, a szándékok oldalára lesz irányítva.

LUIS – szándékok lap

Figyelje meg, hogy egy szövegmező 5 vagy több különböző kimondott szöveg begépelését kéri.

Megjegyzés

A LUIS kisbetűsre konvertálja az összes kimondott szövegeket.

  1. Szúrja be a következő kimondott szöveget a felső szövegmezőbe (jelenleg a Type about 5 examples... szöveggel... ), majd nyomja le az Enter billentyűt:
The color of the cylinder must be red

Figyelje meg, hogy az új kimondott szöveg megjelenik az alatta lévő listában.

Ugyanezen folyamat után szúrja be a következő hat (6) kimondott szövegeket:

make the cube black

make the cylinder color white

change the sphere to red

change it to green

make this yellow

change the color of this object to blue

Minden létrehozott kimondott szöveg esetében meg kell határoznia, hogy a LUIS mely szavakat használja entitásként. Ebben a példában az összes színt entitás színként kell címkéznie, és a célra való összes lehetséges hivatkozást célentitásként kell felcímkéznie.

  1. Ha ezt meg kell tenni, kattintson a henger szóra az első kimondott szövegben, és válassza a cél lehetőséget.

    Kimondott szöveg céljainak azonosítása

  2. Most kattintson a piros szóra az első kimondott szövegben, és válassza a color (szín) lehetőséget.

    Kimondott szöveg entitásának azonosítása

  3. A következő sort is címkézze fel, ahol a kockának célként kell lennie,a feketének pedig egy színnek kell lennie. Figyelje meg az általunk megadott "this", "it"és "this object"szavakat is, hogy a nem specifikus céltípusok is elérhetők legyen.

  4. Ismételje meg a fenti folyamatot, amíg az összes kimondott szöveg fel nem van címkézve az entitásokkal. Ha segítségre van szüksége, tekintse meg az alábbi képet.

    Tipp

    A szavak entitásként való címkézésekor:

    • Az egyes szavakhoz egyszerűen kattintson rájuk.
    • Két vagy több szóból áll halmazhoz kattintson az elejére, majd a készlet végére.

    Megjegyzés

    A Tokens View (Jogkivonatok nézet) váltógombbal válthat az Entitások/Jogkivonatok nézet között!

  5. Az eredményeknek az alábbi képeken láthatónak kell lennie, amely az Entitások / Jogkivonatok nézetet mutatja:

    Tokenek  entitásnézetei

  6. Ezen a ponton nyomja le a Train (Betanítás) gombot az oldal jobb felső részen, és várja meg, amíg a rajta lévő kis kerek jelző zöld színűre vált. Ez azt jelzi, hogy a LUIS sikeresen betanítva lett a szándék felismerésére.

    LUIS betanítás

  7. A gyakorlat során hozzon létre egy új, ChangeObjectSizenevű szándékot az Entitások célérték használatával,a , a upsizeés a downsize használatával.

  8. Az előző szándékkal azonos folyamatot követően szúrja be a következő nyolc (8) kimondott szövegeket a méretváltozáshoz:

    increase the dimensions of that
    
    reduce the size of this
    
    i want the sphere smaller
    
    make the cylinder bigger
    
    size down the sphere
    
    size up the cube
    
    decrease the size of that object
    
    increase the size of this object
    
  9. Az eredménynek az alábbi képen láthatóhoz hasonlónak kell lennie:

    A ChangeObjectSize tokenek/entitások beállítása

  10. Miután mindkét szándékot, a ChangeObjectColor és a ChangeObjectSizeszándékot létrehozta és betanítta, kattintson az oldal tetején található PUBLISH (KÖZZÉTÉTEL) gombra.

    LUIS-szolgáltatás közzététele

  11. A Közzététel oldalon véglegesíteni és közzétenni fogja a LUIS-alkalmazást, hogy az elérhető legyen a kódban.

    1. Állítsa be a Közzététel a következőben legördülő menüt éleskörnyezetként:.

    2. Állítsa az Időzónát az időzónára.

    3. Jelölje be az Include all predicted intent scores (Az összes előrejel jelzett szándék pontszámának be van va) jelölőnégyzetet.

    4. Kattintson a Publish to Production Slot (Közzététel az éles környezetben) elemre.

      Közzététel Gépház

  12. Az Erőforrások és kulcsok szakaszban:

    1. Válassza ki a szolgáltatáspéldányhoz beállított régiót az Azure Portalon.
    2. Figyelje meg, hogy Starter_Key, hagyja figyelmen kívül az alábbi elemet.
    3. Kattintson a Kulcs hozzáadása lehetőségre, és szúrja be az Azure Portalon a szolgáltatáspéldány létrehozásakor kapott kulcsot. Ha az Azure és a LUIS-portál ugyanannak a felhasználónak van bejelentkezve, legördülő menüket fog látni a bérlő neve,az előfizetés neve és a használni kívánt kulcs számára (ugyanaz lesz a neve, mint amit korábban az Azure Portalon megadott.

    Fontos

    Az Endpoint (Végpont)alatt másolja a beszúrt kulcsnak megfelelő végpontot, és hamarosan használni fogja a kódban.

3. fejezet – A Unity-projekt beállítása

Az alábbiakban egy tipikus, vegyes valóságban való fejlesztésre vonatkozó beállítás van beállítva, és mint ilyen, jó sablon más projektekhez.

  1. Nyissa meg a Unityt, és kattintson a New (Új) elemre.

    Indítsa el az új Unity-projektet.

  2. Most meg kell adnia egy Unity-Project, és bekell MR_LUIS. Győződjön meg arról, hogy a projekt típusa 3D. A Hely beállításnál adja meg az Önnek megfelelő helyet (ne feledje, hogy a gyökérkönyvtárakhoz közelebb is jobb). Ezután kattintson a Create project (Projekt létrehozása) elemre.

    Adja meg az új Unity-projekt részleteit.

  3. Ha a Unity meg van nyitva, érdemes ellenőrizni, hogy az alapértelmezett Script Editor értéke Visual Studio. Lépjen a Beállítások > szerkesztése lapra, majd az új ablakban lépjen a > Módosítsa a Külső szkriptszerkesztőta 2017 Visual Studio re. Zárja be a Beállítások ablakot.

    A szkriptszerkesztő beállításának frissítése.

  4. Ezután a Fájl buildelőre Gépház a platformot a Universal Windows Platform (Platformváltás)gombra kattintva.

    Build Gépház, váltson platformot UWP-re.

  5. A Fájl buildelőre Gépház, és győződjön meg a következőről:

    1. A Céleszköz beállítása Bármely eszköz

      A céleszköz Microsoft HoloLens állítsa a Céleszközt akövetkezőre: HoloLens.

    2. A Build Type (Build típusa) beállítása D3D

    3. Az SDK a Legújabb telepítve beállításra van állítva

    4. Visual Studio Verzió a Legújabb telepítve beállításra van állítva

    5. A Build and Run (Összeállítás és futtatás) beállítása Local Machine (Helyi gép)

    6. Mentse a jelenet, és adja hozzá a buildhez.

      1. Ehhez válassza az Add Open Scenes (Nyitott jelenetek hozzáadása) gombra. Megjelenik egy Mentés ablak.

        Kattintson a Nyitott jelenetek hozzáadása gombra

      2. Hozzon létre egy új mappát ehhez és minden jövőbeli jelenethez, majd válassza az Új mappa gombot egy új mappa létrehozásához, és adja neki a Scenes nevet.

        Új szkriptek mappa létrehozása

      3. Nyissa meg az újonnan létrehozott Scenes mappát, majd a Fájlnév:szövegmezőbe írja be a következőt: MR_LuisScene,majd nyomja le a Save (Mentés) gombot.

        Adjon nevet az új jelenetnek.

    7. A Build Gépház többibeállítását az alapértelmezett értéken kell hagynunk.

  6. A Build Gépház ablakban kattintson a Player Gépház gombra, ezzel megnyitja a kapcsolódó panelt abban a térben, ahol az Inspector található.

    Nyissa meg a lejátszó beállításait.

  7. Ezen a panelen ellenőrizni kell néhány beállítást:

    1. Az Egyéb Gépház lapon:

      1. A parancsprogram-futtatás verziójának stabilnak kell lennie (.NET 3.5-nek megfelelő).

      2. A parancsfájl-háttérrendszernek.NET-nek kell lennie

      3. Az API-kompatibilitási szintlegyen .NET 4.6

        Frissítse az egyéb beállításokat.

    2. A Közzétételi Gépház a Képességek alattellenőrizze a következőt:

      1. InternetClient

      2. Mikrofon

        Közzétételi beállítások frissítése.

    3. A panelen lejjebb, az XR Gépház (a Publish Gépház(Közzététel) alatt) jelölje be a Virtual Reality supported (Virtuális valóságtámogatott) jelölőnégyzetet, és győződjön meg arról, hogy az Windows Mixed Reality SDK hozzá van adva.

      Frissítse az X R-Gépház.

  8. A Build GépházUnity C#-projektek már nem szürkével ürülnek ki; jelölje be a mellette látható jelölőnégyzetet.

  9. Zárja be a Build Gépház ablakot.

  10. Mentse a Jelenet és Project (FILE SAVE SCENE / FILE SAVE > PROJECT).

4. fejezet – A jelenet létrehozása

Fontos

Ha ki szeretné hagyni akurzus Unity Set up összetevőjét, és közvetlenül a kódba szeretne ugrani, nyugodtan töltse le ezt a .unitypackagecsomagot, importálja a projektbe egyéni csomagként, majd folytassa az 5.fejezetből.

  1. Kattintson a jobb gombbal a Hierarchiapanel egy üres területére, a 3D objektumalatt adjon hozzá egy Síkot.

    Hozzon létre egy síkot.

  2. Vegye figyelembe, hogy amikor ismét a jobb gombbal a Hierarchián belülre kattint további objektumok létrehozásához, ha még mindig az utolsó objektum van kijelölve, a kiválasztott objektum lesz az új objektum szülője. Ne kattintson a bal gombbal egy üres helyre a Hierarchiában, majd kattintson a jobb gombbal.

  3. Ismételje meg a fenti eljárást a következő objektumok hozzáadásához:

    1. Sphere
    2. Henger
    3. Köbre emelés
    4. 3D-s szöveg
  4. Az eredményül kapott jelenet hierarchiájának az alábbi képen láthatóhoz hasonlónak kell lennie:

    Jelenethierarchia beállítása.

  5. Kattintson a bal gombbal a Main Camera (Fő kamera) elemre a kiválasztásához, és tekintse meg az Inspector panelt, és látni fogja a Camera (Kamera) objektumot az összes összetevővel együtt.

  6. Kattintson az Inspector panel alján található Add Component (Összetevő hozzáadása) gombra.

    Hangforrás hozzáadása

  7. Keresse meg a Hangforrás nevű összetevőta fent látható módon.

  8. Győződjön meg arról is, hogy a Fő kamera Transform (Átalakítás) összetevője (0,0,0) van beállítva. Ehhez nyomja le a Kamera Transform (Átalakítás) összetevője melletti Fogaskerék ikont, és válassza a Reset (Alaphelyzetbe állítás) gombot. Az Átalakítás összetevőnek így kell kinéznie:

    1. A pozíció beállítása 0, 0, 0.
    2. A rotációbeállítása 0, 0, 0.

    Megjegyzés

    A Microsoft HoloLens a következőket is módosítania kell, amelyek a Main Camera (Kamera) összetevő részei:

    • Jelzők clear (jelzők): Egyszínű szín.
    • Háttér "Black, Alpha 0" – Hexikus szín: #00000000.
  9. Kattintson a bal gombbal a Sík elemre a kiválasztásához. Az Inspector panelen állítsa be az Átalakítás összetevőt a következő értékekkel:

    X tengely Y tengely Z tengely
    0 -1 0
  10. Kattintson a bal gombbal a Sphere-re a kiválasztásához. Az Inspector panelen állítsa be az Átalakítás összetevőt a következő értékekkel:

    X tengely Y tengely Z tengely
    2 1 2
  11. Kattintson a bal gombbal a hengerre a kiválasztásához. Az Inspector panelen állítsa be az Átalakítás összetevőt a következő értékekkel:

    X tengely Y tengely Z tengely
    -2 1 2
  12. Kattintson a bal gombbal a kockára a kiválasztásához. Az Inspector panelen állítsa be az Átalakítás összetevőt a következő értékekkel:

    Átalakítás – Pozíció | Átalakítás – Elforgatás
    X Y Z | X Y Z
    0 1 4 | 45 45 0
  13. Kattintson a bal gombbal az Új szöveg objektumra annak kiválasztásához. Az Inspector panelen állítsa be az Átalakítás összetevőt a következő értékekkel:

    Átalakítás – Pozíció | Átalakítás – Méretezés
    X Y Z | X Y Z
    -2 6 9 | 0.1 0.1 0.1
  14. Módosítsa a Betűméretet a Text Meshösszetevőben 50-re.

  15. Módosítsa aText Mesh-objektum nevét Dictation Text névre.

    3D Text objektum létrehozása

  16. A Hierarchia panel struktúrájának most így kell kinéznie:

    szövegháló jelenetnézetben

  17. Az utolsó jelenetnek az alábbi képhez hasonlónak kell lennie:

    A jelenetnézet.

5. fejezet – A MicrophoneManager osztály létrehozása

Elsőként a MicrophoneManager osztályt fogja létrehozni. Ezt követően létre fogja hozni a LuisManager,a Behaviors osztályt és végül a Tekintet osztályt (most már létrehozhatja ezeket, bár az egyes fejezetek elérésekor le lesz fedve).

A MicrophoneManager osztály a következőért felelős:

  • A headsethez vagy a géphez csatlakoztatott rögzítőeszköz észlelése (amelyik az alapértelmezett).
  • Rögzítse a hangot (hangot), és használja a diktálást a sztringként való tároláshoz.
  • A hang szüneteltetése után küldje el a diktálást a LuisManager osztálynak.

Az osztály létrehozása:

  1. Kattintson a jobb gombbal a Project,majd a Mappa létrehozása elemre. Hívja meg a scripts mappát.

    Hozza létre a Scripts mappát.

  2. A szkriptek mappa létrehozása után kattintson rá duplán a megnyitásához. Ezután a mappában kattintson a jobb gombbal a Create C# Script (C#-szkript létrehozása) parancsra. A szkriptnek nevezze el a Következőt: MicrophoneManager.

  3. Kattintson duplán a MicrophoneManager elemre a megnyitásához a Visual Studio.

  4. Adja hozzá a következő névtereket a fájl tetejéhez:

        using UnityEngine;
        using UnityEngine.Windows.Speech;
    
  5. Ezután adja hozzá a következő változókat a MicrophoneManager osztályhoz:

        public static MicrophoneManager instance; //help to access instance of this object
        private DictationRecognizer dictationRecognizer;  //Component converting speech to text
        public TextMesh dictationText; //a UI object used to debug dictation result
    
  6. Most hozzá kell adni a Kódot az Új() ésa Start() metódushoz. Ezeket a osztály inicializálja a következő inicializáláskor:

        private void Awake()
        {
            // allows this class instance to behave like a singleton
            instance = this;
        }
    
        void Start()
        {
            if (Microphone.devices.Length > 0)
            {
                StartCapturingAudio();
                Debug.Log("Mic Detected");
            }
        }
    
  7. Most szüksége lesz arra a metódusra, amely segítségével az alkalmazás elindítja és leállítja a hangrögzítést, és át kell adni a LuisManager osztálynak, amely hamarosan létre lesz hozva.

        /// <summary>
        /// Start microphone capture, by providing the microphone as a continual audio source (looping),
        /// then initialise the DictationRecognizer, which will capture spoken words
        /// </summary>
        public void StartCapturingAudio()
        {
            if (dictationRecognizer == null)
            {
                dictationRecognizer = new DictationRecognizer
                {
                    InitialSilenceTimeoutSeconds = 60,
                    AutoSilenceTimeoutSeconds = 5
                };
    
                dictationRecognizer.DictationResult += DictationRecognizer_DictationResult;
                dictationRecognizer.DictationError += DictationRecognizer_DictationError;
            }
            dictationRecognizer.Start();
            Debug.Log("Capturing Audio...");
        }
    
        /// <summary>
        /// Stop microphone capture
        /// </summary>
        public void StopCapturingAudio()
        {
            dictationRecognizer.Stop();
            Debug.Log("Stop Capturing Audio...");
        }
    
  8. Adjon hozzá egy diktáláskezelőt, amely akkor lesz meghívva, amikor a hang szünetel. Ez a metódus át fogja adni a diktálás szövegét a LuisManager osztálynak.

        /// <summary>
        /// This handler is called every time the Dictation detects a pause in the speech. 
        /// This method will stop listening for audio, send a request to the LUIS service 
        /// and then start listening again.
        /// </summary>
        private void DictationRecognizer_DictationResult(string dictationCaptured, ConfidenceLevel confidence)
        {
            StopCapturingAudio();
            StartCoroutine(LuisManager.instance.SubmitRequestToLuis(dictationCaptured, StartCapturingAudio));
            Debug.Log("Dictation: " + dictationCaptured);
            dictationText.text = dictationCaptured;
        }
    
        private void DictationRecognizer_DictationError(string error, int hresult)
        {
            Debug.Log("Dictation exception: " + error);
        }
    

    Fontos

    Törölje az Update() metódust, mivel ez az osztály nem fogja használni.

  9. Mielőtt visszatér a Unitybe, mindenképpen mentse a módosításokat a Visual Studio, mielőtt visszatér a Unitybe.

    Megjegyzés

    Ezen a ponton egy hibaüzenet jelenik meg a Unity-szerkesztő konzolpanelen. Ennek az az oka, hogy a kód a LuisManager osztályra hivatkozik, amelyet a következő fejezetben fog létrehozni.

6. fejezet – A LUISManager osztály létrehozása

Itt az ideje, hogy létrehozza a LuisManager osztályt, amely az Azure LUIS szolgáltatáshoz fogja hívni a hívást.

Ennek az osztálynak az a célja, hogy megkapja a diktálás szövegét a MicrophoneManager osztálytól, és elküldje az Azure Language Understanding API-nak elemzés céljából.

Ez az osztály deserializálja a JSON-választ, és hívja meg a Behaviors osztály megfelelő metódusát egy művelet aktiválása érdekében.

Az osztály létrehozása:

  1. Kattintson duplán a Scripts mappára a megnyitásához.

  2. Kattintson a jobb gombbal a Scripts mappában, majd kattintson a Create C# Script (C#-szkript létrehozása) parancsra. A szkriptnek adja a LuisManager nevet.

  3. Kattintson duplán a szkriptre, és nyissa meg Visual Studio.

  4. Adja hozzá a következő névtereket a fájl tetejéhez:

        using System;
        using System.Collections;
        using System.Collections.Generic;
        using System.IO;
        using UnityEngine;
        using UnityEngine.Networking;
    
  5. Először hozzon létre három osztályt a LuisManager osztályban (ugyanabban a szkriptfájlban, a Start() metódus felett), amelyek az Azure deszerializált JSON-válaszát képviselik.

        [Serializable] //this class represents the LUIS response
        public class AnalysedQuery
        {
            public TopScoringIntentData topScoringIntent;
            public EntityData[] entities;
            public string query;
        }
    
        // This class contains the Intent LUIS determines 
        // to be the most likely
        [Serializable]
        public class TopScoringIntentData
        {
            public string intent;
            public float score;
        }
    
        // This class contains data for an Entity
        [Serializable]
        public class EntityData
        {
            public string entity;
            public string type;
            public int startIndex;
            public int endIndex;
            public float score;
        }
    
  6. Ezután adja hozzá a következő változókat a LuisManager osztályhoz:

        public static LuisManager instance;
    
        //Substitute the value of luis Endpoint with your own End Point
        string luisEndpoint = "https://westus.api.cognitive... add your endpoint from the Luis Portal";
    
  7. Most helyezze el a LUIS-végpontot (amelyet a LUIS-portálon fog látni).

  8. Most hozzá kell adni a kódot az Új() Metódushoz. Ezt a metódust a osztály inicializálja:

        private void Awake()
        {
            // allows this class instance to behave like a singleton
            instance = this;
        }
    
  9. Most szüksége lesz az alkalmazás által a MicrophoneManager osztálytól kapott diktálás LUIS-nakvaló elküldését, majd a válasz fogadására és deszerializálására használt metódusra.

  10. Miután a szándék és a társított entitások értéke meg lett határozva, a szándékot a Szándékok osztály példányának határozzák meg a kívánt művelet aktiválása érdekében.

        /// <summary>
        /// Call LUIS to submit a dictation result.
        /// The done Action is called at the completion of the method.
        /// </summary>
        public IEnumerator SubmitRequestToLuis(string dictationResult, Action done)
        {
            string queryString = string.Concat(Uri.EscapeDataString(dictationResult));
    
            using (UnityWebRequest unityWebRequest = UnityWebRequest.Get(luisEndpoint + queryString))
            {
                yield return unityWebRequest.SendWebRequest();
    
                if (unityWebRequest.isNetworkError || unityWebRequest.isHttpError)
                {
                    Debug.Log(unityWebRequest.error);
                }
                else
                {
                    try
                    {
                        AnalysedQuery analysedQuery = JsonUtility.FromJson<AnalysedQuery>(unityWebRequest.downloadHandler.text);
    
                        //analyse the elements of the response 
                        AnalyseResponseElements(analysedQuery);
                    }
                    catch (Exception exception)
                    {
                        Debug.Log("Luis Request Exception Message: " + exception.Message);
                    }
                }
    
                done();
                yield return null;
            }
        }
    
  11. Hozzon létre egy új MethodResponseElements() nevű metódust, amely beolvassa az eredményül kapottQuery lekérdezést, és meghatározza az entitásokat. Miután meghatározta ezeket az entitásokat, a műveletben használni fogja őket a Behaviors osztály példányának.

        private void AnalyseResponseElements(AnalysedQuery aQuery)
        {
            string topIntent = aQuery.topScoringIntent.intent;
    
            // Create a dictionary of entities associated with their type
            Dictionary<string, string> entityDic = new Dictionary<string, string>();
    
            foreach (EntityData ed in aQuery.entities)
            {
                entityDic.Add(ed.type, ed.entity);
            }
    
            // Depending on the topmost recognized intent, read the entities name
            switch (aQuery.topScoringIntent.intent)
            {
                case "ChangeObjectColor":
                    string targetForColor = null;
                    string color = null;
    
                    foreach (var pair in entityDic)
                    {
                        if (pair.Key == "target")
                        {
                            targetForColor = pair.Value;
                        }
                        else if (pair.Key == "color")
                        {
                            color = pair.Value;
                        }
                    }
    
                    Behaviours.instance.ChangeTargetColor(targetForColor, color);
                    break;
    
                case "ChangeObjectSize":
                    string targetForSize = null;
                    foreach (var pair in entityDic)
                    {
                        if (pair.Key == "target")
                        {
                            targetForSize = pair.Value;
                        }
                    }
    
                    if (entityDic.ContainsKey("upsize") == true)
                    {
                        Behaviours.instance.UpSizeTarget(targetForSize);
                    }
                    else if (entityDic.ContainsKey("downsize") == true)
                    {
                        Behaviours.instance.DownSizeTarget(targetForSize);
                    }
                    break;
            }
        }
    

    Fontos

    Törölje a Start() ésaz Update() metódust, mivel ez az osztály nem fogja használni őket.

  12. Mielőtt visszatér a Unitybe, mindenképpen mentse a módosításokat a Visual Studio, mielőtt visszatér a Unitybe.

Megjegyzés

Ezen a ponton számos hiba jelenik meg a Unity-szerkesztő konzolpanelen. Ennek az az oka, hogy a kód a Behaviors osztályra hivatkozik, amelyet a következő fejezetben fog létrehozni.

7. fejezet – A Behaviors osztály létrehozása

A Behaviors osztály aktiválja a műveleteket a LuisManager osztály által biztosított entitásokkal.

Az osztály létrehozása:

  1. Kattintson duplán a Scripts mappára a megnyitásához.

  2. Kattintson a jobb gombbal a Scripts mappában, majd kattintson a Create C# Script (C#-szkript létrehozása) parancsra. A szkript viselkedésének elnevezése:.

  3. Kattintson duplán a szkriptre, hogy az a következővel Visual Studio.

  4. Ezután adja hozzá a következő változókat a Behaviors osztályhoz:

        public static Behaviours instance;
    
        // the following variables are references to possible targets
        public GameObject sphere;
        public GameObject cylinder;
        public GameObject cube;
        internal GameObject gazedTarget;
    
  5. Adja hozzá az Új() metódus kódját. Ezt a metódust a osztály inicializálja:

        void Awake()
        {
            // allows this class instance to behave like a singleton
            instance = this;
        }
    
  6. A LuisManager osztály (amelyet korábban hozott létre) a következő metódusokat hív meg, hogy meghatározza, melyik objektum a lekérdezés célja, majd aktiválja a megfelelő műveletet.

        /// <summary>
        /// Changes the color of the target GameObject by providing the name of the object
        /// and the name of the color
        /// </summary>
        public void ChangeTargetColor(string targetName, string colorName)
        {
            GameObject foundTarget = FindTarget(targetName);
            if (foundTarget != null)
            {
                Debug.Log("Changing color " + colorName + " to target: " + foundTarget.name);
    
                switch (colorName)
                {
                    case "blue":
                        foundTarget.GetComponent<Renderer>().material.color = Color.blue;
                        break;
    
                    case "red":
                        foundTarget.GetComponent<Renderer>().material.color = Color.red;
                        break;
    
                    case "yellow":
                        foundTarget.GetComponent<Renderer>().material.color = Color.yellow;
                        break;
    
                    case "green":
                        foundTarget.GetComponent<Renderer>().material.color = Color.green;
                        break;
    
                    case "white":
                        foundTarget.GetComponent<Renderer>().material.color = Color.white;
                        break;
    
                    case "black":
                        foundTarget.GetComponent<Renderer>().material.color = Color.black;
                        break;
                }          
            }
        }
    
        /// <summary>
        /// Reduces the size of the target GameObject by providing its name
        /// </summary>
        public void DownSizeTarget(string targetName)
        {
            GameObject foundTarget = FindTarget(targetName);
            foundTarget.transform.localScale -= new Vector3(0.5F, 0.5F, 0.5F);
        }
    
        /// <summary>
        /// Increases the size of the target GameObject by providing its name
        /// </summary>
        public void UpSizeTarget(string targetName)
        {
            GameObject foundTarget = FindTarget(targetName);
            foundTarget.transform.localScale += new Vector3(0.5F, 0.5F, 0.5F);
        }
    
  7. Adja hozzá a FindTarget() metódust annak meghatározásához, hogy melyik GameObjects az aktuális szándék célja. Ez a metódus alapértelmezés szerint "tekintett" a GameObjectre, ha nincs explicit cél definiálva az Entitások között.

        /// <summary>
        /// Determines which object reference is the target GameObject by providing its name
        /// </summary>
        private GameObject FindTarget(string name)
        {
            GameObject targetAsGO = null;
    
            switch (name)
            {
                case "sphere":
                    targetAsGO = sphere;
                    break;
    
                case "cylinder":
                    targetAsGO = cylinder;
                    break;
    
                case "cube":
                    targetAsGO = cube;
                    break;
    
                case "this": // as an example of target words that the user may use when looking at an object
                case "it":  // as this is the default, these are not actually needed in this example
                case "that":
                default: // if the target name is none of those above, check if the user is looking at something
                    if (gazedTarget != null) 
                    {
                        targetAsGO = gazedTarget;
                    }
                    break;
            }
            return targetAsGO;
        }
    

    Fontos

    Törölje a Start() ésaz Update() metódust, mivel ez az osztály nem fogja használni őket.

  8. Mielőtt visszatér a Unitybe, mindenképpen mentse a módosításokat a Visual Studio, mielőtt visszatér a Unitybe.

8. fejezet – A Tekintet osztály létrehozása

Az alkalmazás befejezéséhez az utolsó osztály a Tekintet osztály. Ez az osztály frissíti a felhasználó vizuális fókuszában jelenleg a GameObjectre való hivatkozást.

Az osztály létrehozása:

  1. Kattintson duplán a Scripts mappára a megnyitásához.

  2. Kattintson a jobb gombbal a Scripts (Szkriptek) mappára, majd kattintson a Create C# Script (C#-szkript létrehozása) parancsra. A szkriptnek a Következő nevet kell írnia:.

  3. Kattintson duplán a szkriptre, hogy a következővel Visual Studio.

  4. Szúrja be a következő kódot ehhez az osztályhoz:

        using UnityEngine;
    
        public class Gaze : MonoBehaviour
        {        
            internal GameObject gazedObject;
            public float gazeMaxDistance = 300;
    
            void Update()
            {
                // Uses a raycast from the Main Camera to determine which object is gazed upon.
                Vector3 fwd = gameObject.transform.TransformDirection(Vector3.forward);
                Ray ray = new Ray(Camera.main.transform.position, fwd);
                RaycastHit hit;
                Debug.DrawRay(Camera.main.transform.position, fwd);
    
                if (Physics.Raycast(ray, out hit, gazeMaxDistance) && hit.collider != null)
                {
                    if (gazedObject == null)
                    {
                        gazedObject = hit.transform.gameObject;
    
                        // Set the gazedTarget in the Behaviours class
                        Behaviours.instance.gazedTarget = gazedObject;
                    }
                }
                else
                {
                    ResetGaze();
                }         
            }
    
            // Turn the gaze off, reset the gazeObject in the Behaviours class.
            public void ResetGaze()
            {
                if (gazedObject != null)
                {
                    Behaviours.instance.gazedTarget = null;
                    gazedObject = null;
                }
            }
        }
    
  5. Mielőtt visszatér a Unitybe,mindenképpen mentse a módosításokat a Visual Studio.

9. fejezet – A jelenet beállításának befejezése

  1. A jelenet beállításának befejezéséhez húzza a Scripts mappában létrehozott összes szkriptet a Hierarchia panel Main Cameraobjektumába.

  2. Válassza a Main Camera (Fő kamera) lehetőséget, és tekintse meg az Inspector (Vizsgáló)panelt, láthatja az összes csatolt szkriptet, és láthatja, hogy az egyes beállítható szkriptek paraméterekkel is rendelkezik.

    A kamera referenciacéljainak beállítása.

  3. A paraméterek helyes beállítását az alábbi utasítások szerint hajtsa végre:

    1. MicrophoneManager:

      • A Hierarchia panelrőlhúzza a Diktálás szövege objektumot a Diktálásszöveg-paraméter értéke mezőbe.
    2. Viselkedések, a Hierarchia panelről:

      • Húzza a Sphere-objektumot a Sphere-referencia célmezőjbe.
      • Húzza a hengerta Henger referenciacélja mezőbe.
      • Húzza a kockát a Kockahivatkozási célmezőbe.
    3. Tekintet:

      • Állítsa a Tekintet maximális távolsága beállítását300-ra (ha még nem).
  4. Az eredménynek az alábbi képhez hasonlónak kell lennie:

    A Kamera referenciacéljainak megjelenítése, most beállítva.

10. fejezet – Tesztelés a Unity-szerkesztőben

Ellenőrizze, hogy a Jelenet beállítása megfelelően van-e megvalósítva.

Győződjön meg a következőről:

  • Minden szkript a Main Camera objektumhoz van csatolva.
  • A Main Camera Inspector panel összes mezője megfelelően van kiosztva.
  1. Nyomja le a Play gombot a Unity-szerkesztőben. Az alkalmazásnak a csatlakoztatott modern headseten belül kell futnia.

  2. Próbáljon ki néhány kimondott szöveg, például:

    make the cylinder red
    
    change the cube to yellow
    
    I want the sphere blue
    
    make this to green
    
    change it to white
    

    Megjegyzés

    Ha hibaüzenet jelenik meg a Unity konzolján az alapértelmezett hangeszköz módosításával kapcsolatban, előfordulhat, hogy a jelenet nem a várt módon fog működni. Ennek az az oka, ahogyan a vegyes valóság portálja beépített mikrofonokkal foglalkozik azokkal a headsetekkel, amelyekben vannak. Ha ezt a hibát látja, egyszerűen állítsa le a jelenet, majd indítsa el újra, és a dolgok a várt módon működnek.

11. fejezet – Az UWP-megoldás összeállítása és saját szervezés

Miután gondoskodott arról, hogy az alkalmazás működik a Unity-szerkesztőben, készen áll a buildre és az üzembe helyezésre.

To Build:

  1. Az aktuális jelenet mentéséhez kattintson a File Save (Fájl mentése) gombra.

  2. Ugrás a Fájl buildelő Gépház.

  3. Jelölje be a Unity C# Projects (Unity C#-projektek) jelölőnégyzetet (ez akkor hasznos, ha az UWP-projekt létrehozása után látni és hibakeresést kell létrehoznia a kódon).

  4. Kattintson az Add Open Scenes (Nyitott jelenetek hozzáadása)elemre, majd a Build (Build) elemre.

    Build Gépház ablak

  5. A rendszer kérni fogja, hogy válassza ki azt a mappát, amelyben létre szeretné hozni a megoldást.

  6. Hozzon létre egy BUILDS mappát, majd a mappán belül hozzon létre egy másik mappát a kívánt névvel.

  7. Kattintson a Mappa kiválasztása elemre a build ezen a helyen való megkezdéséhez.

    Buildek mappa létrehozásaVálassza a Buildek mappát

  8. Miután a Unity befejezte az összeállítást (ez némi időt is Fájlkezelő, meg kell nyitnia egy új ablakot a build helyén.

Üzembe helyezés helyi gépen:

  1. A Visual Studionyissa meg az előző fejezetben létrehozott megoldásfájlt.

  2. A Megoldásplatformonválassza az x86, helyi gép lehetőséget.

  3. A Megoldáskonfigurációban válassza a Hibakeresés lehetőséget.

    A Microsoft HoloLens könnyebben beállíthatja a Távoli gép beállításra, hogy ne legyen a számítógépéhezkötve. Azonban a következőket is el kell majd követnie:

    • Ismeri a HoloLens IP-címét, amely a Gépház Network Internet Wi-Fi >> Speciálisbeállítások között található; az IPv4 a használni kívánt cím.
    • Győződjön meg arról, hogy a Fejlesztői mód be van kapcsolva; A a Gépház Update Security for developers (Frissítésbiztonság frissítése fejlesztők számára) 2.

    Alkalmazás üzembe helyezése

  4. A Build (Build) menüben kattintson a Deploy Solution (Megoldás üzembe helyezése) elemre az alkalmazás saját gépre való telepítéséhez.

  5. Az alkalmazásnak most már meg kell jelenni a telepített alkalmazások listájában, készen áll az indulásra!

  6. Az alkalmazás az elindítása után kérni fogja, hogy engedélyezze a hozzáférést a mikrofonhoz. Nyomja le az IGEN gombot a Mozgásvezérlők,a Hangbemenetvagy a Billentyűzet használatával.

12. fejezet – A LUIS-szolgáltatás fejlesztése

Fontos

Ez a fejezet rendkívül fontos, és előfordulhat, hogy többször is meg kell iteretálni, mivel ez segít a LUIS-szolgáltatás pontosságának javításában: ügyeljen rá, hogy ezt el tudja végrehajtani.

A LUIS által nyújtott megértés szintjének javításához rögzítenie kell az új kimondott szövegeket, és fel kell használnia őket a LUIS-alkalmazás újra betanítása érdekében.

Például betaníthatja a LUIS-t, hogy megértse a "Növekedés" és az "Upsize" (Méret növelése) et, de nem szeretné, hogy az alkalmazás olyan szavakat is megértsen, mint a "Nagyítás"?

Ha néhányszor már használta az alkalmazást, a LUIS összegyűjti és elérhetővé fogja tenni az összes említett információt a LUIS portálon.

  1. Lépjen a portálalkalmazáshoz a hivatkozás után,és jelentkezzen be.

  2. Miután bejelentkezett AZ MS hitelesítő adataival, kattintson az alkalmazás nevére.

  3. Kattintson a Végponti kimondott szöveg áttekintése gombra az oldal bal oldalán.

    Kimondott szöveg áttekintése

  4. Megjelenik a vegyes valóságú alkalmazás által a LUIS-nak küldött kimondott szövegeket felsoroló lista.

    Kimondott szöveglista

Figyelje meg, hogy néhány entitás ki van emelve.

Az egyes kiemelt szavak fölé helyezve áttekintheti az egyes kimondott szövegeket, és megállapíthatja, hogy melyik entitás lett helyesen felismerve, mely entitások hibásak, és mely entitások hiányoznak.

A fenti példában úgy találtuk, hogy a "spear" szó ki van emelve célként, ezért ki kell javítani a hibát, amelyet úgy lehet tenni, hogy az egérrel rámutatunk a szóra, és a Remove Label(Címke eltávolítása) gombra kattintunk.

Kimondott szöveg ellenőrzése– Címkekép eltávolítása

  1. Ha teljesen helytelen kimondott szövegeket talál, törölheti őket a képernyő jobb oldalán található Törlés gombbal.

    Helytelen kimondott szöveg törlése

  2. Vagy ha úgy érzi, hogy a LUIS helyesen értelmezte a kimondott szövegeket, az Add To Aligned Intent (Hozzáadás az igazított szándékhoz) gombbal ellenőrizheti annak megértését.

    Hozzáadás az igazított szándékhoz

  3. Miután rendezte az összes megjelenített kimondott szövegeket, próbálja meg újra betölteni az oldalt, hogy lássa, elérhető-e még több.

  4. Nagyon fontos, hogy a lehető legtöbb alkalommal ismételje meg ezt a folyamatot az alkalmazás jobb megértése érdekében.

Jó munkát!

A kész INTEGRÁLT LUIS-alkalmazás

Gratulálunk, felépített egy vegyes valóságot használó alkalmazást, amely az Azure Language Understanding Intelligence Service-t használja, hogy megértse, mit mond egy felhasználó, és felteheti a szükséges információkat.

Tesztkörnyezet eredménye

Soron kívüli gyakorlatok

1. gyakorlat

Az alkalmazás használata során észreveheti, hogy ha rátekint a Floor objektumra, és megkéri, hogy változtassa meg a színét, akkor igen. Meg tudja akadályozni, hogy az alkalmazás módosítsa a Floor (Padló) színt?

2. gyakorlat

Próbálja ki a LUIS és az alkalmazás képességeit, és bővítsen további funkciókat a jelenet objektumai számára; például hozzon létre új objektumokat a Tekintetek találati pontján attól függően, hogy mit mond a felhasználó, majd fel tudja használni ezeket az objektumokat az aktuális jelenetobjektumokkal együtt a meglévő parancsokkal.