HoloLens (1. nesil) ve Azure 303: Doğal dil anlama (LUIS)


Not

Karma Gerçeklik Akademi öğreticileri, HoloLens (1. nesil) ve Karma Gerçeklik Çevreleyici Başlığı göz içinde tasarlanmıştır. Bu nedenle, bu cihazlar için geliştirme konusunda rehberlik arayan geliştiriciler için bu öğreticileri yerinde bırakmanın önemli olduğunu hissetmeyiz. Bu öğreticiler, 2. sürüm için kullanılan en son araç kümeleri veya etkileşimler HoloLens güncelleştirilmez. Desteklenen cihazlar üzerinde çalışmaya devam etmek için bunlar korunur. Gelecekte 2. bir uygulama için geliştirmeyi gösteren yeni bir öğretici serisi HoloLens. Bu bildirim, gönderildikleri zaman bu öğreticilerin bir bağlantısıyla güncelleştirilir.


Bu kursta Azure Bilişsel Hizmetler API'sini kullanarak Language Understanding karma gerçeklik uygulamasıyla Language Understanding öğrenirsiniz.

Laboratuvar sonucu

Language Understanding (LUIS), uygulamalara kullanıcı girişlerinden anlam çıkarma olanağı sağlayan bir Microsoft Azure hizmetidir. Örneğin, bir kişinin kendi sözcükleriyle neler istediğini ayıklamak gibi. Bu, giriş bilgilerini anlayın ve öğrenerek ayrıntılı, ilgili bilgilerle yanıt vererek makine öğrenmesi aracılığıyla elde edilir. Daha fazla bilgi için Azure Language Understanding (LUIS) sayfasını ziyaret edin.

Bu kursu tamamlayan, aşağıdaki işlemleri gerçekleştirecek bir karma gerçeklik çevreleyici başlığı uygulamasına sahip oluruz:

  1. Çevreleyici başlığına bağlı Mikrofon'unu kullanarak kullanıcı girişi konuşmalarını yakalama.
  2. Yakalanan dikteyi Azure Language Understanding Intelligent Service ' e (LUIS) gönderin.
  3. LUIS'in analiz edilen gönderme bilgilerinden anlam ayıklaması ve kullanıcının isteğinin amacını belirlemeye çalışması gerekir.

Geliştirme, kullanıcının sahnedeki nesnelerin boyutunu ve rengini değiştirmek için sesi ve/veya bakışı kullanabileceği bir uygulama oluşturulmasını içerir. Hareket denetleyicilerinin kullanımı kapslanmaz.

Uygulamanıza sonuçları tasarımınız ile nasıl tümleştirebilirsiniz? Bu kurs, azure hizmetini Unity hizmetiniz ile nasıl tümleştireceklerini Project. Karma gerçeklik uygulamanızı geliştirmek için bu kurstan elde edinilen bilgileri kullanmak sizin görevinizdir.

LUIS'i birkaç kez eğitip 12. Bölüm'de ele alan eğitime hazırlıklı olun. LUIS'in eğitilma zamanları daha iyi sonuçlar elde olacaktır.

Cihaz desteği

Kurs HoloLens Çevreleyici başlığı
MR ve Azure 303: Doğal dil anlama (LUIS) ✔️ ✔️

Not

Bu kurs öncelikle çevreleyici (VR) Windows Mixed Reality başlığına odaklansa da, bu kursta edinilenleri daha iyi Microsoft HoloLens. Kursu takip ettiyken, bu adımları desteklemek için ihtiyacınız olan tüm değişikliklerle ilgili HoloLens. Bu HoloLens, ses yakalama sırasında bazı yankılar fark olabilir.

Önkoşullar

Not

Bu öğretici Unity ve C# ile ilgili temel deneyime sahip geliştiriciler için tasarlanmıştır. Ayrıca, bu belge içindeki önkoşulların ve yazılan yönergelerin, yazıldığı sırada test edilen ve doğrulananları (Mayıs 2018) temsil etmelerini de unutmayın. Araçları yükleme makalesinde listelenen en son yazılımları kullanabilirsiniz, ancak bu kursta yer alan bilgilerin aşağıda listelenenlerden daha yeni yazılımlarda bulunanlarla mükemmel bir şekilde eş olacağını varsaymanız gerekir.

Bu kurs için aşağıdaki donanım ve yazılımları öneririz:

Başlamadan önce

  1. Bu projeyi oluşturma sorunlarıyla karşılaşmamak için, bu öğreticide bahsedilen projeyi kök veya köke yakın bir klasörde oluşturmanız önemle önerilir (uzun klasör yolları derleme zamanında soruna neden olabilir).

  2. Makinenizin Dikte'yi etkinleştirmesine izin vermek için Windows Ayarlar Gizlilik > Konuşma, & Yazma Yazma'ya gidin ve Konuşma hizmetlerini aç düğmesine basın ve öneriler >

  3. Bu öğreticide yer alan kod, makinenizin Varsayılan Mikrofon Cihazı kümesinden kaydetmenize olanak sağlar. Varsayılan Mikrofon Cihazı'nın sesinizi yakalamak için kullanmak istediğiniz cihaz olarak ayarlanmış olduğundan emin olun.

  4. Başlığınız yerleşik bir mikrofona sahipse, bu ayarlarda "Başlığımı tak karşımda mikrofona geç" seçeneğinin açık olduğundan Karma Gerçeklik Portalı olun.

    Çevreleyici başlığı ayarlama

Bölüm 1 – Azure Portalı'nı ayarlama

Azure'da Language Understanding hizmetini kullanmak için, uygulamanıza kullandırılan hizmetin bir örneğini yapılandırmanız gerekir.

  1. Azure Portal'da oturum açın.

    Not

    Henüz bir Azure hesabınız yoksa bir tane oluşturmanız gerekir. Bu öğreticiyi bir sınıf veya laboratuvar ortamında takip ediyorsanız, eğitmenden veya eğitmenden birinin yeni hesabı ayarlarken yardım istemesini sorun.

  2. Oturum açtıktan sonra sol üst köşedeki Yeni'ye tıklayın ve Language Understanding araması Language Understanding'a tıklayın.

    LUIS kaynağı oluşturma

    Not

    Yeni sözcüğü, daha yeni portallarda Kaynak oluşturile değiştirilmiş olabilir.

  3. Sağdan yeni sayfa, hizmet için Language Understanding sağlar. Bu sayfanın sol alt kısmında Oluştur düğmesini seçerek bu hizmetin bir örneğini oluşturun.

    LUIS hizmeti oluşturma - yasal bildirim

  4. Oluştur'a tıklarken:

    1. Bu hizmet örneği için istediğiniz Adı girin.

    2. Bir Abonelik seçin.

    3. İLK kez LUIS Hizmeti oluşturuyorsanız, sizin için uygun Fiyatlandırma Katmanını seçin.Ücretsiz katmanın (F0 adlı) kullanılabilir olması gerekir. Ücretsiz ayırma bu kurs için yeterli olacaktır.

    4. Bir Kaynak Grubu seçin veya yeni bir tane oluşturun. Kaynak grubu, Bir Azure varlık koleksiyonu için faturalamayı izleme, erişimi denetleme, sağlama ve yönetme için bir yol sağlar. Tek bir projeyle ilişkili tüm Azure hizmetlerinin (bu kurslar gibi) ortak bir kaynak grubu altında tutularak kullanılması önerilir.

      Azure Kaynak Grupları hakkında daha fazla bilgi için lütfen kaynak grubu makalesine bakın.

    5. Kaynak grubu için Konum belirleme (yeni bir Kaynak Grubu oluşturuyorsanız). Konum ideal olarak uygulamanın çalıştırılaca bölgede olur. Bazı Azure varlıkları yalnızca belirli bölgelerde kullanılabilir.

    6. Ayrıca, bu Hizmete uygulanan Hüküm ve Koşulları anlanızı da onaylamanız gerekir.

    7. Oluştur’u seçin.

      LUIS hizmeti oluşturma - kullanıcı girişi

  5. Oluştur'a tıkladıktansonra, hizmetin oluşturulacak olması için beklemelisiniz, bu bir dakika kadar zaman alır.

  6. Hizmet örneği oluşturulduktan sonra portalda bir bildirim görüntülenir.

    Yeni Azure bildirim resmi

  7. Yeni Hizmet örneğinizi keşfetmek için bildirime tıklayın.

    Başarılı kaynak oluşturma bildirimi

  8. Yeni Hizmet örneğinizi keşfetmek için bildirimde Kaynağa git düğmesine tıklayın. Yeni LUIS hizmeti örneğine götürüleceksiniz.

    LUIS Anahtarlara Erişme

  9. Bu öğreticide, uygulamanın hizmetinize çağrılar yapmaları gerekir ve bu çağrı hizmetinizin Abonelik Anahtarı kullanılarak yapılır.

  10. LUIS API hizmetinizin Hızlı başlangıç sayfasında, ilk adım olan Anahtarlarınızı al'a gidin ve Anahtarlar'a tıklayın (bunu, hizmet gezinti menüsündeki anahtar simgesiyle gösterilir mavi köprü Anahtarları'ne tıklayarak da gerçekleştirebilirsiniz). Bu, hizmetinizin Anahtarlarını ortaya çıkartır.

  11. Görüntülenen anahtarlardan birinin bir kopyasını kopyalayın çünkü buna daha sonra projeniz içinde ihtiyacınız olacak.

  12. Hizmet sayfasında, LUIS Language Understanding yeni Hizmetinizi oluşturmak için kullanmak üzere web sayfasına yeniden yönlendirilmesi için Language Understanding Portal'a tıklayın.

Bölüm 2 – Language Understanding portalı

Bu bölümde, LUSıS portalında bir Luo uygulamasının nasıl yapılacağını öğreneceksiniz.

Önemli

Lütfen bu bölümde yer alanvarlıkları, amaçlarıve göz önünde bulundurulmaları ayarlamanın yalnızca lusıs hizmetini oluşturmanın ilk adımı olduğunu unutmayın: Ayrıca, hizmeti daha doğru hale getirmek için birkaç kez yeniden eğitmeniz gerekecektir. Hizmetiniz yeniden eğitiminde bu kursun son bölümünde bahsedildiğinden emin olun.

  1. Language Understanding portalınaulaştıktan sonra, Azure Portal ile aynı kimlik bilgileriyle oturum açmanız gerekebilir.

    LUSıS oturum açma sayfası

  2. LUSıS 'yi ilk kez kullanıyorsanız, bu uygulama oluştur düğmesine tıklayarak ve ardından bu uygulamayı bulmak için hoş geldiniz sayfasının en altına inmelisiniz.

    LUSıS uygulaması oluşturma sayfası

  3. Oturum açtıktan sonra uygulamalarım ' a tıklayın (Şu anda bu bölümde değilseniz). Ardından Yeni uygulama oluştur' a tıklayabilirsiniz.

    LUSıS-uygulamalarım görüntüsü

  4. Uygulamanıza bir adverin.

  5. Uygulamanızın Ingilizce 'den farklı bir dili anlaması gerekiyorsa, kültürü uygun dille değiştirmelisiniz.

  6. Burada, yeni LUIS uygulamanızın açıklamasını da ekleyebilirsiniz.

    LUO-yeni bir uygulama oluşturma

  7. Bitti' ye bastıktan sonra, yeni Luo uygulamanızın Build sayfasını girersiniz.

  8. Burada anlaşılması birkaç önemli kavram vardır:

    • Amaç, kullanıcıdan bir sorgu takip edilecek şekilde çağrılacak yöntemi temsil eder. Bir Amaç bir veya daha fazla varlığasahip olabilir.
    • Varlık, bir sorgunun Amaçile ilgili bilgileri açıklayan bir bileşenidir.
    • Söyleyler, geliştiricilerin kendi kendine eğmesi için kullanacağı, geliştiricitarafından verilen sorguların örnekleridir.

Bu kavramlar kusursuz bir şekilde net değilse, bu konu bu bölümde daha ayrıntılı olarak açıklanacak olduğundan endişelenmeyin.

Bu kursu oluşturmak için gereken varlıkları oluşturarak başlarsınız.

  1. Sayfanın sol tarafında, varlıklar' a ve ardından yeni varlık oluştur' a tıklayın.

    Yeni varlık oluştur

  2. Yeni varlık renginiçağırın, türünü basitolarak ayarlayın ve bitti' ye basın.

    Basit varlık oluşturma-renk

  3. Şu adlı üç (3) daha basit varlık oluşturmak için bu işlemi tekrarlayın:

    • veritabanınızı
    • boyutu aşağı
    • hedef

Sonuç aşağıdaki görüntüye benzer şekilde görünmelidir:

Varlık oluşturma sonucu

Bu noktada amaçlarıoluşturmaya başlayabilirsiniz.

Uyarı

Yok hedefini silmeyin.

  1. Sayfanın sol tarafında, amaçlar' a ve ardından Yeni amaç oluştur' a tıklayın.

    Yeni amaçlar oluştur

  2. Yeni Amaçchangeobjectcoloröğesini çağırın.

    Önemli

    Bu Amaç adı bu kursun ilerleyen kısımlarında yer alan kodda kullanılır, bu nedenle en iyi sonuçlar için bu adı tam olarak belirtilen şekilde kullanın.

Adı onaylamadan sonra, amaçlar sayfasına yönlendirilirsiniz.

Lua-amaçlar sayfası

5 veya daha fazla farklı bildirimyazmanız isteyen bir TextBox olduğunu fark edeceksiniz.

Not

LUSıS tüm söyleylerini küçük harfe dönüştürür.

  1. Üstteki metin kutusuna aşağıdaki utterance 'i ekleyin (Şu anda 5 örnek Ile ilgili metin türü... ) ve ENTERtuşuna basın:
The color of the cylinder must be red

Yeni utterance 'in, altında bir listede göründüğünü fark edeceksiniz.

Aynı süreci izleyerek, aşağıdaki altı (6) Utlaya koyun:

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

Oluşturduğunuz her bir Söylük için, Luas 'in varlık olarak kullanılması gereken kelimeleri belirlemeniz gerekir. Bu örnekte, tüm renkleri bir renk varlığı olarak etiketleyip bir hedefe yapılan tüm olası başvuruyu hedef varlık olarak etiketetmeniz gerekir.

  1. Bunu yapmak için, ilk deneyin içindeki silindiri tıklamasını ve hedef' i seçin.

    Utterance hedeflerini tanımla

  2. Şimdi ilk Söylük içindeki kırmızı sözcüğe tıklayın ve renk' i seçin.

    Utterance varlıklarını tanımla

  3. Sonraki satırı etiketleyip, küpün bir hedefolması gerekir ve Siyah bir renkolmalıdır. Ayrıca, sağladığımız ' this ', ' It 've ' this Object 'sözcüklerinin kullanılmasına de dikkat edin. bu nedenle, özel olmayan hedef türleri de kullanılabilir hale gelir.

  4. Tüm söyleyene, varlıkların etiketleneceği sürece bu işlemi yineleyin. Yardıma ihtiyacınız varsa aşağıdaki resme bakın.

    İpucu

    Bunları varlıklar olarak etiketlemek için sözcükler seçerken:

    • Tek sözcüklerde yalnızca bunlara tıklamaları yeterlidir.
    • İki veya daha fazla sözcük kümesi için, başlangıçta ve ardından küme sonunda öğesine tıklayın.

    Not

    Varlıklar/belirteçler görünümüarasında geçiş yapmak Için belirteçler görünümü değiştirme düğmesini kullanabilirsiniz!

  5. Sonuçlar, aşağıdaki resimlerde gösterildiği gibi olmalıdır ve varlıklar/belirteçler görünümügösterilir:

    Belirteçler  varlıkları görünümleri

  6. Bu noktada, sayfanın sağ üst kısmındaki eğit düğmesine basın ve yeşil renkli bir göstergeyi açmak için bekleyin. Bu, LUO 'NUN bu amacı tanımak için başarılı bir şekilde eğitildiğini gösterir.

    LUSıS eğitme

  7. Sizin için bir alıştırma olarak, hedef, yükseltmeve aşağı boyutvarlıkları kullanılarak changeobjectsizeadlı yeni bir amaç oluşturun.

  8. Önceki amaç ile aynı süreci izleyerek, Boyut değişikliğine yönelik olarak aşağıdaki sekiz (8) utbotları ekleyin:

    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. Sonuç aşağıdaki görüntüde olacak şekilde olmalıdır:

    ChangeObjectSize belirteçlerini/varlıklarını ayarlayın

  10. Her iki amaç, Changeobjectcolor ve changeobjectsizeoluşturulduktan ve eğitilen, sayfanın üst kısmındaki Yayımla düğmesine tıklayın.

    LUSıS hizmetini Yayımla

  11. Yayımla sayfasında, kodunuzla ERIŞILEBILMESI için lusıs uygulamanızı sonlandırarak yayımlamanız gerekir.

    1. Aşağı açılan yayımlamayıÜretimolarak ayarlayın.

    2. Saat dilimini saat diliminize ayarlayın.

    3. Tüm öngörülen amaç puanlarını dahilet kutusunu işaretleyin.

    4. Üretim yuvasına Yayımla' ya tıklayın.

      Ayarlar yayımla

  12. Kaynak ve anahtarlarbölümünde:

    1. Azure portalında hizmet örneği için ayarladığınız bölgeyi seçin.
    2. Aşağıda bir Starter_Key öğesi olduğunu fark edeceksiniz, yoksayabilirsiniz.
    3. Anahtar Ekle ' ye tıklayın ve hizmet örneğinizi oluştururken Azure portalında elde ettiğiniz anahtarı ekleyin. Azure ve Lua portalınız aynı kullanıcı için oturum açarsa, kiracı adı, abonelik adıve kullanmak istediğiniz anahtar Için açılan menüler sunulur (Azure portalında daha önce sağlanmış aynı ada sahip olacaktır).

    Önemli

    Uç nokta' ın altında, eklediğiniz anahtara karşılık gelen uç noktanın bir kopyasını alın, daha sonra bu dosyayı kodunuzda kullanacaksınız.

Bölüm 3 – Unity projesini ayarlama

Aşağıda, karma gerçeklik ile geliştirme için tipik bir kurulum ve bu nedenle diğer projeler için iyi bir şablondur.

  1. Unity 'yi açın ve Yeni' ye tıklayın.

    Yeni Unity projesi başlatın.

  2. şimdi bir Unity Project adı sağlamanız, MR_LUISeklemeniz gerekir. Proje türünün 3Bolarak ayarlandığından emin olun. Konumu sizin için uygun bir yere ayarlayın (unutmayın, kök dizinlerin yakınına daha iyi). Ardından proje oluştur' a tıklayın.

    Yeni Unity projesinin ayrıntılarını sağlayın.

  3. Unity açık olduğunda, varsayılan komut dosyası düzenleyicisininVisual Studioolarak ayarlanmış olması gerekir. Tercihleri Düzenle ' ye gidin > ve sonra yeni penceresinden >' a gidin. dış betik düzenleyicisiniVisual Studio 2017olarak değiştirin. Tercihler penceresini kapatın.

    Güncelleştirme betiği Düzenleyicisi tercihi.

  4. ardından, dosya derleme Ayarlar gidin ve platformu değiştir düğmesine tıklayarak platformu Evrensel Windows Platformu.

    Ayarlar pencere oluşturun, platformu UWP 'e geçirin.

  5. dosya derleme Ayarlar gidin ve şunları yaptığınızdan emin olun:

    1. Hedef cihazherhangi bir cihaza ayarlanmış

      Microsoft HoloLens için hedef cihazıHoloLensolarak ayarlayın.

    2. Yapı türüD3D olarak ayarlandı

    3. SDKen son yüklü olarak ayarlandı

    4. Visual Studio sürümüen son yüklü olarak ayarlandı

    5. Oluşturma ve çalıştırma , yerel makine olarak ayarlandı

    6. Sahneyi kaydedin ve yapıya ekleyin.

      1. Açık sahneler Ekleseçeneğini belirleyerek bunu yapın. Bir Kaydet penceresi görüntülenir.

        Açık sahneler Ekle düğmesine tıklayın

      2. Bu, yeni klasör oluşturmak için yeni bir klasör oluşturun ve gelecekte yeni bir klasör seçin.

        Yeni betikler klasörü oluştur

      3. Yeni oluşturulan sahneler klasörünüzü açın ve ardından dosya adı: metin alanına MR_LuisSceneyazın ve ardından Kaydet' e basın.

        Yeni sahneye bir ad verin.

    7. yapı Ayarlariçindeki kalan ayarlar şimdilik varsayılan olarak bırakılmalıdır.

  6. derleme Ayarlar penceresinde, Player Ayarlar düğmesine tıklayın, bu işlem ilgili paneli ınspector 'ın bulunduğu alanda açar.

    Oynatıcı ayarları 'nı açın.

  7. Bu panelde, bazı ayarların doğrulanması gerekir:

    1. diğer Ayarlar sekmesinde:

      1. Betik çalışma zamanı sürümükararlı olmalıdır (.NET 3,5 eşdeğeri).

      2. Komut dosyası arka ucu.net olmalıdır

      3. API Uyumluluk düzeyi.NET 4,6 olmalıdır

        Diğer ayarları güncelleştirin.

    2. yayımlama Ayarlar sekmesi içinde, yetenekleraltında şunları denetleyin:

      1. InternetClient

      2. Mikrofon

        Yayımlama ayarları güncelleştiriliyor.

    3. panelin daha aşağısında, xr Ayarlar (aşağıda yayımla Ayarlarbulunur), sanal gerçeklik desteklenir, Windows Mixed Reality SDK 'nın eklendiğinden emin olun.

      X R Ayarlar güncelleştirin.

  8. derleme AyarlarUnity C# projelerine geri dön, bunun yanındaki onay kutusunu işaretleyin.

  9. derleme Ayarlar penceresini kapatın.

  10. sahninizi ve Project kaydedin (dosya sahneyi kaydet/dosya > projeyi kaydet).

Bölüm 4 – sahneyi oluşturun

Önemli

Bu kursun Unity kümesi bileşenini atlamak ve koda doğrudan kod ile devam etmek istiyorsanız, bu . unitypackage' ı indirebilir, projenize özel bir paketolarak içeri aktarın ve ardından Bölüm 5' ten devam edin.

  1. Hiyerarşi panelininboş bir alanına sağ tıklayın, 3B nesnealtında bir düzlemekleyin.

    Düzlem oluşturun.

  2. Daha fazla nesne oluşturmak için hiyerarşi içinde sağ tıkladığınızda, seçili nesne yeni nesnenizin üst öğesi olacak şekilde, seçilen nesne yeni nesnenizin üst öğesi olacaktır. Bu, hiyerarşide boş bir alana sol tıklandıktan sonra sağ tıklamasını önleyin.

  3. Aşağıdaki nesneleri eklemek için yukarıdaki yordamı tekrarlayın:

    1. Sphere
    2. Dire
    3. Küp
    4. 3B metin
  4. Elde edilen sahne hiyerarşisi aşağıdaki görüntüde olacak şekilde olmalıdır:

    Sahne hiyerarşisi kurulumu.

  5. Ana kameraya sol tıklayarak seçin, Inspector paneline bakın ve tüm bileşenleriyle birlikte Camera nesnesini görürsünüz.

  6. Inspector panelininen altında bulunan Bileşen Ekle düğmesine tıklayın.

    Ses kaynağı Ekle

  7. Yukarıda gösterildiği gibi, ses kaynağıadlı bileşeni arayın.

  8. Ayrıca, ana kameranın dönüştürme bileşeninin (0, 0, 0) olarak ayarlandığından emin olun; bu, kameranın dönüştürme bileşeninin yanındaki dişli simgesine basılarak ve Sıfırla' yı seçerek yapılabilir. Dönüştürme bileşeni daha sonra şöyle görünmelidir:

    1. Konum0, 0, 0olarak ayarlandı.
    2. Döndürme0, 0, 0olarak ayarlandı.

    Not

    Microsoft HoloLens için, ana kameranızdakikamera bileşeninin bir parçası olan aşağıdakileri de değiştirmeniz gerekir:

    • Işaretleri temizle: Düz renk.
    • Arka plan ' Black, Alpha 0 ' – onaltılı renk: #00000000.
  9. Düzlemin sol düğmesine tıklayarak seçin. Inspector panelinde , Transform bileşenini aşağıdaki değerlerle ayarlayın:

    X Ekseni Y Ekseni Z ekseni
    0 -1 0
  10. Seçmek için Sphere öğesine sol tıklayın. Inspector panelinde , Transform bileşenini aşağıdaki değerlerle ayarlayın:

    X Ekseni Y Ekseni Z ekseni
    2 1 2
  11. Sol taraftaki silindire tıklayarak seçin. Inspector panelinde , Transform bileşenini aşağıdaki değerlerle ayarlayın:

    X Ekseni Y Ekseni Z ekseni
    -2 1 2
  12. Küpün sol düğmesine tıklayarak seçin. Inspector panelinde , Transform bileşenini aşağıdaki değerlerle ayarlayın:

    Dönüştürme konumu | Dönüştürme- döndürme
    Sayı Iz Kadar | Sayı Iz Kadar
    0 1 4 | 45 45 0
  13. Yeni metin nesnesine sol tıklayarak seçin. Inspector panelinde , Transform bileşenini aşağıdaki değerlerle ayarlayın:

    Dönüştürme konumu | Dönüştür- Ölçekle
    Sayı Iz Kadar | Sayı Iz Kadar
    -2 6 9 | 0.1 0.1 0.1
  14. Metin kafesi bileşenindeki yazı tipi boyutunu50olarak değiştirin.

  15. Metin kafes nesnesinin adınıdikte metniyledeğiştirin.

    3B metin nesnesi oluştur

  16. Hiyerarşi paneli yapınız şu şekilde görünmelidir:

    sahne görünümünde metin ağı

  17. Son sahnenin aşağıdaki görüntü gibi görünmesi gerekir:

    Sahne görünümü.

Bölüm 5 – mikro PhoneManager sınıfını oluşturma

Oluşturacağınız ilk betik, mikro PhoneManager sınıfıdır. Bundan sonra, Luismanager, yetki kaldırıldığında davranışlar sınıfı ve son olarak Gaze sınıfını oluşturacaksınız (Bu, her bölüme ulaştığınız sürece ele alınacaktır).

Mikro PhoneManager sınıfı şu şekilde sorumludur:

  • Kulaklığa veya makineye bağlı kayıt cihazını algılama (hangisi varsayılan bir tane olur).
  • Ses (ses) yakalayın ve bir dize olarak depolamak için dikte kullanın.
  • Ses duraklatıldıktan sonra, dikte etme Işlemini Luismanager sınıfına gönderebilirsiniz.

Bu sınıfı oluşturmak için:

  1. Project Panel, klasör oluştur' a sağ tıklayın. Klasör betikleri' ni çağırın.

    Betikler klasörü oluştur.

  2. Betikler klasörü oluşturulduktan sonra açmak için çift tıklayın. Ardından, bu klasörün içinde, C# betiği oluştur' a sağ tıklayın. Betiği mikro PhoneManagerolarak adlandırın.

  3. Visual Studioile açmak Için mikro PhoneManager ' a çift tıklayın.

  4. Aşağıdaki ad alanlarını dosyanın en üstüne ekleyin:

        using UnityEngine;
        using UnityEngine.Windows.Speech;
    
  5. Daha sonra mikro PhoneManager sınıfına aşağıdaki değişkenleri ekleyin:

        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. Uyanık () ve Start () yöntemlerinin kodu artık eklenmelidir. Bu, sınıf başlatıldığında çağrılır:

        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. Artık uygulamanın, ses yakalamayı başlatmak ve durdurmak için kullandığı yönteme ihtiyacınız vardır ve bu uygulamayı yakında derlemenize sonra Luismanager sınıfına geçitirsiniz.

        /// <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. Ses durakladığında çağrılacak bir dikte işleyici ekleyin. Bu yöntem, dikte metnini Luismanager sınıfına geçicektir.

        /// <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);
        }
    

    Önemli

    Bu sınıf bunu kullanmayacak olduğundan Update () yöntemini silin.

  9. Unity'ye dönmeden önce Visual Studio değişikliklerinizi kaydettiğinizden emin olun.

    Not

    Bu noktada, Unity Düzenleyicisi konsol panelindebir hata olduğunu fark edeceksiniz. Bunun nedeni, kodun bir sonraki bölümde oluşturacağınız Luismanager sınıfına başvuracaktır.

Bölüm 6 – LUISManager sınıfını oluşturma

Azure LUSıS hizmetine çağrı yapan Luismanager sınıfını oluşturmanız zaman alabilir.

Bu sınıfın amacı, mikro PhoneManager sınıfından dikte metini almak ve analiz edilecek Azure Language Understanding API göndermek için kullanılır.

Bu sınıf JSON yanıtının serisini kaldıracak ve bir eylemi tetiklemek için yetki kaldırıldığında davranışlar sınıfının uygun yöntemlerini çağıracaktır.

Bu sınıfı oluşturmak için:

  1. Betikleri açmak için betikler klasörüne çift tıklayın.

  2. Betikler klasörünün içine sağ tıklayın, C# betiği oluştur' a tıklayın. Komut dosyasını Luismanagerolarak adlandırın.

  3. Visual Studio ile açmak için betiğe çift tıklayın.

  4. Aşağıdaki ad alanlarını dosyanın en üstüne ekleyin:

        using System;
        using System.Collections;
        using System.Collections.Generic;
        using System.IO;
        using UnityEngine;
        using UnityEngine.Networking;
    
  5. Azure 'dan, serisi kaldırılan JSON yanıtını temsil edecek şekilde, Luismanager sınıfında ( Start () yönteminin üzerinde bulunan aynı komut dosyası içinde) üç sınıf oluşturarak başlarsınız.

        [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. Sonra, aşağıdaki değişkenleri Luismanager sınıfına ekleyin:

        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. LUME uç noktanızı hemen yerleştirdiğinizden emin olun (LUıN portalından sahip olursunuz).

  8. Artık uyanık () yöntemi için kod eklenmesi gerekiyor. Bu yöntem, sınıf başlatıldığında çağrılır:

        private void Awake()
        {
            // allows this class instance to behave like a singleton
            instance = this;
        }
    
  9. Artık bu uygulamanın kullandığı yöntemlere, mikro PhoneManager sınıfından alınan dikte işlemini lusıs'e göndermek için ve ardından yanıtı alıp serisini kaldırmak için kullanmanız gerekir.

  10. Amaç ve ilişkili varlıkların değeri belirlendikten sonra, amaçlanan eylemi tetiklemek için yetki kaldırıldığında davranışlar sınıfının örneğine geçirilir.

        /// <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. Elde edilen analiz Sedquery 'yi okuyacak ve varlıkları belirleyecek olan Analbseresponseelements () adlı yeni bir yöntem oluşturun. Bu varlıklar belirlendikten sonra, Eylemler içinde kullanmak için yetki kaldırıldığında davranışlar sınıfının örneğine geçirilir.

        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;
            }
        }
    

    Önemli

    Start () ve Update () yöntemlerini bu sınıftan kullanmayacak şekilde silin.

  12. Unity'ye dönmeden önce Visual Studio değişikliklerinizi kaydettiğinizden emin olun.

Not

Bu noktada, Unity Düzenleyicisi konsol panelindebirkaç hata olduğunu fark edeceksiniz. Bunun nedeni, kodun bir sonraki bölümde oluşturacağınız yetki kaldırıldığında davranışlar sınıfına başvuracaktır.

Bölüm 7 – yetki kaldırıldığında davranışlar sınıfını oluşturma

Yetki kaldırıldığında davranışlar sınıfı, luismanager sınıfı tarafından sunulan varlıkları kullanarak eylemleri tetikler.

Bu sınıfı oluşturmak için:

  1. Betikleri açmak için betikler klasörüne çift tıklayın.

  2. Betikler klasörünün içine sağ tıklayın, C# betiği oluştur' a tıklayın. Betiği yetki kaldırıldığında davranışlarolarak adlandırın.

  3. Visual Studioile açmak için betiğe çift tıklayın.

  4. Ardından, yetki kaldırıldığında davranışlar sınıfının içine aşağıdaki değişkenleri ekleyin:

        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. Uyanık () yöntemi kodunu ekleyin. Bu yöntem, sınıf başlatıldığında çağrılır:

        void Awake()
        {
            // allows this class instance to behave like a singleton
            instance = this;
        }
    
  6. Aşağıdaki yöntemler, hangi nesnenin sorgunun hedefi olduğunu belirleyip, sonra uygun eylemi tetiklemek için Luismanager sınıfı tarafından çağırılır (daha önce oluşturduğunuz).

        /// <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. Geçerli hedefin hedefi olan Gameobjects 'ı belirleyen findtarget () yöntemini ekleyin. Bu Yöntem, varlıklarda hiçbir açık hedef tanımlanmazsa, hedefi "gaz" olarak ayarlar.

        /// <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;
        }
    

    Önemli

    Start () ve Update () yöntemlerini bu sınıftan kullanmayacak şekilde silin.

  8. Unity'ye dönmeden önce Visual Studio değişikliklerinizi kaydettiğinizden emin olun.

Bölüm 8 – Gaze sınıfı oluşturma

Bu uygulamayı doldurmanız gereken son sınıf, Gaze sınıfıdır. Bu sınıf, kullanıcının görsel odağında bulunan Gameobject başvurusunu güncelleştirir.

Bu sınıfı oluşturmak için:

  1. Betikleri açmak için betikler klasörüne çift tıklayın.

  2. Betikler klasörünün içine sağ tıklayın, C# betiği oluştur' a tıklayın. Betiği Gazeolarak adlandırın.

  3. Visual Studioile açmak için betiğe çift tıklayın.

  4. Bu sınıf için aşağıdaki kodu ekleyin:

        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. Unity'ye dönmeden önce Visual Studio değişikliklerinizi kaydettiğinizden emin olun.

Bölüm 9 – sahne kurulumunu tamamlama

  1. Sahnenin kurulumunu tamamlamaya yönelik olarak, komut dosyaları klasöründen oluşturduğunuz her betiği hiyerarşi panelindeana kamera nesnesine sürükleyin.

  2. Ana kamerayı seçin ve Inspector panelinebakın, eklediğiniz her bir betiği görmeniz ve henüz ayarlanamayacak olan her bir betikte parametre olduğunu fark edeceksiniz.

    Kamera başvuru hedeflerini ayarlama.

  3. Bu parametreleri doğru bir şekilde ayarlamak için aşağıdaki yönergeleri izleyin:

    1. Mikro PhoneManager:

      • Hiyerarşi panelindendikte metni nesnesini dikte metni parametre değeri kutusuna sürükleyin.
    2. Yetki kaldırıldığında davranışlar, hiyerarşi panelinden:

      • Sphere nesnesini Sphere başvuru hedefi kutusuna sürükleyin.
      • Silindirisilindirreference hedef kutusuna sürükleyin.
      • Kübüküp başvurusu hedef kutusuna sürükleyin.
    3. Gaze:

      • Gaze maksimum uzaklığını300 (henüz yoksa) olarak ayarlayın.
  4. Sonuç aşağıdaki görüntüye benzer şekilde görünmelidir:

    Kamera başvuru hedefleri gösteriliyor, şimdi ayarlandı.

Bölüm 10 – Unity düzenleyicisinde test

Sahne kurulumunun düzgün şekilde uygulandığını test edin.

Aşağıdakileri doğrulayın:

  • Tüm betikler ana kamera nesnesine eklenir.
  • Ana kamera denetçisi panelindeki tüm alanlar düzgün şekilde atanır.
  1. Unity düzenleyicisindeoynat düğmesine basın. Uygulamanın, ekli tam ekran kulaklığı içinde çalışıyor olması gerekir.

  2. Birkaç tane deneyin, örneğin:

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

    Not

    Unity konsolunda varsayılan ses cihazı değiştirme hakkında bir hata görürseniz, sahne beklendiği gibi çalışmayabilir. Bunun nedeni, karma gerçeklik portalının, bulunan kulaklıklar için yerleşik mikrofonlarla nasıl uğraşır. Bu hatayı görürseniz, sahneyi durdurup yeniden başlatmanız yeterlidir, ancak beklendiği gibi çalışmalıdır.

Bölüm 11 – UWP çözümünü derleyin ve dışarıdan yükleyin

Uygulamanın Unity düzenleyicisinde çalıştığından emin olduktan sonra, derleme ve dağıtma için hazırlanın.

Oluşturmak için:

  1. Dosya Kaydet'e tıklayarak geçerli sahneyi kaydedin.

  2. dosya derleme Ayarlargidin.

  3. Unity C# projeleri adlı kutuyu işaret edın (UWP projesi oluşturulduktan sonra kodunuzda hata ayıklama ve hata ayıklama için faydalıdır.

  4. Açık sahneler Ekle' ye tıklayın ve ardından Oluştur' a tıklayın.

    Ayarlar pencere oluştur

  5. Çözümü derlemek istediğiniz klasörü seçmeniz istenir.

  6. Bir derlemeler klasörü oluşturun ve bu klasörün içinde uygun bir ada sahip başka bir klasör oluşturun.

  7. Bu konumda yapıya başlamak için Klasör Seç ' e tıklayın.

    Derlemeler klasörü oluşturmaderlemeler klasörünü Seç

  8. Unity oluşturma işlemi tamamlandıktan sonra (biraz zaman alabilir), derlemenize ait bir Dosya Gezgini penceresi açması gerekir.

Yerel makinede dağıtmak için:

  1. Visual Studio, önceki bölümdeoluşturulan çözüm dosyasını açın.

  2. Çözüm platformundax86, yerel makine' yi seçin.

  3. Çözüm yapılandırmasındaHata Ayıkla' yı seçin.

    Microsoft HoloLens için, bunu uzak makineyeayarlamayı daha kolay bulabilirsiniz, böylece bilgisayarınıza tethered. Ancak, şunları da yapmanız gerekir:

    • HoloLens ıp adresini öğrenin ve bu, Ayarlar Internet > Wi-Fi > gelişmiş seçenekleriçinde bulunabilir; ıpv4, kullanmanız gereken adrestir.
    • Geliştirici modununAçıkolduğundan emin olun; geliştiriciler için Ayarlar güncelleştirme güvenliği' nde bulunur.

    Uygulama dağıtma

  4. Derleme menüsüne gidin ve uygulamayı makinenize dışarıdan yüklemek Için Çözümü dağıt ' a tıklayın.

  5. Uygulamanız artık yüklü uygulamalar listesinde görünmelidir, başlamaya hazır!

  6. Uygulama başlatıldıktan sonra, mikrofonaerişim yetkisi vermeniz istenir. Hareket denetleyicileriniveya sesli girişiveya klavyeyi kullanarak Evet düğmesine basın.

Bölüm 12 – LUSıS hizmetinizi geliştirme

Önemli

Bu bölüm, inanılmaz önemlidir ve birkaç kez yinelenebilir, çünkü LUSıS hizmetinizin doğruluğunu artırmaya yardımcı olur: bunu tamamladığından emin olun.

Luo tarafından verilen anlama düzeyini artırmak için, yeni duymaları yakalayıp LUSıS uygulamanızı yeniden eğtirecek şekilde kullanmanız gerekir.

Örneğin, "Artır" ve "Yükselt" gibi eğitmem, ancak uygulamanızın "büyütme" gibi kelimeleri de anlaması gerekmez.

Uygulamanızı birkaç kez kullandıysanız, söylediğiniz her şey LUO tarafından toplanacak ve LUU PORTALıNDA kullanılabilir.

  1. Bu bağlantıyıizleyerek Portal uygulamanıza gidin ve oturum açın.

  2. MS kimlik bilgilerinizle oturum açtıktan sonra uygulamanızın adınatıklayın.

  3. Sayfanın solundaki Endpoint deterlerini gözden geçir düğmesine tıklayın.

    Detersliği gözden geçirme

  4. Karma Gerçeklik uygulamanız tarafından LUYA gönderilen söyleyler listesi gösterilir.

    Utterslar listesi

Vurgulanan bazı varlıklarıfark edeceksiniz.

Vurgulanan her sözcüğün üzerine gelindiğinde her bir gözlük gözden geçirebilir ve hangi varlığın doğru şekilde tanındığını, hangi varlıkların yanlış olduğunu ve hangi varlıkların eksik olduğunu belirleyebilirsiniz.

Yukarıdaki örnekte, "Spear" sözcüğünün bir hedef olarak vurgulandığını bulmuştur. bu nedenle, fare ile sözcüğün üzerine gelip etiketi kaldır' a tıklayarak gerçekleştirilen hata düzeltmesini düzeltmeniz gerekir.

Uttersliği denetleEtiket görüntüsünü kaldır

  1. Tamamen yanlış olan Matersliği bulursanız, ekranın sağ tarafındaki Sil düğmesini kullanarak bunları silebilirsiniz.

    Yanlış utbotları Sil

  2. Ya da LUIN, Utterliği doğru şekilde yorumladığını düşünüyorsanız, bu denetimin nasıl öğrendiğini, hizalanmış amacı Ekle düğmesini kullanarak doğrulayabilirsiniz.

    Hizalanmış amaç 'a Ekle

  3. Görüntülenen tüm Dıklarları sıraladıktan sonra, daha fazla kullanılabilir olup olmadığını görmek için sayfayı yeniden yükleyin.

  4. Bu işlemi, uygulamanızın anlılığını artırmak için olabildiğince çok kez yinelemek çok önemlidir.

İyi eğlenceler!

Tamamlanmış LUSıS tümleşik uygulamanız

Tebrikler, bir kullanıcının ne olduğunu anlamak ve bu bilgileri üzerinde işlem yapmak için Azure Language Understanding Intelligence hizmetinden yararlanan bir karma gerçeklik uygulaması derlediniz.

Laboratuvar sonucu

Ek alıştırmalar

Alıştırma 1

Bu uygulamayı kullanırken, taban nesne ve rengini değiştirmeyi sorduğunuz zaman bunu fark edebilirsiniz. Uygulamanızın kat rengini değiştirmesini nasıl durdurabileceğinizi biliyor musunuz?

Alıştırma 2

, Sahnedeki nesneler için ek işlevler ekleyerek LUSıS ve uygulama yeteneklerini genişletmeyi deneyin; örnek olarak, kullanıcının ne yazdığına bağlı olarak, Gaze isabet noktasında yeni nesneler oluşturun ve ardından bu nesneleri mevcut sahne nesneleriyle birlikte kullanarak var olan komutları kullanın.