Självstudie: Röstaktivera roboten

Du kan använda Azure AI Speech för att röstaktivera en chattrobot.

I den här självstudien använder du Microsoft Bot Framework för att skapa en robot som svarar på det du säger. Du distribuerar din robot till Azure och registrerar den med Bot Framework Direct Line Speech-kanalen. Sedan konfigurerar du en exempelklientapp för Windows som låter dig tala med din robot och höra den tala med dig.

För att slutföra självstudien behöver du inte någon omfattande erfarenhet eller kunskaper om Azure, Bot Framework-robotar eller Direct Line Speech.

Den röstaktiverade chattroboten som du gör i den här självstudien följer dessa steg:

  1. Exempelklientprogrammet är konfigurerat för att ansluta till Direct Line Speech-kanalen och ekoroboten.
  2. När användaren trycker på en knapp strömmar röstljudet från mikrofonen. Eller så spelas ljud in kontinuerligt när ett anpassat nyckelord används.
  3. Om ett anpassat nyckelord används sker nyckelordsidentifiering på den lokala enheten och ljuduppspelning skickas till molnet.
  4. Exempelklientprogrammet använder Speech SDK för att ansluta till Direct Line Speech-kanalen och strömma ljud.
  5. Alternativt sker nyckelordsverifiering med högre noggrannhet i tjänsten.
  6. Ljudet skickas till taligenkänningstjänsten och transkriberas till text.
  7. Den identifierade texten skickas till ekoroboten som en Bot Framework-aktivitet.
  8. Svarstexten omvandlas till ljud av text till taltjänsten och strömmas tillbaka till klientprogrammet för uppspelning.

Diagram som illustrerar flödet för direct line speech-kanalen.

Kommentar

Stegen i den här självstudien kräver ingen betald tjänst. Som ny Azure-användare kan du använda krediter från din kostnadsfria Utvärderingsprenumeration för Azure och den kostnadsfria nivån för Speech-tjänsten för att slutföra den här självstudien.

Här är vad den här självstudien beskriver:

  • Skapa nya Azure-resurser.
  • Skapa, testa och distribuera ekorobotexemplet till Azure App Service.
  • Registrera din robot med en Direct Line Speech-kanal.
  • Skapa och kör Windows Voice Assistant-klienten för att interagera med din ekorobot.
  • Lägg till anpassad nyckelordsaktivering.
  • Lär dig att ändra språket för det igenkända och talade talet.

Förutsättningar

Det här behöver du för att slutföra den här självstudien:

Skapa en resursgrupp

Klientappen som du skapar i den här självstudien använder en handfull Azure-tjänster. Om du vill minska svarstiden för svar från din robot vill du se till att tjänsterna finns i samma Azure-region.

Det här avsnittet beskriver hur du skapar en resursgrupp i regionen USA, västra. Du använder den här resursgruppen när du skapar enskilda resurser för Bot Framework, Direct Line Speech-kanalen och Speech-tjänsten.

  1. Gå till Sidan i Azure-portalen för att skapa en resursgrupp.
  2. Ange följande information:
    • Ställ in Prenumeration på Kostnadsfri utvärderingsversion. (Du kan också använda en befintlig prenumeration.)
    • Ange ett namn för resursgruppen. Vi rekommenderar SpeechEchoBotTutorial-ResourceGroup.
    • I listrutan Region väljer du USA, västra.
  3. Välj Granska och skapa. Du bör se en banderoll med texten Validering har skickats.
  4. Välj Skapa. Det kan ta några minuter att skapa resursgruppen.
  5. Precis som med de resurser du skapar senare i den här självstudien är det en bra idé att fästa den här resursgruppen på instrumentpanelen för enkel åtkomst. Om du vill fästa den här resursgruppen väljer du fästikonen bredvid namnet.

Välj en Azure-region

Se till att du använder en Azure-region som stöds. Direct Line Speech-kanalen använder text-till-tal-tjänsten, som har neurala och standardröster. Neurala röster används i dessa Azure-regioner och standardröster (pensionering) används i dessa Azure-regioner.

Mer information om regioner finns i Azure-platser.

Skapa resurser

Nu när du har en resursgrupp i en region som stöds är nästa steg att skapa enskilda resurser för varje tjänst som du ska använda i den här självstudien.

Skapa en Speech-tjänstresurs

  1. Gå till Sidan i Azure-portalen för att skapa en Speech-tjänstresurs.
  2. Ange följande information:
    • Som Namn rekommenderar vi SpeechEchoBotTutorial-Speech som namnet på din resurs.
    • För Prenumeration kontrollerar du att den kostnadsfria utvärderingsversionen har valts.
    • För Plats väljer du USA, västra.
    • För Prisnivå väljer du F0. Det här är den kostnadsfria nivån.
    • För Resursgrupp väljer du SpeechEchoBotTutorial-ResourceGroup.
  3. När du har angett all nödvändig information väljer du Skapa. Det kan ta några minuter att skapa resursen.
  4. Senare i den här självstudien behöver du prenumerationsnycklar för den här tjänsten. Du kan när som helst komma åt dessa nycklar från resursens översiktsområde (under Hantera nycklar) eller området Nycklar .

Kontrollera nu att resursgruppen (SpeechEchoBotTutorial-ResourceGroup) har en Speech-tjänstresurs:

Namn Type Location
SpeechEchoBotTutorial-Speech Tal Västra USA

Skapa en Azure App Service-plan

En App Service-plan definierar en uppsättning beräkningsresurser som en webbapp ska köra.

  1. Gå till azure-portalsidan för att skapa en Azure App Service-plan.
  2. Ange följande information:
    • Ställ in Prenumeration på Kostnadsfri utvärderingsversion. (Du kan också använda en befintlig prenumeration.)
    • För Resursgrupp väljer du SpeechEchoBotTutorial-ResourceGroup.
    • Som Namn rekommenderar vi SpeechEchoBotTutorial-AppServicePlan som namnet på din plan.
    • För Operativsystem väljer du Windows.
    • För Region väljer du USA, västra.
    • För Prisnivå kontrollerar du att Standard S1 är valt. Detta bör vara standardvärdet. Om det inte är det anger du Operativsystem till Windows.
  3. Välj Granska och skapa. Du bör se en banderoll med texten Validering har skickats.
  4. Välj Skapa. Det kan ta några minuter att skapa resursen.

Kontrollera nu att resursgruppen (SpeechEchoBotTutorial-ResourceGroup) har två resurser:

Namn Type Location
SpeechEchoBotTutorial-AppServicePlan App Service-plan Västra USA
SpeechEchoBotTutorial-Speech Azure AI-tjänster Västra USA

Skapa en ekorobot

Nu när du har skapat resurser börjar du med ekorobotexemplet, som ekar texten som du angav som svar. Exempelkoden är redan konfigurerad för att fungera med Direct Line Speech-kanalen, som du ansluter när du har distribuerat roboten till Azure.

Kommentar

Anvisningarna som följer, tillsammans med mer information om ekoroboten, finns i exemplets README på GitHub.

Kör robotexemplet på datorn

  1. Klona exempellagringsplatsen:

    git clone https://github.com/Microsoft/botbuilder-samples.git
    
  2. Öppna Visual Studio.

  3. I verktygsfältet väljer du Öppna>projekt/lösning för fil.> Öppna sedan projektlösningen:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. När projektet har lästs in väljer du F5-nyckeln för att skapa och köra projektet.

    I webbläsaren som öppnas ser du en skärm som liknar den här:

    Skärmbild som visar EchoBot-sidan med meddelandet att roboten är klar.

Testa robotexemplet med Bot Framework-emulatorn

Bot Framework-emulatorn är en skrivbordsapp som låter robotutvecklare testa och felsöka sina robotar lokalt (eller via fjärranslutning via en tunnel). Emulatorn accepterar text som skrivs som indata (inte röst). Roboten svarar också med text.

Följ de här stegen för att använda Bot Framework-emulatorn för att testa ekoroboten som körs lokalt med textinmatning och textutdata. När du har distribuerat roboten till Azure testar du den med röstinmatning och röstutdata.

  1. Installera Bot Framework Emulator version 4.3.0 eller senare.

  2. Öppna Bot Framework-emulatorn och välj sedan Filöppningsrobot>.

  3. Ange URL:en för din robot. Till exempel:

    http://localhost:3978/api/messages
    
  4. Välj Anslut.

  5. Roboten bör välkomna dig med meddelandet "Hej och välkommen!". Skriv in ett textmeddelande och bekräfta att du får ett svar från roboten.

    Så här kan ett kommunikationsutbyte med en ekorobot se ut: Skärmbild som visar Bot Framework-emulatorn.

Distribuera din robot till Azure App Service

Nästa steg är att distribuera ekoroboten till Azure. Det finns några sätt att distribuera en robot, inklusive Azure CLI och distributionsmallar. Den här självstudien fokuserar på publicering direkt från Visual Studio.

Kommentar

Om Publicera inte visas när du utför följande steg använder du Visual Studio Installer för att lägga till arbetsbelastningen ASP.NET och webbutveckling .

  1. Öppna ekoroboten som har konfigurerats för användning med Direct Line Speech-kanalen från Visual Studio:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. I Istraživač rešenja högerklickar du på EchoBot-projektet och väljer Publicera.

  3. I fönstret Publicera som öppnas:

    1. Välj Azure>Nästa.
    2. Välj Azure App Service (Windows)>Nästa.
    3. Välj Skapa en ny Azure App Service med det gröna plustecknet.
  4. När Fönstret App Service (Windows) visas:

    • Välj Lägg till ett konto och logga in med dina autentiseringsuppgifter för Azure-kontot. Om du redan är inloggad väljer du ditt konto i listrutan.

    • Som Namn anger du ett globalt unikt namn för roboten. Det här namnet används för att skapa en unik robot-URL.

      Ett standardnamn som innehåller datum och tid visas i rutan (till exempel EchoBot20190805125647). Du kan använda standardnamnet för den här självstudien.

    • För Prenumeration väljer du Kostnadsfri utvärderingsversion.

    • För Resursgrupp väljer du SpeechEchoBotTutorial-ResourceGroup.

    • Som Värdplan väljer du SpeechEchoBotTutorial-AppServicePlan.

  5. Välj Skapa. På den sista guiden väljer du Slutför.

  6. Välj Publicera. Visual Studio distribuerar roboten till Azure.

    Du bör se ett meddelande om lyckat resultat i Visual Studio-utdatafönstret som ser ut så här:

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

    Standardwebbläsaren bör öppna och visa en sida med texten: "Roboten är klar!"

Nu kontrollerar du resursgruppen (SpeechEchoBotTutorial-ResourceGroup) i Azure-portalen. Bekräfta att den innehåller följande tre resurser:

Namn Type Location
EchoBot20190805125647 App Service Västra USA
SpeechEchoBotTutorial-AppServicePlan App Service-plan Västra USA
SpeechEchoBotTutorial-Speech Azure AI-tjänster Västra USA

Aktivera webbsocketer

Du måste göra en liten konfigurationsändring så att roboten kan kommunicera med Direct Line Speech-kanalen med hjälp av webbsocketar. Följ dessa steg för att aktivera webb socketar:

  1. Gå till Azure-portalen och välj din App Service-resurs. Resursnamnet bör likna EchoBot20190805125647 (ditt unika appnamn).
  2. Välj Konfiguration under Inställningar i den vänstra rutan.
  3. Välj fliken Allmänt inställningar.
  4. Leta reda på växlingsknappen för webbsocketer och ställ in den på .
  5. Välj Spara.

Dricks

Du kan använda kontrollerna överst på azure App Service-sidan för att stoppa eller starta om tjänsten. Den här möjligheten kan vara praktisk när du felsöker.

Skapa en kanalregistrering

När du har skapat en Azure App Service-resurs som värd för din robot är nästa steg att skapa en kanalregistrering. Att skapa en kanalregistrering är en förutsättning för att registrera din robot med Bot Framework-kanaler, inklusive Direct Line Speech-kanalen. Mer information om hur robotar använder kanaler finns i Ansluta en robot till kanaler.

  1. Gå till Sidan i Azure-portalen för att skapa en Azure-robot.
  2. Ange följande information:
    • För Robothandtag anger du SpeechEchoBotTutorial-BotRegistration-#####. Ersätt #### med många valmöjligheter.

      Kommentar

      Robothandtaget måste vara globalt unikt. Om du anger ett och får felmeddelandet "Det begärda robot-ID:t är inte tillgängligt" väljer du ett annat nummer. I följande exempel används 8726.

    • För Prenumeration väljer du Kostnadsfri utvärderingsversion.

    • För Resursgrupp väljer du SpeechEchoBotTutorial-ResourceGroup.

    • För Plats väljer du USA, västra.

    • För Prisnivå väljer du F0.

    • Ignorera Automatiskt skapa app-ID och lösenord.

  3. Längst ned i fönstret Azure Bot väljer du Skapa.
  4. När du har skapat resursen öppnar du resursen SpeechEchoBotTutorial-BotRegistration-#### i Azure-portalen.
  5. I området Inställningar väljer du Konfiguration.
  6. För Meddelandeslutpunkt anger du URL:en för webbappen med sökvägen /api/messages tillagd. Om ditt globalt unika appnamn till exempel var EchoBot20190805125647 skulle meddelandeslutpunkten vara https://EchoBot20190805125647.azurewebsites.net/api/messages/.

Nu kontrollerar du resursgruppen (SpeechEchoBotTutorial-ResourceGroup) i Azure-portalen. Den bör nu visa minst fyra resurser:

Namn Type Location
EchoBot20190805125647 App Service Västra USA
SpeechEchoBotTutorial-AppServicePlan App Service-plan Västra USA
SpeechEchoBotTutorial-BotRegistration-8726 Robottjänst Global
SpeechEchoBotTutorial-Speech Azure AI-tjänster Västra USA

Viktigt!

Azure AI Bot Service-resursen visar den globala regionen, även om du har valt USA, västra. Detta är förväntat.

Valfritt: Testa i webbchatt

Azure Bot-sidan har alternativet Testa i webbchatt under Inställningar. Den fungerar inte som standard med din robot eftersom webbchatten måste autentiseras mot din robot.

Om du vill testa din distribuerade robot med textindata använder du följande steg. De här stegen är valfria och krävs inte för att du ska kunna fortsätta med självstudien.

  1. I Azure-portalen letar du upp och öppnar din EchoBotTutorial-BotRegistration-#####-resurs.

  2. I området Inställningar väljer du Konfiguration. Kopiera värdet under Microsoft App-ID.

  3. Öppna Visual Studio EchoBot-lösningen. I Istraživač rešenja letar du upp och dubbelväljer appsettings.json.

  4. Ersätt den tomma strängen bredvid MicrosoftAppId i JSON-filen med det kopierade ID-värdet.

  5. Gå tillbaka till Azure-portalen. I området Inställningar väljer du Konfiguration. Välj sedan Hantera bredvid Microsoft App-ID.

  6. Välj Ny klienthemlighet. Lägg till en beskrivning (till exempel webbchatt) och välj Lägg till. Kopiera den nya hemligheten.

  7. Ersätt den tomma strängen bredvid MicrosoftAppPassword i JSON-filen med det kopierade hemliga värdet.

  8. Spara JSON-filen. Den bör se ut ungefär så här:

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. Publicera om appen: högerklicka på EchoBot-projektet i Visual Studio Istraživač rešenja, välj Publicera och välj sedan knappen Publicera.

Registrera Direct Line Speech-kanalen

Nu är det dags att registrera din robot med Direct Line Speech-kanalen. Den här kanalen skapar en anslutning mellan din robot och en klientapp som kompilerats med Speech SDK.

  1. I Azure-portalen letar du upp och öppnar din SpeechEchoBotTutorial-BotRegistration-####-resurs.

  2. I området Inställningar väljer du Kanaler och utför sedan följande steg:

    1. Under Fler kanaler väljer du Direktlinjetal.
    2. Granska texten på sidan Konfigurera direktlinjetal och expandera sedan listrutan Cognitive Service-konto .
    3. Välj den Speech Service-resurs som du skapade tidigare (till exempel SpeechEchoBotTutorial-Speech) på menyn för att associera roboten med din prenumerationsnyckel.
    4. Ignorera resten av de valfria fälten.
    5. Välj Spara.
  3. I området Inställningar väljer du Konfiguration och utför sedan följande steg:

    1. Markera kryssrutan Aktivera slutpunkt för direktuppspelning. Det här steget är nödvändigt för att skapa ett kommunikationsprotokoll som bygger på webbsocketer mellan din robot och Direct Line Speech-kanalen.
    2. Välj Spara.

Om du vill veta mer kan du läsa Ansluta en robot till Direct Line Speech.

Kör Windows Voice Assistant-klienten

Windows Voice Assistant Client är en WPF-app (Windows Presentation Foundation) i C# som använder Speech SDK för att hantera kommunikationen med din robot via Direct Line Speech-kanalen. Använd den för att interagera med och testa roboten innan du skriver en anpassad klientapp. Det är öppen källkod, så du kan antingen ladda ned den körbara filen och köra den eller skapa den själv.

Windows Voice Assistant-klienten har ett enkelt användargränssnitt som gör att du kan konfigurera anslutningen till din robot, visa textkonversationen, visa Bot Framework-aktiviteter i JSON-format och visa anpassningsbara kort. Det stöder också användning av anpassade nyckelord. Du använder den här klienten för att tala med din robot och få ett röstsvar.

Kommentar

Kontrollera nu att mikrofonen och högtalarna är aktiverade och fungerar.

  1. Gå till GitHub-lagringsplatsen för Windows Voice Assistant-klienten.

  2. Följ de angivna anvisningarna för något av följande:

    • Ladda ned en fördefinierad körbar fil i ett .zip paket som ska köras
    • Skapa den körbara filen själv genom att klona lagringsplatsen och skapa projektet
  3. Öppna VoiceAssistantClient.exe-klientprogrammet och konfigurera det för att ansluta till din robot genom att följa anvisningarna på GitHub-lagringsplatsen.

  4. Välj Återanslut och se till att meddelandet "Ny konversation har startats – skriv eller tryck på mikrofonknappen".

  5. Vi testar det. Välj mikrofonknappen och tala några ord på engelska. Den igenkända texten visas medan du talar. När du är klar med att tala svarar roboten med sin egen röst och säger "eko" följt av de identifierade orden.

    Du kan också använda text för att kommunicera med roboten. Skriv bara in texten i det nedre fältet.

Felsöka fel i Windows Voice Assistant-klienten

Om du får ett felmeddelande i huvudappfönstret använder du den här tabellen för att identifiera och felsöka problemet:

Meddelande Vad du ska göra?
Fel (AuthenticationFailure) : WebSocket Upgrade misslyckades med ett autentiseringsfel (401). Sök efter rätt resursnyckel (eller auktoriseringstoken) och regionnamn På sidan Inställningar i appen kontrollerar du att du har angett nyckeln och dess region korrekt.
Fel (ConnectionFailure) : Anslutningen stängdes av fjärrvärden. Felkod: 1011. Felinformation: Det gick inte att ansluta till roboten innan vi skickade ett meddelande Kontrollera att du har markerat kryssrutan Aktivera slutpunkt för direktuppspelning och/eller aktiverat webbsocketer.
Kontrollera att Azure App Service körs. Om det är det kan du prova att starta om det.
Fel (ConnectionFailure) : Anslutningen stängdes av fjärrvärden. Felkod: 1002. Felinformation: Servern returnerade statuskoden "503" när statuskoden "101" förväntades Kontrollera att du har markerat kryssrutan Aktivera slutpunkt för direktuppspelning och/eller aktiverat webbsocketer.
Kontrollera att Azure App Service körs. Om det är det kan du prova att starta om det.
Fel (ConnectionFailure) : Anslutningen stängdes av fjärrvärden. Felkod: 1011. Felinformation: Svarsstatuskoden indikerar inte lyckad: 500 (InternalServerError) Roboten angav en neural röst i talarfältet för sin utdataaktivitet, men Azure-regionen som är associerad med resursnyckeln stöder inte neurala röster. Se neurala röster och standardröster.

Om åtgärderna i tabellen inte åtgärdar problemet kan du läsa Röstassistenter: Vanliga frågor och svar. Om du fortfarande inte kan lösa problemet när du har följt alla steg i den här självstudien anger du ett nytt problem på GitHub-sidan för röstassistenten.

En anteckning om tidsgränsen för anslutning

Om du är ansluten till en robot och ingen aktivitet har inträffat under de senaste fem minuterna stänger tjänsten automatiskt anslutningen till webbsocketen med klienten och med roboten. Det här är avsiktligt. Ett meddelande visas i det nedre fältet: "Tidsgränsen för aktiv anslutning har överskridits men är redo att återansluta på begäran."

Du behöver inte välja knappen Återanslut . Tryck på mikrofonknappen och börja prata, ange ett sms eller säg nyckelordet (om ett är aktiverat). Anslutningen återupprättas automatiskt.

Visa robotaktiviteter

Varje robot skickar och tar emot aktivitetsmeddelanden. I fönstret Aktivitetslogg i Windows Röstassistentklient visar tidsstämplade loggar varje aktivitet som klienten har tagit emot från roboten. Du kan också se de aktiviteter som klienten skickade till roboten med hjälp av metoden DialogServiceConnector.SendActivityAsync . När du väljer ett loggobjekt visas information om den associerade aktiviteten som JSON.

Här är JSON-exempel på en aktivitet som klienten tog emot:

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

Mer information om vad som returneras i JSON-utdata finns i fälten i aktiviteten. I den här självstudien kan du fokusera på text- och talarfälten.

Visa klientkällkoden för anrop till Speech SDK

Windows Voice Assistant-klienten använder NuGet-paketet Microsoft.CognitiveServices.Speech, som innehåller Speech SDK. Ett bra ställe att börja granska exempelkoden är metoden InitSpeechConnector() i filen VoiceAssistantClient\MainWindow.xaml.cs, som skapar dessa två Speech SDK-objekt:

  • DialogServiceConfig: För konfigurationsinställningar som resursnyckel och dess region.
  • DialogServiceConnector: Hantera kanalanslutnings- och klientprenumerationshändelser för hantering av identifierade tal- och robotsvar.

Lägga till anpassad nyckelordsaktivering

Speech SDK stöder anpassad nyckelordsaktivering. På samma sätt som "Hey Cortana" för en Microsoft-assistent kan du skriva en app som kontinuerligt lyssnar efter ett valfritt nyckelord. Tänk på att ett nyckelord kan vara ett ord eller en fras med flera ord.

Kommentar

Termen nyckelord används ofta omväxlande med termen wake word. Du kan se båda som används i Microsoft-dokumentationen.

Nyckelordsidentifiering sker i klientappen. Om du använder ett nyckelord strömmas ljud endast till Direct Line Speech-kanalen om nyckelordet identifieras. Direct Line Speech-kanalen innehåller en komponent som kallas nyckelordsverifiering, vilket gör mer komplex bearbetning i molnet för att verifiera att nyckelordet du valde är i början av ljudströmmen. Om nyckelordsverifieringen lyckas kommunicerar kanalen med roboten.

Följ de här stegen för att skapa en nyckelordsmodell, konfigurera Windows Voice Assistant-klienten så att den använder den här modellen och testa den med din robot:

  1. Skapa ett anpassat nyckelord med hjälp av Speech-tjänsten.
  2. Packa upp modellfilen som du laddade ned i föregående steg. Det bör namnges för ditt nyckelord. Du letar efter en fil med namnet kws.table.
  3. I Windows Voice Assistant-klienten hittar du menyn Inställningar (kugghjulsikonen längst upp till höger). För Modellfilsökväg anger du det fullständiga sökvägsnamnet för filen kws.table från steg 2.
  4. Markera kryssrutan Aktiverad. Du bör se det här meddelandet bredvid kryssrutan: "Kommer att lyssna efter nyckelordet vid nästa anslutning." Om du angav fel fil eller en ogiltig sökväg bör du se ett felmeddelande.
  5. Ange värdena för Prenumerationsnyckel och Prenumerationsnyckelregion och välj sedan OK för att stänga menyn Inställningar .
  6. Välj Återanslut. Du bör se ett meddelande med texten: "Ny konversation har startats – skriv, tryck på mikrofonknappen eller säg nyckelordet." Appen lyssnar nu kontinuerligt.
  7. Tala om valfri fras som börjar med nyckelordet. Till exempel: "{ditt nyckelord}, vilken tid är det?" Du behöver inte pausa när du har yttrat nyckelordet. När du är klar händer två saker:
    • Du ser en transkription av det du talade.
    • Du hör robotens svar.
  8. Fortsätt att experimentera med de tre indatatyperna som din robot stöder:
    • Ange text i det nedre fältet
    • Trycka på mikrofonikonen och tala
    • Säga en fras som börjar med nyckelordet

Visa källkoden som aktiverar nyckelordsidentifiering

I källkoden för Windows Voice Assistant-klienten använder du dessa filer för att granska koden som möjliggör nyckelordsidentifiering:

Valfritt: Ändra språk och robotröst

Roboten som du skapade lyssnar efter och svarar på engelska, med en standardtext till talröst i USA. Du är dock inte begränsad till att använda engelska eller en standardröst.

I det här avsnittet får du lära dig hur du ändrar språket som roboten lyssnar efter och svarar på. Du får också lära dig hur du väljer en annan röst för det språket.

Ändra språk

Du kan välja mellan något av de språk som nämns i tal-till-text-tabellen . I följande exempel ändras språket till tyska.

  1. Öppna Windows Voice Assistant-klientappen , välj knappen Inställningar (kugghjulsikonen uppe till höger) och ange de-de i fältet Språk . Det här är språkvärdet som nämns i tal till text-tabellen .

    Det här steget anger att det talade språket ska identifieras, vilket överskrider standardvärdet en-us. Den instruerar också Direct Line Speech-kanalen att använda en standard tysk röst för robotsvaret.

  2. Stäng sidan Inställningar och välj sedan knappen Återanslut för att upprätta en ny anslutning till ekoroboten.

  3. Välj mikrofonknappen och säg en fras på tyska. Den igenkända texten visas och ekoroboten svarar med den tyska standardrösten.

Ändra standardrobotens röst

Du kan välja uttalet text till tal och kontroll om roboten anger svaret i form av ett Talsyntesmarkeringsspråk (SSML) i stället för enkel text. Ekoroboten använder inte SSML, men du kan enkelt ändra koden för att göra det.

I följande exempel läggs SSML till i ekorobotsvaret så att den tyska rösten de-DE-RalfNeural (en manlig röst) används i stället för den kvinnliga standardrösten. Se listan med standardröster och en lista över neurala röster som stöds för ditt språk.

  1. Öppna samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs.

  2. Hitta följande rader:

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

    Ersätt dem med den här koden:

    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. Skapa din lösning i Visual Studio och åtgärda eventuella byggfel.

Det andra argumentet i metoden MessageFactory.Text anger aktivitetsläsfältet i robotsvaret. Med föregående ändring ersätts den från enkel text till SSML för att ange en tysk röst som inte är standard.

Distribuera om roboten

Nu när du har gjort den nödvändiga ändringen av roboten är nästa steg att publicera om den till Azure App Service och testa den:

  1. I fönstret Istraživač rešenja högerklickar du på EchoBot-projektet och väljer Publicera.

  2. Din tidigare distributionskonfiguration har redan lästs in som standard. Välj Publicera bredvid EchoBot20190805125647 – Webbdistribution.

    Meddelandet Publicera lyckades visas i Visual Studio-utdatafönstret och en webbsida öppnas med meddelandet "Din robot är klar!"

  3. Öppna Windows Voice Assistant-klientappen. Välj knappen Inställningar (kugghjulsikonen uppe till höger) och kontrollera att du fortfarande har de-de i fältet Språk.

  4. Följ anvisningarna i Kör Windows Voice Assistant-klienten för att återansluta till din nyligen distribuerade robot, tala på det nya språket och höra roboten svara på det språket med den nya rösten.

Rensa resurser

Om du inte ska fortsätta använda ekoroboten som distribueras i den här självstudien kan du ta bort den och alla dess associerade Azure-resurser genom att ta bort Azure-resursgruppen:

  1. I Azure-portalen väljer du Resursgrupper under Azure-tjänster.
  2. Leta upp resursgruppen SpeechEchoBotTutorial-ResourceGroup . Välj de tre punkterna (...).
  3. Välj Ta bort resursgrupp.

Titta närmare på dokumentationen

Nästa steg