Sdílet prostřednictvím


Kurz: Hlasové povolení robota

Pomocí služby Azure AI Speech můžete chatovacího robota povolit hlasem.

V tomto kurzu použijete Microsoft Bot Framework k vytvoření robota, který reaguje na to, co říkáte. Robota nasadíte do Azure a zaregistrujete ho v kanálu Direct Line Speech služby Bot Framework. Pak nakonfigurujete ukázkovou klientskou aplikaci pro Windows, která vám umožní mluvit s robotem a slyšet, jak s vámi mluví.

K dokončení kurzu nepotřebujete rozsáhlé zkušenosti ani znalosti azure, robotů Bot Framework nebo Direct Line Speech.

Chatovací robot s podporou hlasu, kterého jste v tomto kurzu udělali, se řídí těmito kroky:

  1. Ukázková klientská aplikace je nakonfigurovaná tak, aby se připojila k kanálu Direct Line Speech a robotovi echo.
  2. Když uživatel stiskne tlačítko, hlasové zvukové proudy se streamují z mikrofonu. Nebo se při použití vlastního klíčového slova průběžně nahrává zvuk.
  3. Pokud se použije vlastní klíčové slovo, detekce klíčových slov se provede na místním zařízení a ztěžuje streamování zvuku do cloudu.
  4. Ukázková klientská aplikace používá sadu Speech SDK pro připojení k kanálu Direct Line Speech a streamování zvuku.
  5. Volitelně se ve službě provede ověření klíčových slov s vyšší přesností.
  6. Zvuk se předá službě rozpoznávání řeči a přepíše se na text.
  7. Rozpoznaný text se předá robotovi echo jako aktivita Bot Frameworku.
  8. Text odpovědi se přepíná na zvuk službou Speech a streamuje se zpět do klientské aplikace pro přehrávání.

Diagram znázorňující tok kanálu Direct Line Speech

Poznámka:

Kroky v tomto kurzu nevyžadují placenou službu. Jako nový uživatel Azure můžete k dokončení tohoto kurzu použít kredity z bezplatného zkušebního předplatného Azure a bezplatné úrovně služby Speech.

Tady je tento kurz:

  • Vytvořte nové prostředky Azure.
  • Sestavte, otestujte a nasaďte ukázku robota echo do služby Aplikace Azure Service.
  • Zaregistrujte robota v kanálu Direct Line Speech.
  • Sestavte a spusťte klienta hlasového pomocníka pro Windows, abyste mohli pracovat s robotem echo.
  • Přidejte vlastní aktivaci klíčových slov.
  • Zjistěte, jak změnit jazyk rozpoznané a mluvené řeči.

Požadavky

K dokončení tohoto kurzu potřebujete:

Vytvoření skupiny zdrojů

Klientská aplikace, kterou vytvoříte v tomto kurzu, používá několik služeb Azure. Pokud chcete zkrátit dobu odezvy od robota, chcete zajistit, aby tyto služby byly ve stejné oblasti Azure.

Tato část vás provede vytvořením skupiny prostředků v oblasti USA – západ. Tuto skupinu prostředků použijete při vytváření jednotlivých prostředků pro Bot Framework, kanál Direct Line Speech a službu Speech.

  1. Přejděte na stránku webu Azure Portal a vytvořte skupinu prostředků.
  2. Zadejte následující informace:
    • Nastavte předplatné na bezplatnou zkušební verzi. (Můžete také použít existující předplatné.)
    • Zadejte název skupiny prostředků. Doporučujeme SpeechEchoBotTutorial-ResourceGroup.
    • V rozevírací nabídce Oblast vyberte USA – západ.
  3. Vyberte Zkontrolovat a vytvořit. Měl by se zobrazit banner, který předá ověření.
  4. Vyberte Vytvořit. Vytvoření skupiny prostředků může trvat několik minut.
  5. Stejně jako u prostředků, které vytvoříte později v tomto kurzu, je vhodné tuto skupinu prostředků připnout na řídicí panel, abyste k němu měli snadný přístup. Pokud chcete připnout tuto skupinu prostředků, vyberte ikonu připnutí vedle názvu.

Volba oblasti Azure

Ujistěte se, že používáte podporovanou oblast Azure. Kanál Direct Line Speech používá text ke službě speech, která má neurální a standardní hlasy. Neurální hlasy se používají v těchto oblastech Azure a v těchto oblastech Azure se používají standardní hlasy (vyřazení).

Další informace o oblastech najdete v tématu Umístění Azure.

Vytvoření zdrojů

Teď, když máte skupinu prostředků v podporované oblasti, je dalším krokem vytvoření jednotlivých prostředků pro každou službu, kterou použijete v tomto kurzu.

Vytvoření prostředku služby Speech

  1. Přejděte na stránku webu Azure Portal a vytvořte prostředek služby Speech.
  2. Zadejte následující informace:
    • Jako název prostředku doporučujeme SpeechEchoBotTutorial-Speech .
    • V případě předplatného se ujistěte, že je vybraná bezplatná zkušební verze .
    • Jako umístění vyberte USA – západ.
    • Jako cenovou úroveň vyberte F0. Toto je úroveň Free.
    • Jako skupinu prostředků vyberte SpeechEchoBotTutorial-ResourceGroup.
  3. Po zadání všech požadovaných informací vyberte Vytvořit. Vytvoření prostředku může trvat několik minut.
  4. Později v tomto kurzu potřebujete klíče předplatného pro tuto službu. K těmto klíčům můžete kdykoli přistupovat z oblasti Přehled vašeho prostředku (v části Spravovat klíče) nebo z oblasti Klíče.

V tomto okamžiku zkontrolujte, že vaše skupina prostředků (SpeechEchoBotTutorial-ResourceGroup) má prostředek služby Speech:

Name Type Umístění
SpeechEchoBotTutorial–Speech Řeč USA – západ

Vytvoření plánu služby Azure App Service

Plán služby App Service definuje sadu výpočetních prostředků pro provozování webové aplikace.

  1. Přejděte na stránku webu Azure Portal a vytvořte plán služby Aplikace Azure.
  2. Zadejte následující informace:
    • Nastavte předplatné na bezplatnou zkušební verzi. (Můžete také použít existující předplatné.)
    • Jako skupinu prostředků vyberte SpeechEchoBotTutorial-ResourceGroup.
    • Jako název plánu doporučujeme SpeechEchoBotTutorial-AppServicePlan .
    • V operačním systému vyberte Windows.
    • Jako oblast vyberte USA – západ.
    • V případě cenové úrovně se ujistěte, že je vybraná úroveň Standard S1 . To by měla být výchozí hodnota. Pokud není, nastavte operační systém na Windows.
  3. Vyberte Zkontrolovat a vytvořit. Měl by se zobrazit banner, který předá ověření.
  4. Vyberte Vytvořit. Vytvoření prostředku může trvat několik minut.

V tomto okamžiku zkontrolujte, že vaše skupina prostředků (SpeechEchoBotTutorial-ResourceGroup) má dva prostředky:

Name Type Umístění
SpeechEchoBotTutorial-AppServicePlan Plán služby App Service USA – západ
SpeechEchoBotTutorial–Speech Služby Azure AI USA – západ

Vytvoření robota echo

Teď, když jste vytvořili prostředky, začněte ukázkou robota echo, který odpovídá textu, který jste zadali jako odpověď. Ukázkový kód je už nakonfigurovaný tak, aby fungoval s kanálem Direct Line Speech, který se připojíte po nasazení robota do Azure.

Poznámka:

Pokyny, které následují, spolu s dalšími informacemi o robotovi echo, jsou k dispozici v souboru README ukázky na GitHubu.

Spuštění ukázky robota na vašem počítači

  1. Naklonujte úložiště ukázek:

    git clone https://github.com/Microsoft/botbuilder-samples.git
    
  2. Otevřete sadu Visual Studio.

  3. Na panelu nástrojů vyberte Soubor>otevřít>projekt nebo řešení. Pak otevřete řešení projektu:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. Po načtení projektu vyberte klíč F5 pro sestavení a spuštění projektu.

    V prohlížeči, který se otevře, se zobrazí obrazovka podobná této:

    Snímek obrazovky se stránkou EchoBot se zprávou, že robot je připravený

Testování ukázky robota pomocí bot Framework Emulatoru

Bot Framework Emulator je desktopová aplikace, která vývojářům robotů umožňuje testovat a ladit roboty místně (nebo vzdáleně prostřednictvím tunelu). Emulátor přijímá zadaný text jako vstup (nikoli hlas). Robot také odpoví textem.

Pomocí následujícího postupu můžete pomocí bot Framework Emulatoru otestovat robota echo spuštěného místně s textovým vstupem a textovým výstupem. Po nasazení robota do Azure ho otestujete pomocí hlasového vstupu a hlasového výstupu.

  1. Nainstalujte Bot Framework Emulator verze 4.3.0 nebo novější.

  2. Otevřete Bot Framework Emulator a pak vyberte Soubor>Open Bot.

  3. Zadejte adresu URL robota. Příklad:

    http://localhost:3978/api/messages
    
  4. Vyberte Připojit.

  5. Robot by vás měl pozdravit zprávou "Hello and welcome!". Zadejte libovolnou textovou zprávu a potvrďte, že od robota obdržíte odpověď.

    Takto může vypadat výměna komunikace s robotem echo: Snímek obrazovky ukazuje bot Framework Emulator.

Nasazení robota do služby Aplikace Azure Service

Dalším krokem je nasazení robota echo do Azure. Existuje několik způsobů, jak nasadit robota, včetně Azure CLI a šablon nasazení. Tento kurz se zaměřuje na publikování přímo ze sady Visual Studio.

Poznámka:

Pokud se při provádění následujících kroků nezobrazí publikování, použijte Instalační program pro Visual Studio k přidání úlohy ASP.NET a vývoje webu.

  1. V sadě Visual Studio otevřete robota echo, který je nakonfigurovaný pro použití s kanálem Direct Line Speech:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. V Průzkumník řešení klikněte pravým tlačítkem na projekt EchoBot a vyberte Publikovat.

  3. V okně Publikovat , které se otevře:

    1. Vyberte Další Azure>.
    2. Vyberte Aplikace Azure Service (Windows)>Next.
    3. Vyberte Vytvořit novou službu Aplikace Azure pomocí zeleného znaménka plus.
  4. Když se zobrazí okno App Service (Windows):

    • Vyberte Přidat účet a přihlaste se pomocí svých přihlašovacích údajů k účtu Azure. Pokud už jste přihlášení, vyberte svůj účet z rozevíracího seznamu.

    • Jako název zadejte globálně jedinečný název robota. Tento název slouží k vytvoření jedinečné adresy URL robota.

      V poli se zobrazí výchozí název, který obsahuje datum a čas (například EchoBot20190805125647). Pro účely tohoto kurzu můžete použít výchozí název.

    • V části Předplatné vyberte bezplatnou zkušební verzi.

    • Jako skupinu prostředků vyberte SpeechEchoBotTutorial-ResourceGroup.

    • Jako plán hostování vyberte SpeechEchoBotTutorial-AppServicePlan.

  5. Vyberte Vytvořit. Na poslední obrazovce průvodce vyberte Dokončit.

  6. Vyberte Publikovat. Visual Studio nasadí robota do Azure.

    V okně výstupu sady Visual Studio by se měla zobrazit zpráva o úspěchu, která vypadá takto:

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

    Váš výchozí prohlížeč by se měl otevřít a zobrazit stránku s informacemi o tom, že váš robot je připravený.

V tuto chvíli zkontrolujte skupinu prostředků (SpeechEchoBotTutorial-ResourceGroup) na webu Azure Portal. Ověřte, že obsahuje tyto tři prostředky:

Name Type Umístění
EchoBot20190805125647 App Service USA – západ
SpeechEchoBotTutorial-AppServicePlan Plán služby App Service USA – západ
SpeechEchoBotTutorial–Speech Služby Azure AI USA – západ

Povolení webových soketů

Potřebujete provést malou změnu konfigurace, aby robot mohl komunikovat s kanálem Direct Line Speech pomocí webových soketů. Pokud chcete povolit webové sokety, postupujte takto:

  1. Přejděte na web Azure Portal a vyberte prostředek služby App Service. Název prostředku by měl být podobný echoBot20190805125647 (jedinečný název aplikace).
  2. V levém podokně v části Nastavení vyberte Konfigurace.
  3. Vyberte kartu Obecné nastavení.
  4. Vyhledejte přepínač webových soketů a nastavte ho na Zapnuto.
  5. Zvolte Uložit.

Tip

K zastavení nebo restartování služby můžete použít ovládací prvky v horní části stránky služby Aplikace Azure. Tato schopnost se může hodit při řešení potíží.

Vytvoření registrace kanálu

Po vytvoření prostředku služby Aplikace Azure pro hostování robota je dalším krokem vytvoření registrace kanálu. Vytvoření registrace kanálu je předpokladem pro registraci robota v kanálech Bot Framework, včetně kanálu Direct Line Speech. Pokud chcete získat další informace o tom, jak roboti používají kanály, přečtěte si téma Připojení robota ke kanálům.

  1. Přejděte na stránku webu Azure Portal a vytvořte robota Azure.
  2. Zadejte následující informace:
    • Jako popisovač robota zadejte SpeechEchoBotTutorial-BotRegistration-####.. Nahraďte #### mnoha volbami.

      Poznámka:

      Popisovač robota musí být globálně jedinečný. Pokud zadáte jedno a zobrazí se chybová zpráva "Požadované ID robota není k dispozici", vyberte jiné číslo. Následující příklady používají 8726.

    • V části Předplatné vyberte bezplatnou zkušební verzi.

    • Jako skupinu prostředků vyberte SpeechEchoBotTutorial-ResourceGroup.

    • Jako umístění vyberte USA – západ.

    • Jako cenovou úroveň vyberte F0.

    • Ignorovat ID a heslo automatického vytvoření aplikace

  3. V dolní části podokna Robot Azure vyberte Vytvořit.
  4. Po vytvoření prostředku otevřete prostředek SpeechEchoBotTutorial-BotRegistration-### na webu Azure Portal.
  5. V oblasti Nastavení vyberte Možnost Konfigurace.
  6. V případě koncového bodu zasílání zpráv zadejte adresu URL webové aplikace s připojenou cestou /api/messages . Pokud by například globálně jedinečný název aplikace byl EchoBot20190805125647, váš koncový bod zasílání zpráv by byl https://EchoBot20190805125647.azurewebsites.net/api/messages/.

V tuto chvíli zkontrolujte skupinu prostředků (SpeechEchoBotTutorial-ResourceGroup) na webu Azure Portal. Teď by se měly zobrazit alespoň čtyři prostředky:

Name Type Umístění
EchoBot20190805125647 App Service USA – západ
SpeechEchoBotTutorial-AppServicePlan Plán služby App Service USA – západ
SpeechEchoBotTutorial-BotRegistration-8726 Bot Service Globální
SpeechEchoBotTutorial–Speech Služby Azure AI USA – západ

Důležité

Prostředek Azure AI Bot Service zobrazuje globální oblast, i když jste vybrali OBLAST USA – západ. To se očekává.

Volitelné: Testování ve webovém chatu

Na stránce Robot Azure je možnost Test v Webový chat v části Nastavení. Ve výchozím nastavení nefunguje s robotem, protože webový chat musí být ověřený vůči robotovi.

Pokud chcete otestovat nasazeného robota s textovým vstupem, postupujte následovně. Tyto kroky jsou volitelné a nevyžadují se, abyste mohli pokračovat v kurzu.

  1. Na webu Azure Portal vyhledejte a otevřete prostředek EchoBotTutorial-BotRegistration-##.

  2. V oblasti Nastavení vyberte Možnost Konfigurace. Zkopírujte hodnotu pod ID aplikace Microsoftu.

  3. Otevřete řešení Visual Studio EchoBot. V Průzkumník řešení vyhledejte a dvakrát vyberte appsettings.json.

  4. Nahraďte prázdný řetězec vedle MicrosoftAppId v souboru JSON hodnotou zkopírovaného ID.

  5. Vraťte se na Azure Portal. V oblasti Nastavení vyberte Konfigurace. Pak vyberte Spravovat vedle ID aplikace Microsoftu.

  6. Vyberte Nový tajný klíč klienta. Přidejte popis (například webový chat) a vyberte Přidat. Zkopírujte nový tajný kód.

  7. Nahraďte prázdný řetězec vedle MicrosoftAppPassword v souboru JSON zkopírovanou hodnotou tajného kódu.

  8. Uložte soubor JSON. Měl by vypadat přibližně takto:

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. Znovu publikujte aplikaci: Klikněte pravým tlačítkem myši na projekt EchoBot v sadě Visual Studio Průzkumník řešení, vyberte Publikovat a pak vyberte tlačítko Publikovat.

Registrace kanálu Direct Line Speech

Teď je čas zaregistrovat robota v kanálu Direct Line Speech. Tento kanál vytvoří připojení mezi robotem a klientskou aplikací zkompilovanou pomocí sady Speech SDK.

  1. Na webu Azure Portal vyhledejte a otevřete prostředek SpeechEchoBotTutorial-BotRegistration-##.

  2. V oblasti Nastavení vyberte Kanály a pak proveďte následující kroky:

    1. V části Další kanály vyberte Direct Line Speech.
    2. Zkontrolujte text na stránce Konfigurovat direct line speech a rozbalte rozevírací nabídku účtu služby Cognitive Services.
    3. V nabídce vyberte prostředek služby Speech, který jste vytvořili dříve (například SpeechEchoBotTutorial-Speech), a přidružte robota ke klíči předplatného.
    4. Ignorujte zbývající volitelná pole.
    5. Zvolte Uložit.
  3. V oblasti Nastavení vyberte Konfigurace a pak proveďte následující kroky:

    1. Zaškrtněte políčko Povolit koncový bod streamování. Tento krok je nezbytný pro vytvoření komunikačního protokolu založeného na webových soketech mezi robotem a kanálem Direct Line Speech.
    2. Zvolte Uložit.

Pokud se chcete dozvědět víc, přečtěte si téma Připojení robota ke službě Direct Line Speech.

Spuštění klienta Hlasového pomocníka pro Windows

Klient Hlasového pomocníka pro Windows je aplikace Windows Presentation Foundation (WPF) v jazyce C#, která ke správě komunikace s robotem pomocí kanálu Direct Line Speech používá sadu Speech SDK . Použijte ho k interakci s robotem a otestování před napsání vlastní klientské aplikace. Je to open source, takže si můžete buď stáhnout spustitelný soubor a spustit ho, nebo ho sestavit sami.

Klient Hlasového pomocníka pro Windows má jednoduché uživatelské rozhraní, které umožňuje nakonfigurovat připojení k robotovi, zobrazit textovou konverzaci, zobrazit aktivity služby Bot Framework ve formátu JSON a zobrazit adaptivní karty. Podporuje také použití vlastních klíčových slov. Pomocí tohoto klienta můžete mluvit s robotem a přijímat hlasovou odpověď.

Poznámka:

V tomto okamžiku potvrďte, že máte povolený a funkční mikrofon a reproduktory.

  1. Přejděte do úložiště GitHub pro klienta Pomocníka pro Windows Voice Assistant.

  2. Postupujte podle uvedených pokynů:

    • Stažení předem připraveného spustitelného souboru v balíčku .zip ke spuštění
    • Sestavte spustitelný soubor sami tím, že naklonujete úložiště a sestavíte projekt.
  3. Otevřete VoiceAssistantClient.exe klientskou aplikaci a nakonfigurujte ji pro připojení k robotovi podle pokynů v úložišti GitHub.

  4. Vyberte Znovu se připojit a ujistěte se, že se zobrazí zpráva "Nová konverzace byla spuštěna – zadejte nebo stiskněte tlačítko mikrofonu".

  5. Pojďme to otestovat. Vyberte tlačítko mikrofonu a mluvte pár slov v angličtině. Rozpoznaný text se zobrazí při mluvení. Jakmile budete mluvit, robot odpoví vlastním hlasem a řekne "echo" následované rozpoznaná slova.

    Ke komunikaci s robotem můžete použít také text. Stačí zadat text na dolním panelu.

Řešení chyb v klientovi Hlasového pomocníka pro Windows

Pokud se v hlavním okně aplikace zobrazí chybová zpráva, pomocí této tabulky identifikujte a vyřešte problém:

Zpráva Co byste měli udělat?
Chyba (AuthenticationFailure): Upgrade protokolu WebSocket selhal s chybou ověřování (401). Kontrola správného klíče prostředku (nebo autorizačního tokenu) a názvu oblasti Na stránce Nastavení aplikace se ujistěte, že jste klíč a jeho oblast zadali správně.
Chyba (ConnectionFailure): Připojení vzdáleného hostitele zavřelo. Kód chyby: 1011. Podrobnosti o chybě: Před odesláním zprávy se k robotovi nepodařilo připojit Ujistěte se, že jste zaškrtli políčko Povolit koncový bod streamování nebo zapnuli webové sokety.
Ujistěte se, že je spuštěná služba Aplikace Azure. Pokud ano, zkuste ho restartovat.
Chyba (ConnectionFailure): Připojení vzdáleného hostitele zavřelo. Kód chyby: 1002. Podrobnosti o chybě: Server vrátil stavový kód 503, když byl očekáváný stavový kód 101. Ujistěte se, že jste zaškrtli políčko Povolit koncový bod streamování nebo zapnuli webové sokety.
Ujistěte se, že je spuštěná služba Aplikace Azure. Pokud ano, zkuste ho restartovat.
Chyba (ConnectionFailure): Připojení vzdáleného hostitele zavřelo. Kód chyby: 1011. Podrobnosti o chybě: Stavový kód odpovědi neindikuje úspěch: 500 (InternalServerError) Robot zadal neurální hlas v poli promluvy své výstupní aktivity, ale oblast Azure přidružená k vašemu klíči prostředku nepodporuje neurální hlasy. Viz neurální hlasy a standardní hlasy.

Pokud akce v tabulce váš problém nevyřeší, podívejte se na hlasové asistenty: Nejčastější dotazy. Pokud po provedení všech kroků v tomto kurzu stále nemůžete problém vyřešit, zadejte nový problém na stránce GitHubu hlasového asistenta.

Poznámka k vypršení časového limitu připojení

Pokud jste připojení k robotovi a během posledních pěti minut nedošlo k žádné aktivitě, služba automaticky zavře připojení webového soketu s klientem a robotem. Toto chování je úmyslné. Na dolním panelu se zobrazí zpráva, že vypršel časový limit aktivního připojení, ale je připravený se znovu připojit na vyžádání.

Nemusíte vybírat tlačítko Znovu připojit . Stiskněte tlačítko mikrofonu a začněte mluvit, zadejte textovou zprávu nebo řekněte klíčové slovo (pokud je povolené). Připojení se automaticky znovu publikuje.

Zobrazení aktivit robota

Každý robot odesílá a přijímá zprávy o aktivitách. V okně Protokolu aktivit klienta Pomocníka s Windows Voice Assistant zobrazují protokoly s časovým razítkem každou aktivitu, kterou klient přijal od robota. Můžete také zobrazit aktivity, které klient odeslal do robota pomocí metody DialogServiceConnector.SendActivityAsync . Když vyberete položku protokolu, zobrazí se podrobnosti o přidružené aktivitě ve formátu JSON.

Tady je ukázkový JSON aktivity, kterou klient přijal:

{
    "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"
}

Další informace o tom, co se vrátí ve výstupu JSON, najdete v polích v aktivitě. V tomto kurzu se můžete zaměřit na pole textu a mluvte .

Zobrazení zdrojového kódu klienta pro volání sady Speech SDK

Klient Hlasového pomocníka pro Windows používá balíček NuGet Microsoft.CognitiveServices.Speech, který obsahuje sadu Speech SDK. Dobrým místem pro zahájení kontroly ukázkového kódu je metoda InitSpeechConnector() v souboru VoiceAssistantClient\MainWindow.xaml.cs, která vytvoří tyto dva objekty sady Speech SDK:

  • DialogServiceConfig: Pro nastavení konfigurace, jako je klíč prostředku a jeho oblast.
  • DialogServiceConnector: Správa událostí připojení kanálu a odběru klienta pro zpracování rozpoznané řeči a odpovědí robota

Přidání aktivace vlastním klíčovým slovem

Sada Speech SDK podporuje aktivaci vlastních klíčových slov. Podobně jako "Hey Cortana" pro asistenta Microsoftu můžete napsat aplikaci, která bude průběžně naslouchat klíčovému slovu podle vašeho výběru. Mějte na paměti, že klíčové slovo může být jedno slovo nebo víceslovná fráze.

Poznámka:

Klíčové slovo se často používá zaměnitelně s výrazem wake word. Oba se můžou zobrazovat v dokumentaci Microsoftu.

Detekce klíčových slov probíhá v klientské aplikaci. Pokud používáte klíčové slovo, zvuk se streamuje do kanálu Direct Line Speech jenom v případě, že se klíčové slovo zjistí. Kanál Direct Line Speech obsahuje komponentu s názvem Ověření klíčových slov, která provádí složitější zpracování v cloudu a ověřuje, že zvolené klíčové slovo je na začátku zvukového streamu. Pokud ověření klíčových slov proběhne úspěšně, bude kanál komunikovat s robotem.

Pomocí těchto kroků vytvořte model klíčových slov, nakonfigurujte klienta Hlasového asistenta pro Windows tak, aby používal tento model, a otestujte ho s robotem:

  1. Vytvořte vlastní klíčové slovo pomocí služby Speech.
  2. Rozbalte soubor modelu, který jste stáhli v předchozím kroku. Měla by být pojmenovaná pro vaše klíčové slovo. Hledáte soubor s názvem kws.table.
  3. V klientovi Hlasového pomocníka systému Windows vyhledejte nabídku Nastavení (ikona ozubeného kola v pravém horním rohu). Jako cestu k souboru modelu zadejte úplný název cesty k souboru kws.table z kroku 2.
  4. Zaškrtněte políčko Povoleno. Vedle zaškrtávacího políčka by se měla zobrazit tato zpráva: "Bude naslouchat klíčovému slovu při dalším připojení". Pokud jste zadali nesprávný soubor nebo neplatnou cestu, měla by se zobrazit chybová zpráva.
  5. Zadejte hodnoty pro klíč předplatného a oblast klíče předplatného a potom stisknutím klávesy OK zavřete nabídku Nastavení.
  6. Vyberte Znovu připojit. Měla by se zobrazit zpráva: "Nová konverzace byla spuštěna – zadejte, stiskněte tlačítko mikrofonu nebo řekněte klíčové slovo". Aplikace teď nepřetržitě naslouchá.
  7. Mluvte libovolnou frázi, která začíná vaším klíčovým slovem. Například: {vaše klíčové slovo}, jaký je čas? Po promluvě klíčového slova se nemusíte pozastavit. Až budete hotovi, stane se dvě věci:
    • Uvidíte přepis toho, co jste mluvili.
    • Uslyšíte odpověď robota.
  8. Pokračujte v experimentování se třemi vstupními typy, které robot podporuje:
    • Zadání textu na dolním panelu
    • Stisknutí ikony mikrofonu a mluvení
    • Vyslovení fráze, která začíná klíčovým slovem

Zobrazení zdrojového kódu, který umožňuje detekci klíčových slov

Ve zdrojovém kódu klienta Hlasového pomocníka pro Windows použijte tyto soubory ke kontrole kódu, který umožňuje detekci klíčových slov:

Volitelné: Změna jazyka a hlasu robota

Robot, kterého jste vytvořili, bude naslouchat a odpovídat v angličtině s výchozím americkým textem na řečový hlas. Nejste ale omezeni na používání angličtiny nebo výchozího hlasu.

V této části se dozvíte, jak změnit jazyk, na který robot naslouchá, a reagovat na ně. Dozvíte se také, jak vybrat jiný hlas pro daný jazyk.

Změna jazyka

Můžete si vybrat z libovolného jazyka uvedeného v řečové tabulce na text . Následující příklad změní jazyk na němčinu.

  1. Otevřete aplikaci Windows Voice Assistant Client, vyberte tlačítko Nastavení (ikona ozubeného kola v pravém horním rohu) a do pole Jazyk zadejte de-de. Toto je hodnota národního prostředí uvedená v tabulce převodu řeči na text .

    Tento krok nastaví rozpoznávání mluveného jazyka a přepíše výchozí en-us. Také dává kanálu Direct Line Speech pokyn, aby pro odpověď robota použil výchozí německý hlas.

  2. Zavřete stránku Nastavení a pak výběrem tlačítka Znovu připojit vytvořte nové připojení k robotovi echo.

  3. Vyberte tlačítko mikrofonu a řekněte frázi v němčině. Zobrazí se rozpoznaný text a robot echo odpoví výchozím německým hlasem.

Změna výchozího hlasu robota

Pokud robot místo jednoduchého textu určuje odpověď ve formě jazyka SSML (Speech Synthesis Markup Language), můžete vybrat mluvený hlas a ovládat výslovnost. Robot echo nepoužívá SSML, ale kód můžete snadno upravit tak, aby to udělal.

Následující příklad přidá SSML do odpovědi robota echo tak, aby se místo výchozího ženského hlasu použil německý hlas de-DE-RalfNeural (mužský hlas). Podívejte se na seznam standardních hlasů a seznamu neurálních hlasů , které jsou podporované pro váš jazyk.

  1. Otevřete ukázky\csharp_dotnetcore\02.echo-bot\echo-bot.cs.

  2. Najděte tyto řádky:

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

    Nahraďte je tímto kódem:

    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. Sestavte řešení v sadě Visual Studio a opravte případné chyby sestavení.

Druhý argument v metodě MessageFactory.Text nastaví pole promluvy aktivity v odpovědi robota. Při předchozí změně se nahradí jednoduchým textem na SSML, aby bylo možné zadat jiný než výchozí německý hlas.

Opětovné nasazení robota

Teď, když jste provedli potřebnou změnu robota, je dalším krokem jeho opětovné publikování do služby Aplikace Azure Service a vyzkoušení:

  1. V okně Průzkumník řešení klikněte pravým tlačítkem myši na projekt EchoBot a vyberte Publikovat.

  2. Předchozí konfigurace nasazení už byla načtena jako výchozí. Vyberte Publikovat vedle EchoBot20190805125647 – Nasazení webu.

    V okně výstupu sady Visual Studio se zobrazí zpráva o úspěšném publikování a otevře se webová stránka se zprávou Váš robot je připravený.

  3. Otevřete klientskou aplikaci Pomocník pro Windows Voice Assistant. Vyberte tlačítko Nastavení (ikona ozubeného kola v pravém horním rohu) a ujistěte se, že máte v poli Jazyk stále de-de.

  4. Postupujte podle pokynů v části Spuštění klienta Hlasového pomocníka pro Windows a znovu se připojte k nově nasazeným robotovi, mluvte v novém jazyce a poslechněte si odpověď robota v tomto jazyce pomocí nového hlasu.

Vyčištění prostředků

Pokud nebudete dál používat robota echo nasazeného v tomto kurzu, můžete ho odebrat a všechny jeho přidružené prostředky Azure odstraněním skupiny prostředků Azure:

  1. Na webu Azure Portal vyberte v části Služby Azure skupiny prostředků.
  2. Vyhledejte skupinu prostředků SpeechEchoBotTutorial-ResourceGroup. Vyberte tři tečky (...).
  3. Vyberte Odstranit skupinu prostředků.

Projít dokumentaci

Další kroky