Öğretici: Botunuzu sesli etkinleştirme

Sohbet botlarını sesli olarak etkinleştirmek için Azure AI Konuşma'yı kullanabilirsiniz.

Bu öğreticide, söylediklerinize yanıt veren bir bot oluşturmak için Microsoft Bot Framework'lerini kullanacaksınız. Botunuzu Azure'a dağıtır ve Bot Framework Doğrudan Çizgi Konuşma kanalına kaydedersiniz. Ardından, botunuzla konuşmanızı ve size geri konuştuğunu duymanızı sağlayan örnek bir Windows istemci uygulaması yapılandıracaksınız.

Öğreticiyi tamamlamak için Azure, Bot Framework botları veya Doğrudan Çizgi Konuşma hakkında kapsamlı deneyime veya bilgi sahibi olmanıza gerek yoktur.

Bu öğreticide yaptığınız sesli sohbet botu şu adımları izler:

  1. Örnek istemci uygulaması, Direct Line Speech kanalına ve yankı botuna bağlanacak şekilde yapılandırılmıştır.
  2. Kullanıcı bir düğmeye bastığında, ses mikrofondan akar. Veya özel bir anahtar sözcük kullanıldığında ses sürekli olarak kaydedilir.
  3. Özel bir anahtar sözcük kullanılırsa, yerel cihazda anahtar sözcük algılama gerçekleşir ve buluta ses akışı yapılır.
  4. Örnek istemci uygulaması, Direct Line Speech kanalına bağlanmak ve ses akışı yapmak için Konuşma SDK'sını kullanır.
  5. İsteğe bağlı olarak, hizmette daha yüksek doğrulukta anahtar sözcük doğrulaması gerçekleşir.
  6. Ses, konuşma tanıma hizmetine geçirilir ve metne dönüştürülür.
  7. Tanınan metin, echo bota Bot Framework etkinliği olarak geçirilir.
  8. Yanıt metni, metin okuma hizmeti tarafından sese dönüştürülür ve kayıttan yürütme için istemci uygulamasına geri akışla aktarılır.

Diagram that illustrates the flow of the Direct Line Speech channel.

Not

Bu öğreticideki adımlar ücretli hizmet gerektirmez. Yeni bir Azure kullanıcısı olarak, bu öğreticiyi tamamlamak için ücretsiz Azure deneme aboneliğinizdeki kredileri ve Konuşma hizmetinin ücretsiz katmanını kullanabilirsiniz.

Bu öğreticinin kapsamı şunlardır:

  • Yeni Azure kaynakları oluşturun.
  • Yankı botu örneğini derleme, test etme ve Azure Uygulaması Hizmetine dağıtma.
  • Botunuzu Doğrudan Çizgi Konuşma kanalıyla kaydedin.
  • Yankı botunuzla etkileşim kurmak için Windows Voice Assistant İstemcisi'ni derleyin ve çalıştırın.
  • Özel anahtar sözcük etkinleştirmesi ekleyin.
  • Tanınan ve konuşulan konuşmanın dilini değiştirmeyi öğrenin.

Önkoşullar

Bu öğreticiyi tamamlamak için gerekenler şunlardır:

Kaynak grubu oluşturma

Bu öğreticide oluşturduğunuz istemci uygulaması birkaç Azure hizmetini kullanır. Botunuzdan gelen yanıtların gidiş dönüş süresini azaltmak için bu hizmetlerin aynı Azure bölgesinde olduğundan emin olmak istiyorsunuz.

Bu bölüm, Batı ABD bölgesinde kaynak grubu oluşturma işleminde size yol gösterir. Bot Framework, Direct Line Speech kanalı ve Konuşma hizmeti için tek tek kaynaklar oluştururken bu kaynak grubunu kullanırsınız.

  1. Kaynak grubu oluşturmak için Azure portalı sayfasına gidin.
  2. Aşağıdaki bilgileri sağlayın:
    • Aboneliği Ücretsiz Deneme olarak ayarlayın. (Mevcut bir aboneliği de kullanabilirsiniz.)
    • Kaynak grubu için bir ad girin. SpeechEchoBotTutorial-ResourceGroup'un kullanılması önerilir.
    • Bölge açılan menüsünden Batı ABD'yi seçin.
  3. İncele ve oluştur'u seçin. Doğrulama başarılı oldu yazan bir başlık görmeniz gerekir.
  4. Oluştur'u belirleyin. Kaynak grubunun oluşturulması birkaç dakika sürebilir.
  5. Bu öğreticinin ilerleyen bölümlerinde oluşturduğunuz kaynaklarda olduğu gibi, kolay erişim için bu kaynak grubunu panonuza sabitlemek iyi bir fikirdir. Bu kaynak grubunu sabitlemek istiyorsanız, adın yanındaki sabitle simgesini seçin.

Azure bölgesi seçme

Desteklenen bir Azure bölgesi kullandığınızdan emin olun. Direct Line Speech kanalı, nöral ve standart seslere sahip metin okuma hizmetini kullanır. Sinir sesleri bu Azure bölgelerinde ve standart sesler (kullanımdan kaldırılıyor) bu Azure bölgelerinde kullanılır.

Bölgeler hakkında daha fazla bilgi için bkz . Azure konumları.

Kaynak oluşturma

Desteklenen bir bölgede bir kaynak grubunuz olduğuna göre, sonraki adım bu öğreticide kullanacağınız her hizmet için tek tek kaynaklar oluşturmaktır.

Konuşma hizmeti kaynağı oluşturma

  1. Konuşma hizmeti kaynağı oluşturmak için Azure portalı sayfasına gidin.
  2. Aşağıdaki bilgileri sağlayın:
    • Ad için kaynağınızın adı olarak SpeechEchoBotTutorial-Speech'ı öneririz.
    • Abonelik için Ücretsiz Deneme'nin seçili olduğundan emin olun.
    • Konum olarak Batı ABD'yi seçin.
    • Fiyatlandırma katmanı için F0'ı seçin. Bu, ücretsiz katmandır.
    • Kaynak grubu için SpeechEchoBotTutorial-ResourceGroup öğesini seçin.
  3. Gerekli tüm bilgileri girdikten sonra Oluştur'u seçin. Kaynağın oluşturulması birkaç dakika sürebilir.
  4. Bu öğreticinin ilerleyen bölümlerinde bu hizmet için abonelik anahtarları gerekir. Bu anahtarlara istediğiniz zaman kaynağınızın Genel Bakış alanından (Anahtarları yönet'in altında) veya Anahtarlar alanından erişebilirsiniz.

Bu noktada, kaynak grubunuzda (SpeechEchoBotTutorial-ResourceGroup) konuşma hizmeti kaynağının olup olmadığını denetleyin:

Adı Tip Konum
SpeechEchoBotTutorial-Speech Konuşma Batı ABD

Azure App Service planı oluşturma

App Service planı, bir web uygulamasının birlikte çalıştırılacağı işlem kaynakları kümesini tanımlar.

  1. Azure Uygulaması Hizmeti planı oluşturmak için Azure portalı sayfasına gidin.
  2. Aşağıdaki bilgileri sağlayın:
    • Aboneliği Ücretsiz Deneme olarak ayarlayın. (Mevcut bir aboneliği de kullanabilirsiniz.)
    • Kaynak grubu için SpeechEchoBotTutorial-ResourceGroup öğesini seçin.
    • Ad için, planınızın adı olarak SpeechEchoBotTutorial-AppServicePlan'ı öneririz.
    • İşletim Sistemi için Windows'a tıklayın.
    • Bölge için Batı ABD'yi seçin.
    • Fiyatlandırma Katmanı için Standart S1'in seçili olduğundan emin olun. Bu varsayılan değer olmalıdır. Değilse, İşletim Sistemi'yi Windows olarak ayarlayın.
  3. İncele ve oluştur'u seçin. Doğrulama başarılı oldu yazan bir başlık görmeniz gerekir.
  4. Oluştur'u belirleyin. Kaynağın oluşturulması birkaç dakika sürebilir.

Bu noktada kaynak grubunuzda (SpeechEchoBotTutorial-ResourceGroup) iki kaynak olup olmadığını denetleyin:

Adı Tip Konum
SpeechEchoBotTutorial-AppServicePlan App Service Planı Batı ABD
SpeechEchoBotTutorial-Speech Azure yapay zeka hizmetleri Batı ABD

Yankı botu oluşturma

Kaynakları oluşturduğunuza göre, yanıt olarak girdiğiniz metni yankılayan yankı botu örneğiyle başlayın. Örnek kod, botu Azure'a dağıttığınızda bağlandığınız Direct Line Speech kanalıyla çalışacak şekilde zaten yapılandırılmıştır.

Not

Yankı botu hakkında daha fazla bilgiyle birlikte aşağıdaki yönergeler GitHub'daki örneğin README'sinde bulunur.

Makinenizde bot örneğini çalıştırma

  1. Örnek deposunu kopyalayın:

    git clone https://github.com/Microsoft/botbuilder-samples.git
    
  2. Visual Studio'yu açın.

  3. Araç çubuğundan Dosya>Proje/Çözüm Aç'ı>seçin. Ardından proje çözümünü açın:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. Proje yüklendikten sonra, projeyi derlemek ve çalıştırmak için F5 anahtarını seçin.

    Açılan tarayıcıda şuna benzer bir ekran görürsünüz:

    Screenshot that shows the EchoBot page with the message that your bot is ready.

Bot Framework Öykünücüsü ile bot örneğini test edin

Bot Framework Emulator, bot geliştiricilerinin botlarını yerel olarak (veya bir tünel üzerinden uzaktan) test edip hatalarını ayıklamasına olanak tanıyan bir masaüstü uygulamasıdır. Öykünücü, yazılan metni giriş (ses değil) olarak kabul eder. Bot ayrıca metinle de yanıt verir.

Yerel olarak çalışan yankı botunuzu metin girişi ve metin çıkışıyla test etmek için Bot Framework Öykünücüsü'ni kullanmak için bu adımları izleyin. Botu Azure'a dağıttığınızda ses girişi ve ses çıkışı ile test edersiniz.

  1. Bot Framework Emulator sürüm 4.3.0 veya üzerini yükleyin.

  2. Bot Framework Emulator'ı açın ve ardından Dosya Aç Botu'nu> seçin.

  3. Botunuzun URL'sini girin. Örneğin:

    http://localhost:3978/api/messages
    
  4. Bağlan'ı seçin.

  5. Bot sizi "Merhaba ve hoş geldiniz!" iletisiyle karşılamalıdır. Herhangi bir kısa mesaj yazın ve bottan yanıt aldığınızdan emin olun.

    Yankı botuyla iletişim alışverişi aşağıdaki gibi görünebilir: Screenshot shows the Bot Framework Emulator.

Botunuzu Azure Uygulaması Hizmetine dağıtma

Sonraki adım, yankı botunu Azure'a dağıtmaktır. Azure CLI ve dağıtım şablonları dahil olmak üzere bot dağıtmanın birkaç yolu vardır. Bu öğreticide doğrudan Visual Studio'dan yayımlamaya odaklanılmaktadır.

Not

Aşağıdaki adımları gerçekleştirirken Yayımla görünmüyorsa, ASP.NET ve web geliştirme iş yükünü eklemek için Visual Studio Yükleyicisi kullanın.

  1. Visual Studio'da, Direct Line Speech kanalıyla kullanılmak üzere yapılandırılmış yankı botunu açın:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. Çözüm Gezgini'da EchoBot projesine sağ tıklayın ve Yayımla'yı seçin.

  3. Açılan Yayımla penceresinde:

    1. Azure>İleri'yi seçin.
    2. Azure Uygulaması Hizmeti (Windows)İleri'yi> seçin.
    3. Yeşil artı işaretiyle Yeni Azure Uygulaması Hizmeti oluştur'u seçin.
  4. App Service (Windows) penceresi görüntülendiğinde:

    • Hesap ekle'yi seçin ve Azure hesabı kimlik bilgilerinizle oturum açın. Zaten oturum açtıysanız açılan listeden hesabınızı seçin.

    • Ad alanına botunuz için genel olarak benzersiz bir ad girin. Bu ad benzersiz bir bot URL'si oluşturmak için kullanılır.

      Kutuda tarih ve saati içeren varsayılan bir ad görünür (örneğin, EchoBot20190805125647). Bu öğretici için varsayılan adı kullanabilirsiniz.

    • Abonelik için Ücretsiz Deneme'yi seçin.

    • Kaynak Grubu için SpeechEchoBotTutorial-ResourceGroup öğesini seçin.

    • Barındırma Planı için SpeechEchoBotTutorial-AppServicePlan'ı seçin.

  5. Oluştur'u belirleyin. Son sihirbaz ekranında Son'u seçin.

  6. Yayımla öğesini seçin. Visual Studio botu Azure'a dağıtır.

    Visual Studio çıkış penceresinde şuna benzer bir başarı iletisi görmeniz gerekir:

    Publish Succeeded.
    Web App was published successfully https://EchoBot20190805125647.azurewebsites.net/
    

    Varsayılan tarayıcınızın açması ve şu şekilde bir sayfa görüntülemesi gerekir: "Botunuz hazır!"

Bu noktada, Azure portalında kaynak grubunuzu (SpeechEchoBotTutorial-ResourceGroup) denetleyin. Bu üç kaynağı içerdiğini onaylayın:

Adı Tip Konum
EchoBot20190805125647 App Service Batı ABD
SpeechEchoBotTutorial-AppServicePlan App Service planı Batı ABD
SpeechEchoBotTutorial-Speech Azure yapay zeka hizmetleri Batı ABD

Web yuvalarını etkinleştirme

Botunuzun web yuvalarını kullanarak Direct Line Speech kanalıyla iletişim kurabilmesi için küçük bir yapılandırma değişikliği yapmanız gerekir. Web yuvalarını etkinleştirmek için şu adımları izleyin:

  1. Azure portalına gidin ve App Service kaynağınızı seçin. Kaynak adı EchoBot20190805125647 (benzersiz uygulama adınız) ile benzer olmalıdır.
  2. Sol bölmedeki Ayarlar altında Yapılandırma'yı seçin.
  3. Genel ayarlar sekmesini seçin.
  4. Web yuvaları için iki durumlu düğmeyi bulun ve Açık olarak ayarlayın.
  5. Kaydet'i seçin.

İpucu

Hizmeti durdurmak veya yeniden başlatmak için Azure Uygulaması Hizmeti sayfanızın üst kısmındaki denetimleri kullanabilirsiniz. Bu özellik, sorun giderme sırasında kullanışlı olabilir.

Kanal kaydı oluşturma

Botunuzu barındırmak için bir Azure Uygulaması Hizmeti kaynağı oluşturduktan sonra, sonraki adım bir kanal kaydı oluşturmaktır. Kanal kaydı oluşturmak, botunuzu Direct Line Speech kanalı da dahil olmak üzere Bot Framework kanallarına kaydetmek için önkoşuldur. Botların kanalları nasıl kullandığı hakkında daha fazla bilgi edinmek istiyorsanız bkz. Kanallara bot Bağlan.

  1. Azure botu oluşturmak için Azure portalı sayfasına gidin.
  2. Aşağıdaki bilgileri sağlayın:
    • Bot tanıtıcısı için SpeechEchoBotTutorial-BotRegistration-#### girin. yerine birçok seçeneğiniz kullanın #### .

      Not

      Bot tanıtıcısı genel olarak benzersiz olmalıdır. Bir tane girip "İstenen bot kimliği kullanılamıyor" hata iletisini alırsanız farklı bir numara seçin. Aşağıdaki örneklerde 8726 kullanılır.

    • Abonelik için Ücretsiz Deneme'yi seçin.

    • Kaynak grubu için SpeechEchoBotTutorial-ResourceGroup öğesini seçin.

    • Konum olarak Batı ABD'yi seçin.

    • Fiyatlandırma katmanı için F0'ı seçin.

    • Uygulama kimliğini ve parolasını otomatik olarak oluştur'u yoksayın.

  3. Azure Bot bölmesinin en altında Oluştur'u seçin.
  4. Kaynağı oluşturduktan sonra SpeechEchoBotTutorial-BotRegistration-#### kaynağınızı Azure portalında açın.
  5. Ayarlar alanından Yapılandırma'yı seçin.
  6. Mesajlaşma uç noktası için, /api/messages yolunun eklendiği web uygulamanızın URL'sini girin. Örneğin, genel olarak benzersiz uygulama adınız EchoBot20190805125647 ise, mesajlaşma uç noktanız olacaktırhttps://EchoBot20190805125647.azurewebsites.net/api/messages/.

Bu noktada, Azure portalında kaynak grubunuzu (SpeechEchoBotTutorial-ResourceGroup) denetleyin. Şimdi en az dört kaynak göstermelidir:

Adı Tip Konum
EchoBot20190805125647 App Service Batı ABD
SpeechEchoBotTutorial-AppServicePlan App Service planı Batı ABD
SpeechEchoBotTutorial-BotRegistration-8726 Bot Hizmeti Genel
SpeechEchoBotTutorial-Speech Azure yapay zeka hizmetleri Batı ABD

Önemli

Batı ABD'yi seçmiş olsanız bile Azure AI Bot Hizmeti kaynağı Genel bölgeyi gösterir. Bu beklenen bir durumdur.

İsteğe bağlı: Web sohbetinde test edin

Azure Bot sayfasının Ayarlar altında Web Sohbeti'de Test et seçeneği vardır. Web sohbetinin botunuzda kimlik doğrulaması yapması gerektiğinden botunuzda varsayılan olarak çalışmaz.

Dağıtılan botunuzu metin girişiyle test etmek istiyorsanız aşağıdaki adımları kullanın. Bu adımlar isteğe bağlıdır ve öğreticiye devam etmek için gerekli değildir.

  1. Azure portalında EchoBotTutorial-BotRegistration-#### kaynağınızı bulun ve açın.

  2. Ayarlar alanından Yapılandırma'yı seçin. Microsoft Uygulama Kimliği altındaki değeri kopyalayın.

  3. Visual Studio EchoBot çözümünü açın. Çözüm Gezgini'da appsettings.json bulup çift seçin.

  4. JSON dosyasındaKi MicrosoftAppId'nin yanındaki boş dizeyi kopyalanan kimlik değeriyle değiştirin.

  5. Azure portalına geri dönün. Ayarlar alanında Yapılandırma'yı seçin. Ardından Microsoft Uygulama Kimliği'nin yanındaki Yönet'i seçin.

  6. Yeni gizli anahtar'ı seçin. Bir açıklama ekleyin (örneğin, web sohbeti) ve Ekle'yi seçin. Yeni gizli diziyi kopyalayın.

  7. JSON dosyasındaKi MicrosoftAppPassword'un yanındaki boş dizeyi kopyalanan gizli dizi değeriyle değiştirin.

  8. JSON dosyasını kaydedin. Şu koda benzer olmalıdır:

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. Uygulamayı yeniden yayımlayın: Çözüm Gezgini Visual Studio'da EchoBot projesine sağ tıklayın, Yayımla'yı ve ardından Yayımla düğmesini seçin.

Doğrudan Çizgi Konuşma kanalını kaydetme

Şimdi botunuzu Doğrudan Çizgi Konuşma kanalına kaydetmenin zamanı geldi. Bu kanal, botunuzla Konuşma SDK'sı ile derlenmiş bir istemci uygulaması arasında bir bağlantı oluşturur.

  1. Azure portalında SpeechEchoBotTutorial-BotRegistration-#### kaynağınızı bulun ve açın.

  2. Ayarlar alanından Kanallar'ı seçin ve aşağıdaki adımları izleyin:

    1. Diğer kanallar'ın altında Doğrudan Çizgi Konuşma'yı seçin.
    2. Doğrudan Satır Konuşmasını Yapılandır sayfasındaki metni gözden geçirin ve bilişsel hizmet hesabı açılan menüsünü genişletin.
    3. Botunuzu abonelik anahtarınızla ilişkilendirmek için menüden daha önce oluşturduğunuz Konuşma hizmeti kaynağını (örneğin, SpeechEchoBotTutorial-Speech) seçin.
    4. İsteğe bağlı alanların geri kalanını yoksayın.
    5. Kaydet'i seçin.
  3. Ayarlar alanından Yapılandırma'yı seçin ve aşağıdaki adımları izleyin:

    1. Akış Uç Noktasını Etkinleştir onay kutusunu seçin. Bu adım, botunuzla Direct Line Speech kanalı arasında web yuvaları üzerinde oluşturulmuş bir iletişim protokolü oluşturmak için gereklidir.
    2. Kaydet'i seçin.

Daha fazla bilgi edinmek istiyorsanız bkz. Doğrudan Çizgi Konuşma'ya bot Bağlan.

Windows Voice Assistant İstemcisi'ni çalıştırma

Windows Voice Assistant İstemcisi, Doğrudan Çizgi Konuşma kanalı aracılığıyla botunuzla iletişimi yönetmek için Konuşma SDK'sını kullanan C# dilinde bir Windows Presentation Foundation (WPF) uygulamasıdır. Özel bir istemci uygulaması yazmadan önce botunuzla etkileşime geçmek ve botunuzu test etmek için bu uygulamayı kullanın. açık kaynak, bu nedenle yürütülebilir dosyayı indirip çalıştırabilir veya kendiniz oluşturabilirsiniz.

Windows Voice Assistant İstemcisi, botunuzla bağlantıyı yapılandırmanıza, metin konuşmasını görüntülemenize, Bot Framework etkinliklerini JSON biçiminde görüntülemenize ve uyarlamalı kartlar görüntülemenize olanak tanıyan basit bir kullanıcı arabirimine sahiptir. Ayrıca özel anahtar sözcüklerin kullanımını da destekler. Botunuzla konuşmak ve sesli yanıt almak için bu istemciyi kullanırsınız.

Not

Bu noktada mikrofonunuzun ve hoparlörlerinizin etkinleştirildiğini ve çalıştığını onaylayın.

  1. Windows Voice Assistant İstemcisi için GitHub deposuna gidin.

  2. Aşağıdakilerden birini yapmak için sağlanan yönergeleri izleyin:

    • Çalıştırmak için bir .zip paketinde önceden oluşturulmuş yürütülebilir dosyayı indirme
    • Depoyu kopyalayıp projeyi oluşturarak yürütülebilir dosyayı kendiniz oluşturun
  3. VoiceAssistantClient.exe istemci uygulamasını açın ve GitHub deposundaki yönergeleri izleyerek botunuza bağlanacak şekilde yapılandırın.

  4. Yeniden Bağlan'ı seçin ve "Yeni konuşma başlatıldı - mikrofon düğmesine yazın veya basın" iletisini gördüğünüzden emin olun.

  5. Test edelim. Mikrofon düğmesini seçin ve İngilizce birkaç sözcük söyleyin. Siz konuşurken tanınan metin görüntülenir. Konuşmanız bittiğinde bot kendi sesiyle yanıt verir ve "yankı" ifadesini ve ardından tanınan sözcükleri söyler.

    Botla iletişim kurmak için metin de kullanabilirsiniz. Alt çubuktaki metni yazman gerekir.

Windows Voice Assistant İstemcisi'ndeki hataları giderme

Ana uygulama pencerenizde bir hata iletisi alırsanız, sorunu tanımlamak ve gidermek için bu tabloyu kullanın:

Mesaj Yapmanız gerekenler
Hata (AuthenticationFailure) : WebSocket Yükseltmesi bir kimlik doğrulama hatası (401) ile başarısız oldu. Doğru kaynak anahtarını (veya yetkilendirme belirtecini) ve bölge adını denetleyin Uygulamanın Ayarlar sayfasında anahtarı ve bölgesini doğru girdiğinizden emin olun.
Hata (Bağlan ionFailure) : Bağlan ion uzak konak tarafından kapatıldı. Hata kodu: 1011. Hata ayrıntıları: İleti göndermeden önce bota bağlanamadık Akış Uç Noktasını Etkinleştir onay kutusunu ve/veya web yuvalarını açtığınızdan emin olun.
Azure Uygulaması Hizmeti'nin çalıştığından emin olun. Bu durumda yeniden başlatmayı deneyin.
Hata (Bağlan ionFailure) : Bağlan ion uzak konak tarafından kapatıldı. Hata kodu: 1002. Hata ayrıntıları: '101' durum kodu beklendiğinde sunucu '503' durum kodunu döndürdü Akış Uç Noktasını Etkinleştir onay kutusunu ve/veya web yuvalarını açtığınızdan emin olun.
Azure Uygulaması Hizmeti'nin çalıştığından emin olun. Bu durumda yeniden başlatmayı deneyin.
Hata (Bağlan ionFailure) : Bağlan ion uzak konak tarafından kapatıldı. Hata kodu: 1011. Hata ayrıntıları: Yanıt durum kodu başarılı olduğunu göstermiyor: 500 (InternalServerError) Botunuz çıkış etkinliğinin konuşma alanında bir sinir sesi belirtti, ancak kaynak anahtarınız ile ilişkili Azure bölgesi sinir seslerini desteklemiyor. Nöral sesleri ve standart sesleri görün.

Tablodaki eylemler sorununuzu çözmezse bkz . Sesli yardımcılar: Sık sorulan sorular. Bu öğreticideki tüm adımları takip ettikten sonra sorununuzu yine de çözemiyorsanız, Voice Assistant GitHub sayfasına yeni bir sorun girin.

Bağlantı zaman aşımıyla ilgili bir not

Bir bota bağlıysanız ve son beş dakika içinde hiçbir etkinlik gerçekleşmediyse, hizmet istemciyle ve botla web yuvası bağlantısını otomatik olarak kapatır. Bu tasarım gereğidir. Alt çubukta bir ileti görüntülenir: "Etkin bağlantı zaman aşımına uğradı ancak isteğe bağlı olarak yeniden bağlanmaya hazır."

Yeniden Bağlan düğmesini seçmeniz gerekmez. Mikrofon düğmesine basın ve konuşmaya başlayın, kısa mesaj girin veya anahtar sözcüğünü (etkinse) söyleyin. Bağlantı otomatik olarak yeniden başlatılır.

Bot etkinliklerini görüntüleme

Her bot etkinlik iletileri gönderir ve alır. Windows Voice Assistant İstemcisi'nin Etkinlik Günlüğü penceresinde zaman damgalı günlükler, istemcinin bottan aldığı her etkinliği gösterir. İstemcinin bota gönderdiği etkinlikleri DialogService Bağlan or kullanarak da görebilirsiniz. SendActivityAsync yöntemi. Günlük öğesini seçtiğinizde, ilişkili etkinliğin ayrıntıları JSON olarak gösterilir.

İstemcinin aldığı bir etkinliğin örnek JSON'unu aşağıda bulabilirsiniz:

{
    "attachments":[],
    "channelData":{
        "conversationalAiData":{
             "requestInfo":{
                 "interactionId":"8d5cb416-73c3-476b-95fd-9358cbfaebfa",
                 "version":"0.2"
             }
         }
    },
    "channelId":"directlinespeech",
    "conversation":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79",
        "isGroup":false
    },
    "entities":[],
    "from":{
        "id":"SpeechEchoBotTutorial-BotRegistration-8726"
    },
    "id":"89841b4d-46ce-42de-9960-4fe4070c70cc",
    "inputHint":"acceptingInput",
    "recipient":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79|0000"
    },
    "replyToId":"67c823b4-4c7a-4828-9d6e-0b84fd052869",
    "serviceUrl":"urn:botframework:websocket:directlinespeech",
    "speak":"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice name='en-US-JennyNeural'>Echo: Hello and welcome.</voice></speak>",
    "text":"Echo: Hello and welcome.",
    "timestamp":"2019-07-19T20:03:51.1939097Z",
    "type":"message"
}

JSON çıkışında döndürülenler hakkında daha fazla bilgi edinmek için etkinlikteki alanlara bakın. Bu öğreticide, metin ve konuşma alanlarına odaklanabilirsiniz.

Konuşma SDK'sına yapılan çağrılar için istemci kaynak kodunu görüntüleme

Windows Voice Assistant İstemcisi, Konuşma SDK'sını içeren Microsoft.CognitiveServices.Speech NuGet paketini kullanır. Örnek kodu gözden geçirmeye başlamak için iyi bir yer, VoiceAssistantClient\MainWindow.xaml.cs dosyasındaki yöntemdir InitSpeechConnector() ve bu yöntem şu iki Konuşma SDK'sı nesnesini oluşturur:

  • DialogServiceConfig: Kaynak anahtarı ve bölgesi gibi yapılandırma ayarları için.
  • DialogService Bağlan or: Tanınan konuşma ve bot yanıtlarını işlemeye yönelik kanal bağlantısını ve istemci aboneliği olaylarını yönetmek için.

Özel anahtar sözcük etkinleştirmesi ekleme

Konuşma SDK'sı özel anahtar sözcük etkinleştirmeyi destekler. Microsoft yardımcısı için "Hey Cortana"ya benzer şekilde, seçtiğiniz bir anahtar sözcüğü sürekli dinleyen bir uygulama yazabilirsiniz. Bir anahtar sözcüğün tek sözcük veya birden çok sözcüklü tümcecik olabileceğini unutmayın.

Not

Anahtar sözcük terimi genellikle uyandırma sözcüğü terimiyle birbirinin yerine kullanılır. Her ikisinin de Microsoft belgelerinde kullanıldığını görebilirsiniz.

Anahtar sözcük algılama, istemci uygulamasında gerçekleşir. Anahtar sözcük kullanıyorsanız, ses yalnızca anahtar sözcük algılandığında Doğrudan Çizgi Konuşma kanalına akışla gönderilir. Doğrudan Çizgi Konuşma kanalı, seçtiğiniz anahtar sözcüğün ses akışının başında olduğunu doğrulamak için bulutta daha karmaşık işlemler yapan anahtar sözcük doğrulama adlı bir bileşen içerir. Anahtar sözcük doğrulaması başarılı olursa kanal botla iletişim kurar.

Anahtar sözcük modeli oluşturmak, Windows Voice Assistant İstemcisi'ni bu modeli kullanacak şekilde yapılandırmak ve botunuzla test etmek için şu adımları izleyin:

  1. Konuşma hizmetini kullanarak özel bir anahtar sözcük oluşturun.
  2. Önceki adımda indirdiğiniz model dosyasının sıkıştırmasını açın. Anahtar sözcüğünüz için adlandırılmalıdır. Kws.table adlı bir dosya arıyorsunuz.
  3. Windows Voice Assistant İstemcisi'nde Ayarlar menüsünü (sağ üstteki dişli simgesi) bulun. Model dosya yolu için 2. adımdaki kws.table dosyasının tam yol adını girin.
  4. Etkin onay kutusunu seçin. Onay kutusunun yanında şu iletiyi görmeniz gerekir: "Sonraki bağlantıda anahtar sözcüğü dinleyecek." Yanlış dosya veya geçersiz bir yol sağladıysanız bir hata iletisi görmeniz gerekir.
  5. Abonelik anahtarı ve Abonelik anahtarı bölgesi değerlerini girin ve Ayarlar menüsünü kapatmak için Tamam'ı seçin.
  6. Yeniden Bağlan'ı seçin. Şu mesajı görmeniz gerekir: "Yeni konuşma başlatıldı - yazın, mikrofon düğmesine basın veya anahtar sözcüğü söyleyin." Uygulama artık sürekli olarak dinliyor.
  7. Anahtar sözcüğünüzle başlayan tümcecikleri söyleyin. Örneğin: "{anahtar sözcüğünüz}, saat kaç?" Anahtar sözcüğünü kullandıktan sonra duraklatmanıza gerek yoktur. İşiniz bittiğinde iki şey olur:
    • Konuştuğunuz şeyin dökümünü görürsünüz.
    • Botunun yanıtını duyarsınız.
  8. Botunuzun desteklediği üç giriş türüyle deneme yapmaya devam edin:
    • Alt çubukta metin girme
    • Mikrofon simgesine basma ve konuşma
    • Anahtar sözcüğünüzle başlayan bir tümcecik söyleme

Anahtar sözcük algılamayı etkinleştiren kaynak kodunu görüntüleme

Windows Voice Assistant İstemcisi'nin kaynak kodunda, anahtar sözcük algılamayı etkinleştiren kodu gözden geçirmek için şu dosyaları kullanın:

İsteğe bağlı: Dili ve bot sesini değiştirme

Oluşturduğunuz bot, varsayılan ABD İngilizcesi metniyle konuşma sesini dinleyecek ve İngilizce yanıt verecektir. Ancak, İngilizce veya varsayılan bir ses kullanmakla sınırlı değilsiniz.

Bu bölümde, botunuzun dinleyip yanıt verdiği dili değiştirmeyi öğreneceksiniz. Ayrıca bu dil için farklı bir ses seçmeyi de öğrenirsiniz.

Dili değiştirme

Konuşmayı metne dönüştürme tablosunda belirtilen dillerden herhangi birini seçebilirsiniz. Aşağıdaki örnek dili Almanca olarak değiştirir.

  1. Windows Voice Assistant İstemci uygulamasını açın, Ayarlar düğmesini (sağ üst dişli simgesi) seçin ve Dil alanına de-degirin. Bu, metin tablosuna konuşmada belirtilen yerel ayar değeridir.

    Bu adım, konuşulan dilin tanınmasını ayarlayarak varsayılan en-us'yi geçersiz kılmaktadır. Ayrıca Doğrudan Çizgi Konuşma kanalına bot yanıtı için varsayılan Almanca sesi kullanma talimatı verir.

  2. Ayarlar sayfasını kapatın ve yankı botunuzla yeni bir bağlantı kurmak için Yeniden Bağlan düğmesini seçin.

  3. Mikrofon düğmesini seçin ve Almanca bir tümcecik söyleyin. Tanınan metin görüntülenir ve yankı botu varsayılan Almanca sesle yanıt verir.

Varsayılan bot sesini değiştirme

Bot yanıtı basit metin yerine Konuşma Sentezi Biçimlendirme Dili (SSML) biçiminde belirtiyorsa, konuşmayı seslendirmek ve telaffuzu denetlemek için metni seçebilirsiniz. Yankı botu SSML kullanmaz, ancak bunu yapmak için kodu kolayca değiştirebilirsiniz.

Aşağıdaki örnek, varsayılan kadın sesi yerine Almanca ses de-DE-RalfNeural (erkek sesi) kullanılacak şekilde yankı botu yanıtına SSML ekler. Standart seslerin listesine ve diliniz için desteklenen sinir seslerinin listesine bakın.

  1. samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs dosyasını açın.

  2. Şu satırları bulun:

    var replyText = $"Echo: {turnContext.Activity.Text}";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    

    Bunları şu kodla değiştirin:

    var replyText = $"Echo: {turnContext.Activity.Text}";
    var replySpeak = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='de-DE'>
                    <voice name='de-DE-RalfNeural'>" +
                    $"{replyText}" + "</voice></speak>";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replySpeak), cancellationToken);
    
  3. Visual Studio'da çözümünüzü derleyin ve derleme hatalarını düzeltin.

yöntemindeki MessageFactory.Text ikinci bağımsız değişken, bot yanıtında etkinlik konuşma alanını ayarlar. Önceki değişiklikle birlikte, varsayılan olmayan bir Almanca ses belirtmek için basit metinden SSML'ye değiştirilir.

Botunuzu yeniden dağıtma

Botta gerekli değişikliği yaptığınıza göre, sonraki adım Azure Uygulaması Hizmeti'ne yeniden yayımlamak ve denemektir:

  1. Çözüm Gezgini penceresinde EchoBot projesine sağ tıklayın ve Yayımla'yı seçin.

  2. Önceki dağıtım yapılandırmanız zaten varsayılan olarak yüklendi. EchoBot20190805125647 - Web Dağıtımı'nın yanındaki Yayımla'yı seçin.

    Yayımlama Başarılı iletisi Visual Studio çıkış penceresinde görüntülenir ve "Botunuz hazır!" iletisini içeren bir web sayfası açılır

  3. Windows Voice Assistant İstemci uygulamasını açın. Ayarlar düğmesini (sağ üst dişli simgesi) seçin ve Dil alanında de-de özelliğinin hala bulunduğundan emin olun.

  4. Yeni dağıtılan botunuzla yeniden bağlantı kurmak, yeni dilde konuşmak ve botunuzun yeni sesle bu dilde yanıt vermesini dinlemek için Windows Voice Assistant İstemcisi'ni çalıştırma bölümündeki yönergeleri izleyin.

Kaynakları temizleme

Bu öğreticide dağıtılan yankı botunu kullanmaya devam etmeyecekseniz Azure kaynak grubunu silerek bu botu ve ilişkili tüm Azure kaynaklarını kaldırabilirsiniz:

  1. Azure portalında Azure hizmetleri'nin altında Kaynak Grupları'nıseçin.
  2. SpeechEchoBotTutorial-ResourceGroup kaynak grubunu bulun. Üç noktayı (...) seçin.
  3. Kaynak grubunu sil'i seçin.

Belgeleri inceleyin

Sonraki adımlar