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


Not

Karma Gerçeklik Academy öğreticileri HoloLens (1. nesil) ve Karma Gerçeklik Immersive Headsets düşünülerek tasarlanmıştır. Bu nedenle, bu cihazlar için geliştirme konusunda hala rehberlik arayan geliştiriciler için bu öğreticileri yerinde bırakmanın önemli olduğunu hissediyoruz. Bu öğreticiler, HoloLens 2 için kullanılan en son araç kümeleri veya etkileşimlerle güncelleştirilmez. Desteklenen cihazlarda çalışmaya devam etmek için bakımları yapılır. Gelecekte HoloLens 2 için nasıl geliştirileceğini gösteren yeni bir öğretici serisi sunulacaktır. Bu bildirim, gönderildiğinde bu öğreticilerin bağlantısıyla güncelleştirilir.


Bu kursta, Language Understanding API'siyle Azure Bilişsel Hizmetler'i kullanarak Language Understanding karma gerçeklik uygulamasıyla tümleştirmeyi öğreneceksiniz.

Laboratuvar sonucu

Language Understanding (LUIS), uygulamalara bir kişinin isteyebileceklerini kendi sözcükleriyle ayıklama gibi kullanıcı girişlerinden anlam çıkarabilme olanağı sağlayan bir Microsoft Azure hizmetidir. Bu, giriş bilgilerini anlayıp öğrenen ve ardından ayrıntılı, ilgili bilgilerle yanıt verebilen makine öğrenmesi aracılığıyla sağlanır. Daha fazla bilgi için Azure Language Understanding (LUIS) sayfasını ziyaret edin.

Bu kursu tamamladıktan sonra aşağıdakileri yapabilecek karma gerçeklik çevreleyici bir mikrofonlu kulaklık uygulamasına sahip olacaksınız:

  1. Çevreleyici mikrofonlu kulaklığa bağlı Mikrofonu kullanarak kullanıcı giriş konuşmasını yakalayın.
  2. Yakalanan dikteyi Azure Language Understanding Intelligent Service'e (LUIS) gönderin.
  3. LUIS'in analiz edilecek gönderme bilgilerinden anlam çıkartır ve kullanıcının isteğinin amacını belirlemeye çalışır.

Geliştirme, kullanıcının sahnedeki nesnelerin boyutunu ve rengini değiştirmek için ses ve/veya bakış kullanabildiği bir uygulama oluşturmayı içerir. Hareket denetleyicilerinin kullanımı kapsanmaz.

Uygulamanızda, sonuçları tasarımınızla nasıl tümleştireceğiniz size bağlı. Bu kurs, bir Azure Hizmetini Unity Projenizle tümleştirmeyi öğretmek için tasarlanmıştır. Karma gerçeklik uygulamanızı geliştirmek için bu kurstan elde ettiğiniz bilgileri kullanmak sizin işinizdir.

12. Bölümde ele alınan LUIS'i birkaç kez eğitmeye hazır olun. LUIS eğitildiğinde daha iyi sonuçlar elde edersiniz.

Cihaz desteği

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

Not

Bu kurs öncelikli olarak Windows Mixed Reality çevreleyici (VR) kulaklıklara odaklansa da, bu kursta öğrendiklerini Microsoft HoloLens için de uygulayabilirsiniz. Kursu takip ettikçe HoloLens'i desteklemek için kullanmanız gerekebilecek değişikliklerle ilgili notlar görürsünüz. HoloLens'i kullanırken ses yakalama sırasında biraz yankı olduğunu fark edebilirsiniz.

Önkoşullar

Not

Bu öğretici, Unity ve C# ile ilgili temel deneyime sahip geliştiriciler için tasarlanmıştır. Bu belgedeki önkoşulların ve yazılı yönergelerin, yazma sırasında (Mayıs 2018) test edilen ve doğrulananları temsil ettiğini de unutmayın. Araçları yükleme makalesinde listelendiği gibi en son yazılımı kullanabilirsiniz, ancak bu kurstaki bilgilerin aşağıda listelenenlerden daha yeni yazılımlarda bulacağınız bilgilerle mükemmel bir şekilde eşleşeceği varsayılmamalıdır.

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

Başlamadan önce

  1. Bu projeyi oluştururken sorunlarla 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 sorunlara neden olabilir).

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

  3. Bu öğreticideki kod, makinenizde ayarlanan Varsayılan Mikrofon Cihazı'ndan kayıt yapmanızı sağlar. Varsayılan Mikrofon Cihazının sesinizi yakalamak için kullanmak istediğiniz cihaz olarak ayarlandığından emin olun.

  4. Mikrofonlu kulaklığınızda yerleşik bir mikrofon varsa Karma Gerçeklik Portalı ayarlarında "Mikrofonlu kulaklığımı taktığımda mikrofonlu kulaklık mikrofona geç" seçeneğinin açık olduğundan emin olun.

    Çevreleyici mikrofonlu kulaklığı ayarlama

1. Bölüm – Azure Portalını Ayarlama

Azure'da Language Understanding hizmetini kullanmak için, uygulamanızın kullanımına sunulacak 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 hesap oluşturmanız gerekir. Bu öğreticiyi bir sınıfta veya laboratuvar durumunda takip ediyorsanız eğitmeninize veya yardımcılardan birine yeni hesabınızı ayarlama hakkında yardım isteyin.

  2. Oturum açtıktan sonra sol üst köşedeki Yeni'ye tıklayın, Language Understanding arayın ve Enter tuşuna basın.

    LUIS kaynağı oluşturma

    Not

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

  3. Sağdaki yeni sayfada Language Understanding hizmetinin açıklaması sağlanır. Bu hizmetin bir örneğini oluşturmak için bu sayfanın sol alt kısmındaki Oluştur düğmesini seçin.

    LUIS hizmeti oluşturma - yasal bildirim

  4. Oluştur'a tıkladığınızda:

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

    2. Bir Abonelik seçin.

    3. Sizin için uygun Fiyatlandırma Katmanını seçin; luis hizmetini ilk kez oluşturuyorsanız ücretsiz bir katmanın (F0 adlı) kullanımınıza sunulması gerekir. Ücretsiz ayırma bu kurs için yeterliden fazla olmalıdır.

    4. Kaynak Grubu seçin veya yeni bir grup oluşturun. Kaynak grubu, bir Azure varlıkları koleksiyonu için erişimi izlemek, denetlemek, faturalamayı sağlamak ve yönetmek için bir yol sağlar. Tek bir projeyle ilişkili tüm Azure hizmetlerinin (örneğin, bu kurslar gibi) ortak bir kaynak grubu altında tutulması önerilir.

      Azure Kaynak Grupları hakkında daha fazla bilgi edinmek isterseniz lütfen kaynak grubu makalesini ziyaret edin.

    5. Kaynak grubunuzun Konumunu belirleyin (yeni bir Kaynak Grubu oluşturuyorsanız). Konum ideal olarak uygulamanın çalıştırıldığı bölgede olacaktır. Bazı Azure varlıkları yalnızca belirli bölgelerde kullanılabilir.

    6. Ayrıca bu Hizmete uygulanan Hüküm ve Koşulları anladığınızdan emin olmanız gerekir.

    7. Oluştur’u seçin.

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

  5. Oluştur'a tıkladığınızda hizmetin oluşturulmasını beklemeniz gerekir. Bu işlem bir dakika sürebilir.

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

    Yeni Azure bildirim görüntüsü

  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 bildirimdeki Kaynağa git düğmesine tıklayın. Yeni LUIS hizmet örneğine yönlendirilirsiniz.

    LUIS Anahtarlarına Erişme

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

  10. LUIS API hizmetinizin Hızlı başlangıç sayfasında, ilk adıma gidin, Anahtarlarınızı alın ve Anahtarlar'a tıklayın (bunu, hizmetler gezinti menüsündeki anahtar simgesiyle belirtilen mavi köprü Anahtarlar'a tıklayarak da yapabilirsiniz). Bu, hizmet Anahtarlarınızı gösterir.

  11. Görüntülenen anahtarlardan birinin kopyasını alın, projenizde daha sonra buna ihtiyacınız olacak.

  12. Hizmet sayfasında, LUIS Uygulamasında yeni Hizmetinizi oluşturmak için kullanacağınız web sayfasına yönlendirilecek Language Understanding Portal'a tıklayın.

Bölüm 2 – Language Understanding Portalı

Bu bölümde, LUIS Portalı'nda luis uygulaması oluşturmayı öğreneceksiniz.

Önemli

Bu bölümdeki Varlıkları, Amaçları ve Konuşmaları ayarlamanın LUIS hizmetinizi oluşturmanın yalnızca ilk adımı olduğunu unutmayın: Daha doğru hale getirmek için hizmeti birkaç kez yeniden eğitmelisiniz. Hizmetinizi yeniden eğitme, bu kursun son Bölümünde ele alınmıştır, bu nedenle hizmeti tamamladığınızdan emin olun.

  1. Language Understanding Portalına ulaştıktan sonra, henüz oturum açmadıysanız, Azure portal ile aynı kimlik bilgileriyle oturum açmanız gerekebilir.

    LUIS oturum açma sayfası

  2. LUIS'i ilk kez kullanıyorsanız, LUIS uygulaması oluştur düğmesini bulmak ve tıklamak için hoş geldiniz sayfasının en altına kadar aşağı kaydırmanız gerekir.

    LUIS 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.

    LUIS - uygulamalarım resmi

  4. Uygulamanıza bir Ad verin.

  5. Uygulamanızın İngilizceden farklı bir dili anlaması gerekiyorsa Kültür'ünüzü uygun dile değiştirmeniz gerekir.

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

    LUIS - yeni uygulama oluşturma

  7. Bitti'ye bastığınızda, yeni LUIS uygulamanızın Derleme sayfasına girersiniz.

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

    • Amaç, kullanıcıdan gelen bir sorgudan sonra çağrılacak yöntemi temsil eder. Bir AMAÇ bir veya daha fazla VARLIK içerebilir.
    • Varlık, sorgunun INTENT ile ilgili bilgileri açıklayan bir bileşenidir.
    • Konuşmalar, LUIS'in kendisini eğitmek için kullanacağı geliştirici tarafından sağlanan sorgulara örnektir.

Bu kavramlar tam olarak açık değilse endişelenmeyin, bu kurs bu bölümde bunları daha da netleştirecektir.

Bu kursu oluşturmak için gereken Varlıkları oluşturarak başlayacaksı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şturma

  2. Yeni Varlık rengini çağırın, türünü Basit olarak ayarlayın ve Bitti'ye basın.

    Basit varlık oluşturma - renk

  3. Adlı üç (3) daha fazla Basit Varlık oluşturmak için bu işlemi yineleyin:

    • Yükseltmek
    • Küçült
    • Hedef

Sonuç aşağıdaki görüntüye benzemelidir:

Varlık oluşturma sonucu

Bu noktada Amaçlar oluşturmaya başlayabilirsiniz.

Uyarı

Hiçbiri amacını 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şturma

  2. Yeni IntentChangeObjectColor öğesini çağırın.

    Önemli

    Bu Amaç adı, bu kursun ilerleyen bölümlerindeki kodda kullanılır, bu nedenle en iyi sonuçları elde edebilmeniz için bu adı tam olarak sağlanan şekilde kullanın.

Adı onayladıktan sonra Amaçlar Sayfasına yönlendirilirsiniz.

LUIS - amaçlar sayfası

5 veya daha fazla farklı Konuşma yazmanızı isteyen bir metin kutusu olduğunu fark edeceksiniz.

Not

LUIS, tüm Konuşmaları küçük harfe dönüştürür.

  1. Üst metin kutusuna (şu anda 5 örnek yazın... metniyle) aşağıdaki İfadeyi ekleyin ve Enter tuşuna basın:
The color of the cylinder must be red

Yeni İfade'nin altında bir listede görüneceğini fark edeceksiniz.

Aynı işlemi izleyerek aşağıdaki altı (6) Ifadeyi ekleyin:

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 Konuşma için LUIS tarafından varlık olarak hangi sözcüklerin kullanılacağını belirlemeniz gerekir. Bu örnekte, tüm renkleri bir renk Varlığı olarak etiketlemeniz ve bir hedefe yapılan tüm olası başvuruları hedef Varlık olarak etiketlemeniz gerekir.

  1. Bunu yapmak için ilk Konuşmada silindir sözcüğüne tıklamayı deneyin ve hedefi seçin.

    Konuşma Hedeflerini Tanımlama

  2. Şimdi ilk Konuşmada kırmızı sözcüğüne tıklayın ve renk seçin.

    Konuşma Varlıklarını Tanımlama

  3. Bir sonraki satırı da etiketleyin; burada küphedef, siyah ise bir renk olmalıdır. Ayrıca sağladığımız 'this', 'it' ve 'this object' sözcüklerini kullanarak belirli olmayan hedef türlerinin de kullanılabilir olduğunu görebilirsiniz.

  4. Tüm Konuşmalarda Varlıklar etiketlenene kadar yukarıdaki işlemi yineleyin. Yardıma ihtiyacınız varsa aşağıdaki resme bakın.

    İpucu

    Varlıkları etiketlemek için sözcükleri seçerken:

    • Tek sözcükler için yalnızca bu sözcüklere tıklayın.
    • İki veya daha fazla sözcük kümesi için, başlangıcına ve ardından kümenin sonuna 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ü iki durumlu düğmesini kullanabilirsiniz!

  5. Sonuçlar, Varlıklar / Belirteçler Görünümü'nü gösteren aşağıdaki görüntülerde görüldüğü gibi olmalıdır:

    Belirteçler & Varlık Görünümleri

  6. Bu noktada sayfanın sağ üst kısmındaki Eğit düğmesine basın ve üzerindeki küçük yuvarlak göstergenin yeşile dönmesini bekleyin. Bu, LUIS'in bu Amacı tanıyacak şekilde başarıyla eğitildiğini gösterir.

    LUIS'i eğitin

  7. Sizin için bir alıştırma olarak, Varlıklar hedefini, yükseltmeyi ve küçültmeyi kullanarak ChangeObjectSize adlı yeni bir Amaç oluşturun.

  8. Önceki Amaç ile aynı işlemi izleyerek , Boyut değişikliği için aşağıdaki sekiz (8) Ifadeyi 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üdeki gibi olmalıdır:

    ChangeObjectSize Belirteçlerini/ Varlıklarını Ayarlama

  10. Her iki Amaç da ( ChangeObjectColor ve ChangeObjectSize) oluşturulduktan ve eğitildikten sonra sayfanın üst kısmındaki YAYIMLA düğmesine tıklayın.

    LUIS hizmetini yayımlama

  11. Yayımla sayfasında LUIS Uygulamanızı sonlandıracak ve yayımlayarak kodunuz tarafından erişilebilmesini sağlayacaksınız.

    1. Yayımla açılan listesini Üretim olarak ayarlayın.

    2. Saat dilimini saat diliminize ayarlayın.

    3. Tüm tahmin edilen amaç puanlarını ekle kutusunu işaretleyin.

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

      Yayımlama Ayarları

  12. Kaynaklar ve Anahtarlar bölümünde:

    1. Azure Portalda hizmet örneği için ayarladığınız bölgeyi seçin.
    2. Aşağıda Starter_Key bir öğe göreceksiniz, yoksayın.
    3. Anahtar Ekle'ye tıklayın ve Hizmet örneğinizi oluştururken Azure Portal'da aldığınız Anahtarı ekleyin. Azure'ınız ve LUIS portalınız aynı kullanıcıda oturum açtıysa Kiracı adı, Abonelik Adı ve kullanmak istediğiniz Anahtar için açılan menüler sağlanır (daha önce Azure Portal'da sağladığınız adla aynı ada sahip olur).

    Önemli

    Uç Nokta'nın altında, eklediğiniz Anahtara karşılık gelen uç noktanın bir kopyasını alın, yakında kodunuzda kullanacaksınız.

3. Bölüm – Unity projesini ayarlama

Aşağıda karma gerçeklikle geliştirmeye yönelik tipik bir kurulum verilmiştir 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 Projesi adı sağlamanız, MR_LUIS eklemeniz gerekir. Proje türünün 3B olarak ayarlandığından emin olun. Konum değerini sizin için uygun bir konuma ayarlayın (kök dizinlere daha yakın olmak daha iyidir). Ardından Proje oluştur'a tıklayın.

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

  3. Unity açıkken, varsayılan Betik Düzenleyicisi'ninVisual Studio olarak ayarlandığını denetlemeye değer. Tercihleri Düzenle'ye > gidin ve yeni pencerede Dış Araçlar'a gidin. Dış Betik Düzenleyicisi'niVisual Studio 2017 olarak değiştirin. Tercihler penceresini kapatın.

    Betik düzenleyicisi tercihini güncelleştirin.

  4. Ardından Dosya > Derleme Ayarları'na gidin ve Platformu Değiştir düğmesine tıklayarak platformu Evrensel Windows Platformu olarak değiştirin.

    Derleme Ayarları penceresi, platformu UWP'ye geçirin.

  5. Dosya > Derleme Ayarları'na gidin ve şunları yaptığınızdan emin olun:

    1. Hedef CihazHerhangi Bir Cihaz olarak ayarlanır

      Microsoft HoloLens için Hedef Cihaz'ıHoloLens olarak ayarlayın.

    2. Derleme TürüD3D olarak ayarlandı

    3. SDK, En son yüklenen olarak ayarlandı

    4. Visual Studio SürümüEn son yüklenen olarak ayarlandı

    5. Derleme ve Çalıştırma, Yerel Makine olarak ayarlanır

    6. Sahneyi kaydedin ve derlemeye ekleyin.

      1. Bunu yapmak için Açık Sahne Ekle'yi seçin. Bir kaydetme penceresi görüntülenir.

        Açık sahne ekle düğmesine tıklayın

      2. Bunun için yeni bir klasör oluşturun ve gelecekte herhangi bir sahne oluşturun, ardından Yeni klasör düğmesini seçerek yeni bir klasör oluşturun ve bunu Sahneler olarak adlandırın.

        Yeni betikler klasörü oluşturma

      3. Yeni oluşturduğunuz Sahneler klasörünüzü açın ve Dosya adı: metin alanına MR_LuisScene yazın ve Kaydet'e basın.

        Yeni sahneye bir ad verin.

    7. Derleme Ayarları'nda kalan ayarlar şimdilik varsayılan olarak bırakılmalıdır.

  6. Derleme Ayarları penceresinde Yürütücü Ayarları düğmesine tıkladığınızda, denetçinin bulunduğu alanda ilgili panel açılır.

    Oyuncu ayarlarını açın.

  7. Bu panelde birkaç ayarı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. Betik 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ı sekmesindeki Özellikler'in altında şunları denetleyin:

      1. InternetClient

      2. Mikrofon

        Yayımlama ayarları güncelleştiriliyor.

    3. Panelin daha aşağısında, XR Ayarları'nda (Yayımlama Ayarları'nın altında bulunur) Sanal Gerçeklik Desteği'ni işaretleyin ve Windows Mixed Reality SDK'sının eklendiğinden emin olun.

      X R Ayarlarını güncelleştirin.

  8. Derleme AyarlarıUnity C# Projeleri artık gri değil; bunun yanındaki onay kutusunu işaretleyin.

  9. Derleme Ayarları penceresini kapatın.

  10. Sahnenizi ve Projenizi kaydedin (DOSYA KAYDETME SAHNESİ > / DOSYA > KAYDETME PROJESİ).

4. Bölüm – Sahneyi oluşturma

Önemli

Bu kursun Unity Set up bileşenini atlamak ve doğrudan koda devam etmek istiyorsanız, bu .unitypackage'ı indirebilir, özel paket olarak projenize aktarıp 5. Bölümden devam edebilirsiniz.

  1. Hiyerarşi Paneli'nin boş bir alanına sağ tıklayın, 3B Nesne'nin altında düzlem ekleyin.

    Bir uçak oluşturun.

  2. Daha fazla nesne oluşturmak için Hiyerarşi içinde yeniden sağ tıkladığınızda, son nesne seçili durumdaysa, seçili nesnenin yeni nesnenizin üst öğesi olacağını unutmayın. Hiyerarşi içinde boş bir alana sol tıklamaktan ve sonra sağ tıklamaktan kaçının.

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

    1. Sphere
    2. Silindir
    3. Küp
    4. 3B Metin
  4. Ortaya çıkan sahne Hiyerarşisi aşağıdaki görüntüdeki gibi olmalıdır:

    Sahne Hiyerarşisi kurulumu.

  5. Seçmek için Ana Kamera'ya sol tıklayın, Denetçi Paneli'ne bakın, tüm bileşenlerini içeren Kamera nesnesini görürsünüz.

  6. Denetçi Panelinin en 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 Transform bileşeninin (0,0,0) olarak ayarlandığından emin olun. Bunun için Kameranın Dönüştür bileşeninin yanındaki Dişli simgesine basıp Sıfırla'yı seçin. Transform bileşeni şu şekilde görünmelidir:

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

    Not

    Microsoft HoloLens için, Ana KameranızdakiKamera bileşeninin bir parçası olan aşağıdakileri de değiştirmeniz gerekir:

    • Bayrakları Temizle: Düz Renk.
    • Arka plan 'Siyah, Alfa 0' – Onaltılık renk: #000000000.
  9. Seçmek için Uçak'a sol tıklayın. Denetçi PanelindeDönüştür bileşenini aşağıdaki değerlerle ayarlayın:

    X Ekseni Y Ekseni Z Ekseni
    0 -1 0
  10. Seçmek için Sphere'a sol tıklayın. Denetçi PanelindeDönüştür bileşenini aşağıdaki değerlerle ayarlayın:

    X Ekseni Y Ekseni Z Ekseni
    2 1 2
  11. Seçmek için Silindire sol tıklayın. Denetçi PanelindeDönüştür bileşenini aşağıdaki değerlerle ayarlayın:

    X Ekseni Y Ekseni Z Ekseni
    -2 1 2
  12. Seçmek için Küp'e sol tıklayın. Denetçi PanelindeDönüştür bileşenini aşağıdaki değerlerle ayarlayın:

Dönüştür - Konum

X Y Z
0 1 4

Dönüşüm - Döndürme

X Y Z
45 45 0
  1. Seçmek için Yeni Metin nesnesine sol tıklayın. Denetçi PanelindeDönüştür bileşenini aşağıdaki değerlerle ayarlayın:

Dönüştür - Konum

X Y Z
-2 6 9

Dönüştür - Ölçek

X Y Z
0.1 0.1 0.1
  1. Metin Ağı bileşenindeki Yazı Tipi Boyutu'nu50 olarak değiştirin.

  2. Metin Ağı nesnesinin adınıDikte Metni olarak değiştirin.

    3B Metin nesnesi oluşturma

  3. Hiyerarşi Paneli yapınız şimdi şöyle görünmelidir:

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

  4. Son sahne aşağıdaki görüntüye benzemelidir:

    Sahne görünümü.

5. Bölüm – MicrophoneManager sınıfını oluşturma

Oluşturacağınız ilk Betik , MicrophoneManager sınıfıdır. Bundan sonra LuisManager' ı, Davranışlar sınıfını ve son olarak da Gaze sınıfını oluşturacaksınız (her bölüme ulaştığınızda bunların hepsini oluşturmaktan çekinmeyin).

MicrophoneManager sınıfı aşağıdakilerin sorumluluğundadır:

  • Mikrofonlu kulaklığa veya makineye bağlı kayıt cihazını algılama (varsayılan cihaz hangisiyse).
  • Sesi (ses) yakalayın ve dize olarak depolamak için dikteyi kullanın.
  • Ses duraklatıldıktan sonra dikteyi LuisManager sınıfına gönderin.

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

  1. Proje Paneli,KlasörOluştur'a >sağ tıklayın. Klasöre Betikler adını verin.

    Betikler klasörü oluşturun.

  2. Betikler klasörü oluşturulduktan sonra çift tıklayarak açın. Ardından bu klasörün içinde C# Betiği Oluştur'a >sağ tıklayın. Betiği MicrophoneManager olarak adlandırın.

  3. MicrophoneManager'a çift tıklayarak Visual Studio ile açın.

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

        using UnityEngine;
        using UnityEngine.Windows.Speech;
    
  5. Ardından MicrophoneManager 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. Awake() ve Start() yöntemlerinin artık eklenmesi gerekiyor. Sınıf başlatıldığında bunlar ç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. Şimdi Uygulamanın ses yakalamayı başlatmak ve durdurmak ve yakında oluşturacağınız LuisManager sınıfına geçirmek için kullandığı yönteme ihtiyacınız var.

        /// <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 duraklatıldığında çağrılacak bir Dikte İşleyicisi ekleyin. Bu yöntem LuisManager sınıfına dikte metnini geçirir.

        /// <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 kullanmayacağı için Update() yöntemini silin.

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

    Not

    Bu noktada Unity Düzenleyicisi Konsol Paneli'nde bir hata olduğunu göreceksiniz. Bunun nedeni, kodun bir sonraki Bölümde oluşturacağınız LuisManager sınıfına başvurmasıdır.

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

Azure LUIS hizmetine çağrı yapacak LuisManager sınıfını oluşturmanın zamanı geldi.

Bu sınıfın amacı, MicrophoneManager sınıfından dikte metnini almak ve analiz edilecek Azure Language Understanding API'sine göndermektir.

Bu sınıf JSON yanıtını seri durumdan çıkaracak ve bir eylemi tetikleyecek Davranışlar sınıfının uygun yöntemlerini çağıracaktır.

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

  1. Betikler klasörüne çift tıklayarak açın.

  2. Betikler klasörünün içine sağ tıklayın, C# Betiği Oluştur'a >tıklayın. Betiği LuisManager olarak adlandırın.

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

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

        using System;
        using System.Collections;
        using System.Collections.Generic;
        using System.IO;
        using UnityEngine;
        using UnityEngine.Networking;
    
  5. İlk olarak LuisManager sınıfının içinde (Start() yönteminin üstündeki aynı betik dosyasının içinde) Azure'dan seri durumdan çıkarılmış JSON yanıtını temsil edecek üç sınıf oluşturacaksı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. Ardından LuisManager sınıfının içine aşağıdaki değişkenleri 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. LUIS uç noktanızı (LUIS portalınızdan edindiğiniz) hemen yerleştirdiğinizden emin olun.

  8. Awake() yönteminin kodunun artık eklenmesi gerekiyor. Sınıf başlatıldığında bu yöntem çağrılır:

        private void Awake()
        {
            // allows this class instance to behave like a singleton
            instance = this;
        }
    
  9. Şimdi bu uygulamanın MicrophoneManager sınıfından alınan dikteyi LUIS'e göndermek ve ardından yanıtı alıp seri durumdan kaldırmak için kullandığı yöntemlere ihtiyacınız var.

  10. Amaç ve ilişkili Varlıklar'ın değeri belirlendikten sonra, amaçlanan eylemi tetiklemeleri için 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. Sonuçta elde edilen AnalysedQuery'yi okuyacak ve Varlıkları belirleyecek Olan AnalyseResponseElements() adlı yeni bir yöntem oluşturun. Bu Varlıklar belirlendikten sonra eylemlerde kullanmak üzere 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

    Bu sınıf bunları kullanmayacağı için Start() ve Update() yöntemlerini silin.

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

Not

Bu noktada Unity Düzenleyicisi Konsol Paneli'nde çeşitli hatalar olduğunu fark edeceksiniz. Bunun nedeni, kodun bir sonraki Bölümde oluşturacağınız Davranışlar sınıfına başvurmasıdır.

7. Bölüm – Davranışlar sınıfını oluşturma

Davranışlar sınıfı, LuisManager sınıfı tarafından sağlanan Varlıkları kullanarak eylemleri tetikler.

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

  1. Betikler klasörüne çift tıklayarak açın.

  2. Betikler klasörünün içine sağ tıklayın, C# Betiği Oluştur'a >tıklayın. Betiği Davranışlar olarak adlandırın.

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

  4. Ardından , 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. Awake() yöntemi kodunu ekleyin. Sınıf başlatıldığında bu yöntem çağrılır:

        void Awake()
        {
            // allows this class instance to behave like a singleton
            instance = this;
        }
    
  6. Aşağıdaki yöntemler LuisManager sınıfı (daha önce oluşturduğunuz) tarafından çağrılarak sorgunun hedefinin hangi nesne olduğunu belirler ve ardından uygun eylemi tetikler.

        /// <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. Hangi GameObjects'in geçerli Amacın hedefi olduğunu belirlemek için FindTarget() yöntemini ekleyin. Bu yöntem, Varlıklarda açık bir hedef tanımlanmadıysa, hedefin varsayılan olarak GameObject'in "göz önünde" olmasını sağlar.

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

    Bu sınıf bunları kullanmayacağı için Start() ve Update() yöntemlerini silin.

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

8. Bölüm – Bakış Sınıfını Oluşturma

Bu uygulamayı tamamlamak için ihtiyacınız olan son sınıf , Gaze sınıfıdır. Bu sınıf, şu anda kullanıcının görsel odağında olan GameObject'e başvuruyu güncelleştirir.

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

  1. Betikler klasörüne çift tıklayarak açın.

  2. Betikler klasörünün içine sağ tıklayın, C# Betiği Oluştur'a >tıklayın. Betiği Bakış olarak adlandırın.

  3. Visual Studio ile açmak için betiği çift tıklatı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 değişikliklerinizi Visual Studio'ya kaydettiğinizden emin olun.

9. Bölüm – Sahne kurulumunu tamamlama

  1. Sahnenin kurulumunu tamamlamak için Betikler Klasöründen oluşturduğunuz her betiği Hiyerarşi Paneli'ndekiAna Kamera nesnesine sürükleyin.

  2. Ana Kamera'yı seçin ve Denetçi Paneli'ne bakın, eklediğiniz her betiği görebilmeniz gerekir ve her betikte henüz ayarlanmamış parametreler olduğunu fark edeceksiniz.

    Kamera Başvuru Hedefleri'ni ayarlama.

  3. Bu parametreleri doğru ayarlamak için şu yönergeleri izleyin:

    1. MicrophoneManager:

      • Hiyerarşi Paneli'ndenDikte Metni nesnesini Dikte Metni parametre değeri kutusuna sürükleyin.
    2. Hiyerarşi PanelindenDavranışlar:

      • Sphere nesnesini Sphere başvuru hedef kutusuna sürükleyin.
      • Silindiri Silindir başvurusu hedef kutusuna sürükleyin.
      • Küpü Küp başvurusu hedef kutusuna sürükleyin.
    3. Bakış:

      • Bakış Maksimum Uzaklığı300 olarak ayarlayın (henüz değilse).
  4. Sonuç aşağıdaki görüntüye benzemelidir:

    Kamera Başvuru Hedefleri gösteriliyor, şimdi ayarlandı.

10. Bölüm – Unity Düzenleyicisi'nde test etme

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

Şunlardan emin olun:

  • Tüm betikler Ana Kamera nesnesine eklenir.
  • Ana Kamera Denetçisi Paneli'ndeki tüm alanlar düzgün bir şekilde atanır.
  1. Unity Düzenleyicisi'ndeYürüt düğmesine basın. Uygulama, ekli çevreleyici başlık içinde çalışıyor olmalıdır.

  2. Aşağıdakiler gibi birkaç konuşma deneyin:

    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ının değiştirilmesiyle ilgili bir hata görürseniz, sahne beklendiği gibi çalışmayabilir. Bunun nedeni, karma gerçeklik portalının mikrofonlu kulaklıklar için yerleşik mikrofonlarla başa çıkış şeklidir. Bu hatayı görürseniz, sahneyi durdurmanız ve yeniden başlatmanız yeterlidir ve her şey beklendiği gibi çalışır.

11. Bölüm – UWP Çözümünü derleme ve dışarıdan yükleme

Uygulamanın Unity Düzenleyicisi'nde çalıştığından emin olduktan sonra Derleme ve Dağıtmaya hazırsınızdır.

Derlemek için:

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

  2. Dosya > Derleme Ayarları'na gidin.

  3. Unity C# Projeleri adlı kutuyu işaretleyin (UWP projesi oluşturulduktan sonra kodunuzu görmek ve hatalarını ayıklamak için kullanışlıdır).

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

    Derleme Ayarları penceresi

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

  6. BIR BUILDS klasörü oluşturun ve bu klasörün içinde istediğiniz uygun ada sahip başka bir klasör oluşturun.

  7. Derlemeyi bu konumda başlatmak için Klasör Seç'e tıklayın.

    Derlemeler Klasörü OluşturDerlemeler Klasörü Seç

  8. Unity derlemeyi tamamladıktan sonra (biraz zaman alabilir), derlemenizin konumunda bir Dosya Gezgini penceresi açmalıdır.

Yerel Makinede Dağıtmak için:

  1. Visual Studio'da, önceki Bölümde oluşturulan çözüm dosyasını açın.

  2. Çözüm Platformu'ndax86, Yerel Makine'yi seçin.

  3. Çözüm Yapılandırması'ndaHata Ayıkla'ya tıklayın.

    Microsoft HoloLens için, bilgisayarınıza bağlı olmaması için bunu Uzak Makine olarak ayarlamayı daha kolay bulabilirsiniz. Bununla birlikte, aşağıdakileri de yapmanız gerekir:

    • Ayarlar > Ağı & İnternet >> Wi-Fi Gelişmiş Seçenekler'de bulunabilen HoloLens'inizin IP Adresini bilin; IPv4 kullanmanız gereken adrestir.
    • Geliştirici ModununAçık olduğundan emin olun; Ayarlar > Güncelleştirme & Geliştiriciler için Güvenlik >bölümünde bulunur.

    Uygulamayı Dağıtma

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

  5. Uygulamanız artık yüklenmeye hazır yüklü uygulamalar listesinde görünmelidir!

  6. Uygulama başlatıldıktan sonra Mikrofona erişim yetkisi vermenizi ister. EVET düğmesine basmak için Hareket Denetleyicileri'ni veya Ses Girişi'ni veya Klavye'yi kullanın.

12. Bölüm – LUIS hizmetinizi geliştirme

Önemli

Bu bölüm son derece önemlidir ve LUIS hizmetinizin doğruluğunu iyileştirmeye yardımcı olacağı için birkaç kez yinelenmeleri gerekebilir: bunu tamamladığınızdan emin olun.

LUIS tarafından sağlanan anlama düzeyini geliştirmek için yeni konuşmalar yakalamanız ve bunları kullanarak LUIS Uygulamanızı yeniden eğitmelisiniz.

Örneğin LUIS'i "Artır" ve "Büyüt" ifadelerini anlaması için eğitmiş olabilirsiniz, ancak uygulamanızın "Büyüt" gibi sözcükleri de anlamasını istemez misiniz?

Uygulamanızı birkaç kez kullandıktan sonra, söylediğiniz her şey LUIS tarafından toplanır ve LUIS PORTALı'nda kullanılabilir.

  1. Bu LINK'i izleyerek portal uygulamanıza gidin ve Oturum Açın.

  2. MS Kimlik Bilgilerinizle oturum açtıktan sonra Uygulama adınıza tıklayın.

  3. Sayfanın sol tarafındaki Uç nokta ifadelerini gözden geçir düğmesine tıklayın.

    Konuşmaları Gözden Geçirme

  4. Karma gerçeklik Uygulamanız tarafından LUIS'e gönderilen Konuşmaların listesi gösterilir.

    Konuşmaların Listesi

Bazı vurgulanmış Varlıklar göreceksiniz.

Vurgulanan her sözcüğün üzerine gelerek her bir Ifadeyi gözden geçirebilir ve hangi Varlığın doğru tanındığını, hangi Varlıkların yanlış olduğunu ve hangi Varlıkların kaçırıldığını belirleyebilirsiniz.

Yukarıdaki örnekte, "mızrak" sözcüğünün hedef olarak vurgulandığı bulunmuştur, bu nedenle fareyle sözcüğün üzerine gelip Etiketi Kaldır'a tıklayarak yapılan hatayı düzeltmek gerekir.

Konuşmaları denetleEtiket Görüntüsünü Kaldır

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

    Yanlış konuşmaları silme

  2. Veya LUIS'in Konuşma'yı doğru yorumladığına düşünüyorsanız, Hizalanmış Amaca Ekle düğmesini kullanarak anlayışını doğrulayabilirsiniz.

    Hizalanmış amada ekle

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

  4. Uygulama anlayışınızı geliştirmek için bu işlemi mümkün olduğunca tekrarlamanız çok önemlidir.

İyi eğlenceler!

Tamamlanmış LUIS Tümleşik uygulamanız

Tebrikler, kullanıcının ne dediğini anlamak ve bu bilgiler üzerinde işlem yapmak için Azure Language Understanding Intelligence Service'i kullanan bir karma gerçeklik uygulaması oluşturmuştsunuz.

Laboratuvar sonucu

Ek alıştırmalar

Alıştırma 1

Bu uygulamayı kullanırken Floor nesnesine bakıp rengini değiştirmek istediğinizde bunu yapacağınızı fark edebilirsiniz. Uygulamanızın Zemin rengini değiştirmesini nasıl durdurabileceğinizi anlayabilir misiniz?

Alıştırma 2

LUIS ve Uygulama özelliklerini genişletmeyi deneyin, sahnedeki nesneler için ek işlevler ekleyin; örneğin, kullanıcının söylediklerine bağlı olarak Bakış isabet noktasında yeni nesneler oluşturun ve ardından mevcut komutlarla bu nesneleri geçerli sahne nesneleriyle birlikte kullanabilirsiniz.