Zelfstudie: Uw bot spraak inschakelen met behulp van de Speech SDK

U kunt de Speech-service in Azure Cognitive Services om spraak in te stellen voor een chatbot.

In deze zelfstudie gebruikt u de Microsoft Bot Framework om een bot te maken die herhaalt wat u er tegen zegt. U implementeert uw bot in Azure en registreert deze bij het Bot Framework Direct Line Speech kanaal. Vervolgens configureert u een voorbeeldclient-app voor Windows waarmee u met uw bot kunt praten en hoort dat deze met u praat.

Deze zelfstudie is ontworpen voor ontwikkelaars die nieuw zijn in Azure, Bot Framework bots, Direct Line Speech of de Speech SDK en die snel een werkend systeem willen bouwen met beperkte codering. U hebt geen ervaring met of kennis van deze services nodig.

De chatbot met spraakfunctie die u in deze zelfstudie maakt, volgt deze stappen:

  1. De voorbeeldclienttoepassing is geconfigureerd om verbinding te maken met Direct Line Speech-kanaal en de echobot.
  2. Wanneer de gebruiker op een knop drukt, wordt audio van de microfoon gestreamd. Of audio wordt continu vastgelegd wanneer een aangepast trefwoord wordt gebruikt.
  3. Als er een aangepast trefwoord wordt gebruikt, vindt trefwoorddetectie plaats op het lokale apparaat, wat het streamen van audio naar de cloud begrenst.
  4. Met behulp van de Speech SDK maakt de voorbeeldclienttoepassing verbinding met Direct Line Speech kanaal en streamt audio.
  5. Verificatie van trefwoorden met een hogere nauwkeurigheid vindt optioneel plaats in de service.
  6. De audio wordt doorgegeven aan de spraakherkenningsservice en naar tekst geschreven.
  7. De herkende tekst wordt doorgegeven aan de echobot als een Bot Framework activiteit.
  8. De antwoordtekst wordt door de text-to-speech-service omgezet in audio en teruggestreamd naar de clienttoepassing voor afspelen.

Diagram met de stroom van het Direct Line Speech kanaal.

Notitie

Voor de stappen in deze zelfstudie is geen betaalde service vereist. Als nieuwe Azure-gebruiker kunt u tegoeden van uw gratis Proefabonnement op Azure en de gratis laag van de Speech-service gebruiken om deze zelfstudie te voltooien.

Deze zelfstudie bevat de volgende onderwerpen:

  • Nieuwe Azure-resources maken.
  • Bouw, test en implementeer het voorbeeld van de echobot in Azure App Service.
  • Registreer uw bot bij een Direct Line Speech kanaal.
  • Bouw en voer de Windows Spraakassistent-client uit om te communiceren met uw echobot.
  • Aangepaste activering van trefwoord toevoegen.
  • Meer informatie over het wijzigen van de taal van de herkende en gesproken spraak.

Vereisten

Dit is wat u nodig hebt om deze zelfstudie te voltooien:

Een resourcegroep maken

De client-app die u in deze zelfstudie maakt, maakt gebruik van een aantal Azure-services. Als u de retourtijd voor reacties van uw bot wilt verminderen, moet u ervoor zorgen dat deze services zich in dezelfde Azure-regio hebben.

In deze sectie vindt u informatie over het maken van een resourcegroep in de regio VS - west. U gebruikt deze resourcegroep wanneer u afzonderlijke resources maakt voor de Bot Framework, het Direct Line Speech-kanaal en de Speech-service.

  1. Ga naar de Azure Portal voor het maken van een resourcegroep.
  2. Geef de volgende informatie op:
    • Stel Abonnement in op Gratis proefversie. (U kunt ook een bestaand abonnement gebruiken.)
    • Voer een naam in voor Resourcegroep. We raden SpeechEchoBotTutorial-ResourceGroup aan.
    • Selecteer in de vervolgkeuzelijst Regio de optie VS - west.
  3. Selecteer Controleren en maken. Als het goed is, ziet u een banner met de tekst Validatie geslaagd.
  4. Selecteer Maken. Het kan enkele minuten duren om de resourcegroep te maken.
  5. Net als bij de resources die u later in deze zelfstudie gaat maken, is het een goed idee om deze resourcegroep vast te maken aan uw dashboard voor eenvoudige toegang. Als u deze resourcegroep wilt vastmaken, selecteert u het speldpictogram naast de naam.

Een Azure-regio kiezen

Als u voor deze zelfstudie een andere regio wilt gebruiken, kunnen deze factoren uw keuzes beperken:

Zie Azure-locaties voor meer informatie over regio's.

Resources maken

Nu u een resourcegroep in een ondersteunde regio hebt, bestaat de volgende stap uit het maken van afzonderlijke resources voor elke service die u in deze zelfstudie gaat gebruiken.

Een Spraak-serviceresource maken

  1. Ga naar de Azure Portal voor het maken van een Speech-serviceresource.
  2. Geef de volgende informatie op:
    • Bij Naamraden we SpeechEchoBotTutorial-Speech aan als de naam van uw resource.
    • Zorg ervoor datbij Abonnement de optie Gratis proefversie is geselecteerd.
    • Bij Locatieselecteert u VS - west.
    • Selecteer F0bij Prijscategorie. Dit is de gratis laag.
    • Bij Resourcegroepselecteert u SpeechEchoBotTutorial-ResourceGroup.
  3. Nadat u alle vereiste gegevens hebt ingevoerd, selecteert u Maken. Het kan enkele minuten duren om de resource te maken.
  4. Verder in deze zelfstudie hebt u abonnementssleutels nodig voor deze service. U hebt op elk moment toegang tot deze sleutels vanuit het gebied Overzicht van uw resource (onder Sleutelsbeheren) of het gebied Sleutels.

Controleer nu of uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup)een Speech-serviceresource heeft:

Naam Type Locatie
SpeechEchoBotTutorial-Speech Cognitive Services VS - west

Een Azure App Service-plan maken

Een App Service-plan definieert een set rekenresources waarmee een web-app kan worden uitgevoerd.

  1. Ga naar de Azure Portal voor het maken van een Azure App Service abonnement.
  2. Geef de volgende informatie op:
    • Stel Abonnement in op Gratis proefversie. (U kunt ook een bestaand abonnement gebruiken.)
    • Bij Resourcegroepselecteert u SpeechEchoBotTutorial-ResourceGroup.
    • Bij Naamraden we SpeechEchoBotTutorial-AppServicePlan aan als de naam van uw plan.
    • Selecteer bij Besturingssysteemde optie Windows.
    • Bij Regioselecteert u VS - west.
    • Zorg ervoor dat standardS1 is geselecteerd voor Prijscategorie. Dit moet de standaardwaarde zijn. Als dat niet het zo is, stelt u Besturingssysteem inop Windows.
  3. Selecteer Controleren en maken. Als het goed is, ziet u een banner met de tekst Validatie geslaagd.
  4. Selecteer Maken. Het kan enkele minuten duren om de resource te maken.

Controleer nu of uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup) twee resources heeft:

Naam Type Locatie
SpeechEchoBotTutorial-AppServicePlan App Service-plan VS - west
SpeechEchoBotTutorial-Speech Cognitive Services VS - west

Een echobot bouwen

Nu u resources hebt gemaakt, gaan we een bot bouwen. We beginnen met het voorbeeld van de echobot, die (zoals de naam al aangeeft) de tekst echot die u hebt ingevoerd als antwoord. Geen zorgen, de voorbeeldcode is klaar voor gebruik zonder wijzigingen. Deze is geconfigureerd om te werken met het Direct Line Speech-kanaal, dat u verbindt nadat u de bot in Azure hebt geïmplementeerd.

Notitie

De volgende instructies, samen met meer informatie over de echobot, zijn beschikbaar in de LEESMIJvan het voorbeeld op GitHub.

Het botvoorbeeld uitvoeren op uw computer

  1. Kloon de opslagplaats met voorbeelden:

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

  3. Selecteer in de werkbalk BestandOpenProject/Solution. Open vervolgens de projectoplossing:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. Nadat het project is geladen, selecteert u de toets F5 om het project te bouwen en uit te voeren.

    In de browser die wordt geopend, ziet u een scherm dat vergelijkbaar is met dit scherm:

    Schermopname van de pagina EchoBot met het bericht dat uw bot gereed is.

Test het botvoorbeeld met de Bot Framework Emulator

De Bot Framework Emulator is een desktop-app waarmee botontwikkelaars hun bots lokaal (of extern via een tunnel) kunnen testen en er fouten in kunnen opsporen. De emulator accepteert getypte tekst als invoer (niet als spraak). De bot reageert ook met tekst.

Volg deze stappen om de Bot Framework Emulator om uw echobot lokaal uit te voeren, met tekstinvoer en tekstuitvoer. Nadat u de bot in Azure hebt geïmplementeerd, test u deze met spraakinvoer en spraakuitvoer.

  1. Installeer Bot Framework Emulator versie 4.3.0 of hoger.

  2. Open de Bot Framework Emulator en selecteer bestand Bot openen.

  3. Voer de URL voor uw bot in. Bijvoorbeeld:

    http://localhost:3978/api/messages
    

    Selecteer vervolgens Connect.

  4. De bot zou u moeten begroeten met het bericht 'Hallo en welkom!'. Typ een tekstbericht en bevestig dat u een reactie van de bot krijgt.

    Zo kan een communicatie-uitwisseling met een echobot eruit zien: Schermopname van de Bot Framework Emulator.

Uw bot implementeren in Azure App Service

De volgende stap is het implementeren van de echobot in Azure. Er zijn een aantal manieren om een bot te implementeren, waaronder de Azure CLI enimplementatiesjablonen. Deze zelfstudie is gericht op het rechtstreeks publiceren vanuit Visual Studio.

Notitie

Als Publiceren niet wordt weergegeven tijdens het uitvoeren van de volgende stappen, gebruikt u Visual Studio Installer om de workload ASP.NET webontwikkeling toe te voegen.

  1. Open Visual Studio echobot die is geconfigureerd voor gebruik met het Direct Line Speech kanaal:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. Klik Solution Explorer met de rechtermuisknop op het project EchoBot en selecteer Publiceren.

  3. In het venster Publiceren dat wordt geopend:

    1. Selecteer VolgendeinAzure.
    2. Selecteer Azure App Service (Windows)Volgende.
    3. Selecteer Een nieuwe Azure App Service met het groene plusteken.
  4. Wanneer het App Service (Windows) wordt weergegeven:

    • Selecteer Een account toevoegenen meld u aan met de referenties van uw Azure-account. Als u al bent aangemeld, selecteert u uw account in de vervolgkeuzelijst.

    • Voer bijNaam een wereldwijd unieke naam in voor uw bot. Deze naam wordt gebruikt om een unieke bot-URL te maken.

      Er wordt een standaardnaam met de datum en tijd weergegeven in het vak (bijvoorbeeld EchoBot20190805125647). U kunt de standaardnaam voor deze zelfstudie gebruiken.

    • Selecteer bij Abonnementde optie Gratis proefversie.

    • Bij Resourcegroepselecteert u SpeechEchoBotTutorial-ResourceGroup.

    • Bij Hostingplanselecteert u SpeechEchoBotTutorial-AppServicePlan.

  5. Selecteer Maken. Selecteer in het laatste scherm van de wizard Voltooien.

  6. Selecteer Publiceren. Visual Studio implementeert de bot in Azure.

    In het uitvoervenster van de Visual Studio wordt een succesbericht weergegeven dat er als het volgende uitziet:

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

    Uw standaardbrowser wordt geopend en er wordt een pagina weergegeven met de tekst 'Uw bot is gereed!'

Controleer nu uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup) in de Azure Portal. Controleer of deze de volgende drie resources bevat:

Naam Type Locatie
EchoBot20190805125647 App Service VS - west
SpeechEchoBotTutorial-AppServicePlan App Service-plan VS - west
SpeechEchoBotTutorial-Speech Cognitive Services VS - west

Websockockers inschakelen

U moet een kleine configuratiewijziging maken, zodat uw bot met het Direct Line Speech kan communiceren met behulp van websockers. Volg deze stappen om websockers in teschakelen:

  1. Ga naar de Azure Portalen selecteer uw App Service resource. De resourcenaam moet vergelijkbaar zijn met EchoBot20190805125647 (uw unieke app-naam).
  2. Selecteer in het linkerdeelvenster onder Instellingende optie Configuratie.
  3. Selecteer het tabblad Algemene instellingen.
  4. Zoek de schakelknop voor websockets en stel deze in op Aan.
  5. Selecteer Opslaan.

Tip

U kunt de besturingselementen boven aan de pagina Azure App Service de service te stoppen of opnieuw te starten. Deze mogelijkheid kan handig zijn bij het oplossen van problemen.

Een kanaalregistratie maken

Nu u een resource voor het hosten Azure App Service bot hebt gemaakt, bestaat de volgende stap uit het maken van een kanaalregistratie. Het maken van een kanaalregistratie is een vereiste voor het registreren van uw bot bij Bot Framework-kanalen, met inbegrip van Direct Line Speech kanaal. Als u meer wilt weten over hoe bots kanalen gebruiken, zie een bot Verbinding maken kanalen te gebruiken.

  1. Ga naar de Azure Portal voor het maken van een Azure-bot.
  2. Geef de volgende informatie op:
    • Voer voor Bot-handleSpeechEchoBotTutorial-BotRegistration-#### in. Vervang #### door een nummer van uw keuze.

      Notitie

      De bot-handle moet wereldwijd uniek zijn. Als u er een optelt en het foutbericht 'De aangevraagde bot-id is niet beschikbaar' wordt weergegeven, kiest u een ander nummer. In de volgende voorbeelden wordt 8726 gebruikt.

    • Selecteer bij Abonnementde optie Gratis proefversie.

    • Bij Resourcegroepselecteert u SpeechEchoBotTutorial-ResourceGroup.

    • Bij Locatieselecteert u VS - west.

    • Selecteer F0bij Prijscategorie.

    • Negeer app-id en wachtwoord voor automatisch maken.

  3. Selecteer aan de onderkant van het deelvenster Azure-bot de optie Maken.
  4. Nadat u de resource hebt gemaakt, opent u de resource SpeechEchoBotTutorial-BotRegistration-#### in de Azure Portal.
  5. Selecteer in Instellingen het gebied Configuratie.
  6. Voer bij Berichteindpuntde URL voor uw web-app in, met het pad /api/messages toegevoegd. Als uw wereldwijd unieke app-naam bijvoorbeeld EchoBot20190805125647is, is uw berichteindpunt .

Controleer nu uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup) in de Azure Portal. Er moeten nu ten minste vier resources worden weer geven:

Naam Type Locatie
EchoBot20190805125647 App Service VS - west
SpeechEchoBotTutorial-AppServicePlan App Service-plan VS - west
SpeechEchoBotTutorial-BotRegistration-8726 Bot-service Globaal
SpeechEchoBotTutorial-Speech Cognitive Services VS - west

Belangrijk

De Azure Bot Service resource toont de globale regio, ook al hebt u VS - west geselecteerd. Dit is normaal.

Optioneel: Testen in webchat

Op de pagina Azure-bot staat de optie Testen in Webchat onder Instellingen. Het werkt niet standaard met uw bot omdat de webchat moet worden geverifieerd bij uw bot.

Als u uw geïmplementeerde bot wilt testen met tekstinvoer, gebruikt u de volgende stappen. Houd er rekening mee dat deze stappen optioneel zijn en niet vereist zijn om door te gaan met de zelfstudie.

  1. Zoek in Azure Portalde resource EchoBotTutorial-BotRegistration-#### en open deze.

  2. Selecteer in Instellingen het gebied Configuratie. Kopieer de waarde onder Microsoft App ID.

  3. Open de Visual Studio EchoBot-oplossing. Zoek Solution Explorer appsettings.jsonen dubbelklik erop.

  4. Vervang de lege tekenreeks naast MicrosoftAppId in het JSON-bestand door de gekopieerde id-waarde.

  5. Ga terug naar Azure Portal. Selecteer in Instellingen het gebied Configuratie. Selecteer vervolgens Beheren naast Microsoft App ID.

  6. Selecteer Nieuw clientgeheim. Voeg een beschrijving toe (bijvoorbeeld webchat)en selecteer Toevoegen. Kopieer het nieuwe geheim.

  7. Vervang de lege tekenreeks naast MicrosoftAppPassword in het JSON-bestand door de gekopieerde geheime waarde.

  8. Sla het JSON-bestand op. Deze ziet er als de volgende code uit:

    {
      "MicrosoftAppId": "3be0abc2-ca07-475e-b6c3-90c4476c4370",
      "MicrosoftAppPassword": "-zRhJZ~1cnc7ZIlj4Qozs_eKN.8Cq~U38G"
    }
    
  9. De app opnieuw publiceren: klik met de rechtermuisknop op het project EchoBot in Visual Studio Solution Explorer, selecteer Publicerenen selecteer vervolgens de knop Publiceren.

Het kanaal Direct Line Speech registreren

Nu is het tijd om uw bot te registreren bij het Direct Line Speech kanaal. Dit kanaal maakt een verbinding tussen uw bot en een client-app die is gecompileerd met de Speech SDK.

  1. Zoek in Azure Portalde resource SpeechEchoBotTutorial-BotRegistration-#### en open deze.

  2. Selecteer in Instellingen het gebied Kanalen en volg de volgende stappen:

    1. Selecteer onder Meer kanalende optie Direct Line Speech.
    2. Controleer de tekst op de pagina Direct line Speech configureren en vouw vervolgens de vervolgkeuzelijst Cognitive Service-account uit.
    3. Selecteer de Speech-serviceresource die u eerder hebt gemaakt (bijvoorbeeld SpeechEchoBotTutorial-Speech) in het menu om uw bot te koppelen aan uw abonnementssleutel.
    4. Negeer de rest van de optionele velden.
    5. Selecteer Opslaan.
  3. Selecteer in Instellingen het gebied Configuratie en volg de volgende stappen:

    1. Schakel het selectievakje Streaming-eindpunt inschakelen in. Deze stap is nodig voor het maken van een communicatieprotocol dat is gebouwd op websockers tussen uw bot en het Direct Line Speech kanaal.
    2. Selecteer Opslaan.

Als u meer wilt weten, zie een bot Verbinding maken om te Direct Line Speech.

Voer de Windows Voice Assistant-client uit

De Windows Voice Assistant-client is een Windows Presentation Foundation-app (WPF) in C# die gebruikmaakt van de Speech SDK voor het beheren van de communicatie met uw bot via het Direct Line Speech-kanaal. Gebruik deze om te communiceren met en uw bot te testen voordat u een aangepaste client-app schrijft. Het is open source, zodat u het uitvoerbare bestand kunt downloaden en uitvoeren of het zelf kunt bouwen.

De Windows Voice Assistant-client heeft een eenvoudige gebruikersinterface waarmee u de verbinding met uw bot kunt configureren, het tekstgesprek kunt bekijken, Bot Framework-activiteiten in JSON-indeling kunt bekijken en adaptieve kaarten kunt weergeven. Het ondersteunt ook het gebruik van aangepaste trefwoorden. U gebruikt deze client om met uw bot te spreken en een stemreactie te ontvangen.

Notitie

Controleer nu of uw microfoon en sprekers zijn ingeschakeld en werken.

  1. Ga naar de GitHub voor de Windows Voice Assistant-client.

  2. Volg de opgegeven instructies voor een van de volgende:

    • Een vooraf gebouwd uitvoerbaar bestand downloaden in een .zip uit te voeren
    • Bouw het uitvoerbare bestand zelf door de opslagplaats te klonen en het project te bouwen
  3. Open deVoiceAssistantClient.exe-clienttoepassing en configureer deze om verbinding te maken met uw bot door de instructies te volgen in de GitHub opslagplaats.

  4. Selecteer Opnieuw verbinding maken en zorg ervoor dat het bericht 'Nieuw gesprek gestart - typ of druk op de microfoonknop' wordt weergegeven.

  5. Laten we het testen. Selecteer de microfoonknop en spreek enkele woorden in het Engels. De herkende tekst wordt weergegeven terwijl u spreekt. Wanneer u klaar bent met spreken, reageert de bot met een eigen stem, met 'echo' gevolgd door de herkende woorden.

    U kunt ook tekst gebruiken om te communiceren met de bot. Typ de tekst op de onderste balk.

Fouten in de Windows Voice Assistant-client oplossen

Als er een foutbericht wordt weergegeven in het hoofdvenster van de app, gebruikt u deze tabel om het probleem te identificeren en op te lossen:

Bericht Wat moet u doen?
Fout (AuthenticationFailure) : WebSocket Upgrade is mislukt met een verificatiefout (401). Controleren op de juiste abonnementssleutel (of autorisatie-token) en regionaam Op de Instellingen van de app moet u ervoor zorgen dat u de abonnementssleutel en de regio ervan correct hebt ingevoerd.
Fout (ConnectionFailure) : De verbinding is gesloten door de externe host. Foutcode: 1011. Foutdetails: Er kan geen verbinding worden gemaakt met de bot voordat een bericht wordt verzonden Zorg ervoor dat u het selectievakje Streaming-eindpunt inschakelen hebt ingeschakeld en/of websockers hebt ingeschakeld.
Zorg ervoor dat Azure App Service wordt uitgevoerd. Als dat het zo is, start u deze opnieuw op.
Fout (ConnectionFailure) : De verbinding is gesloten door de externe host. Foutcode: 1002. Foutdetails: De server heeft statuscode '503' geretourneerd toen statuscode '101' werd verwacht Zorg ervoor dat u het selectievakje Streaming-eindpunt inschakelen hebt ingeschakeld en/of websockers hebt ingeschakeld.
Zorg ervoor dat Azure App Service wordt uitgevoerd. Als dat het zo is, start u deze opnieuw op.
Fout (ConnectionFailure) : De verbinding is gesloten door de externe host. Foutcode: 1011. Foutdetails: Antwoordstatuscode geeft geen succes aan: 500 (InternalServerError) Uw bot heeft een neurale stem opgegeven in het veld Spreken van de uitvoeractiviteit, maar de Azure-regio die is gekoppeld aan uw abonnementssleutel biedt geen ondersteuning voor neurale stemmen. Zie neurale stemmen en standaardstemmen.

Zie Spraakassistenten:veelgestelde vragen als de acties in de tabel uw probleem niet oplossen. Als u het probleem nog steeds niet kunt oplossen nadat u alle stappen in deze zelfstudie hebt doorlopen, voert u een nieuw probleem in op de GitHub spraakassistent.

Een opmerking over de time-out van de verbinding

Als u bent verbonden met een bot en er in de afgelopen vijf minuten geen activiteit is gebeurd, sluit de service automatisch de websockeverbinding met de client en met de bot. Dit is standaard. Er wordt een bericht weergegeven op de onderste balk: 'Er is een time-out voor de actieve verbinding gemaakt, maar u kunt op aanvraag opnieuw verbinding maken'.

U hoeft de knop Opnieuw verbinden niet te selecteren. Druk op de microfoonknop en begin met praten, voer een tekstbericht in of zeg het trefwoord (als er een is ingeschakeld). De verbinding wordt automatisch opnieuw tot stand brengen.

Bot-activiteiten weergeven

Elke bot verzendt en ontvangt activiteitsberichten. In het venster Activiteitenlogboek van de Windows Voice Assistant-client tonen tijdstempellogboeken elke activiteit die de client van de bot heeft ontvangen. U kunt ook de activiteiten zien die de client naar de bot heeft verzonden met behulp van de methode DialogServiceConnector.SendActivityAsync. Wanneer u een logboekitem selecteert, worden de details van de gekoppelde activiteit als JSON weer geven.

Hier is een voorbeeld-JSON van een activiteit die de client heeft ontvangen:

{
    "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='Microsoft Server Speech Text to Speech Voice (en-US, AriaRUS)'>Echo: Hello and welcome.</voice></speak>",
    "text":"Echo: Hello and welcome.",
    "timestamp":"2019-07-19T20:03:51.1939097Z",
    "type":"message"
}

Zie de velden in de activiteit voor meer informatie over wat er wordt geretourneerd in de JSON-uitvoer. Voor deze zelfstudie kunt u zich richten op de tekst ende velden spreken.

Clientbroncode weergeven voor aanroepen naar de Speech SDK

De Windows Voice Assistant-client gebruikt het NuGet-pakket Microsoft.CognitiveServices.Speech,dat de Speech-SDK bevat. Een goede plaats om te beginnen met het controleren van de voorbeeldcode is de methode in het bestand InitSpeechConnector()InitSpeechConnector()waarmee deze twee Speech SDK-objecten worden gemaakt:

  • DialogServiceConfig:voor configuratie-instellingen zoals de abonnementssleutel en de regio.
  • DialogServiceConnector:voor het beheren van de gebeurtenissen voor kanaalverbindingen en clientabonnementen voor het verwerken van herkende spraak- en botreacties.

Aangepaste activeringstrefwoorden toevoegen

De Speech SDK ondersteunt aangepaste activering van trefwoorden. Net als 'Hey Cortana' voor de assistent van Microsoft kunt u een app schrijven die continu luistert naar een trefwoord van uw keuze. Houd er rekening mee dat een trefwoord één woord of een woordgroep met meerdere woorden kan zijn.

Notitie

De term trefwoord wordt vaak door elkaar gebruikt met de term wake word. Mogelijk ziet u dat beide worden gebruikt in microsoft-documentatie.

Trefwoorddetectie vindt plaats in de client-app. Als u een trefwoord gebruikt, wordt audio alleen naar Direct Line Speech kanaal gestreamd als het trefwoord wordt gedetecteerd. Het Direct Line Speech-kanaal bevat een onderdeel met de naam sleutelwoordverificatie, waarmee complexere verwerking in de cloud wordt uitgevoerd om te controleren of het trefwoord dat u hebt gekozen aan het begin van de audiostroom staat. Als trefwoordverificatie slaagt, communiceert het kanaal met de bot.

Volg deze stappen om een sleutelwoordmodel te maken, de Windows Voice Assistant-client te configureren om dit model te gebruiken en het te testen met uw bot:

  1. Maak een aangepast trefwoord met behulp van de Speech-service.
  2. Los het modelbestand uit dat u in de vorige stap hebt gedownload. Deze moet de naam hebben voor uw trefwoord. U zoekt een bestand met de naam kws.table.
  3. Zoek in Windows Spraakassistent-client het Instellingen menu (het tandwielpictogram in de rechterbovenhoek). Voer bij Modelbestandspadde volledige padnaam in voor het bestand kws.table uit stap 2.
  4. Schakel het selectievakje Ingeschakeld in. U ziet dit bericht naast het selectievakje: 'Luistert naar het trefwoord bij de volgende verbinding'. Als u het verkeerde bestand of een ongeldig pad hebt opgegeven, ziet u een foutbericht.
  5. Voer de waarden in voor Abonnementssleutelen Abonnementssleutelregioen selecteer vervolgens OK om het menu Instellingen sluiten.
  6. Selecteer Opnieuw verbinding maken. U ziet een bericht met de volgende tekst: 'Nieuw gesprek gestart- typ, druk op de microfoonknop of zeg het trefwoord'. De app luistert nu continu.
  7. Spreek elke woordgroep die begint met uw trefwoord. Bijvoorbeeld: '{uw trefwoord}, hoe laat is het?' U hoeft niet te onderbreken nadat u het trefwoord hebt uitgesproken. Wanneer u klaar bent, gebeuren er twee dingen:
    1. U ziet een transcriptie van wat u hebt gesproken.
    2. U hoort het antwoord van de bot.
  8. Ga door met experimenteren met de drie invoertypen die door uw bot worden ondersteund:
    • Tekst invoeren op de onderste balk
    • Het microfoonpictogram indrukken en spreken
    • Een woordgroep zeggen die begint met uw trefwoord

De broncode weergeven waarmee trefwoorddetectie wordt mogelijk

Gebruik in de broncode van de Windows Voice Assistant-client deze bestanden om de code te controleren waarmee trefwoorddetectie mogelijk is:

Optioneel: De taal en bot-stem wijzigen

De bot die u hebt gemaakt, luistert naar en reageert in het Engels, met een standaardtekst-naar-spraak-stem in de Verenigde Staten. U bent echter niet beperkt tot het gebruik van Engels of een standaardstem.

In deze sectie leert u hoe u de taal wijzigt waarin uw bot luistert en reageert. U leert ook hoe u een andere stem voor die taal selecteert.

De taal wijzigen

U kunt kiezen uit een van de talen die worden vermeld in de spraak-naar-tekst-tabel. In het volgende voorbeeld wordt de taal gewijzigd in Duits.

  1. Open de Windows Voice Assistant Client-app, selecteer de knop Instellingen (tandwielpictogram rechtsboven) en voer de-de-de in het veld Taal in. Dit is de waarde voor de taal die wordt vermeld in de spraak-naar-tekst-tabel.

    Met deze stap stelt u de gesproken taal in die moet worden herkend, wat de standaardtaal en-us overschrijven. Ook krijgt het kanaal de Direct Line Speech om een standaard Duitse stem te gebruiken voor het antwoord van de bot.

  2. Sluit de Instellingen en selecteer vervolgens de knop Opnieuw verbinding maken om een nieuwe verbinding met uw echobot tot stand te brengen.

  3. Selecteer de microfoonknop en zeg een woordgroep in het Duits. De herkende tekst wordt weergegeven en de echobot antwoordt met de standaardtaal Duits.

De standaardstem van de bot wijzigen

U kunt de uitspraak van tekst-naar-spraak en -controle selecteren als de bot het antwoord specificeert in de vorm van een Speech Synthesis Markup Language (SSML) in plaats van eenvoudige tekst. De echobot maakt geen gebruik van SSML, maar u kunt de code eenvoudig wijzigen om dat te doen.

In het volgende voorbeeld wordt SSML toegevoegd aan het antwoord van de echobot, zodat de Duitse stemProgramma's (een mannenstem) wordt gebruikt in plaats van de standaardstem van een vrouw. Bekijk de lijst met standaardstemmen en de lijst met neurale stemmen die worden ondersteund voor uw taal.

  1. Open samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs.

  2. Zoek deze regels:

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

    Vervang ze door deze code:

    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='Microsoft Server Speech Text to Speech Voice (de-DE, Stefan, Apollo)'>" +
                    $"{replyText}" + "</voice></speak>";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replySpeak), cancellationToken);
    
  3. Bouw uw oplossing in Visual Studio en los eventuele buildfouten op.

Met het tweede argument in de methode MessageFactory.Text stelt u het veld activiteit MessageFactory.Text in het botantwoord in. Met de voorgaande wijziging is deze vervangen van eenvoudige tekst naar SSML om een niet-standaard Duitse stem op te geven.

Uw bot opnieuwployeren

Nu u de benodigde wijziging in de bot hebt aangebracht, bestaat de volgende stap uit het opnieuw publiceren naar Azure App Service uit te proberen:

  1. Klik in Solution Explorer venster met de rechtermuisknop op het project EchoBot en selecteer Publiceren.

  2. Uw vorige implementatieconfiguratie is al als standaard geladen. Selecteer Publiceren naast EchoBot20190805125647 - Web Deploy.

    Het bericht Publiceren is geslaagd wordt weergegeven in Visual Studio uitvoervenster en er wordt een webpagina geopend met het bericht 'Uw bot is gereed!'

  3. Open de Windows Voice Assistant Client-app. Selecteer de Instellingen (tandwielpictogram rechtsboven) en zorg ervoor dat u de-de nog in het veld Taal hebt.

  4. Volg de instructies in De Windows Voice Assistant-client uitvoeren om opnieuw verbinding te maken met uw zojuist geïmplementeerde bot, in de nieuwe taal te spreken en te horen hoe uw bot in die taal reageert met de nieuwe stem.

Resources opschonen

Als u niet verder gaat met het gebruik van de echobot die in deze zelfstudie is geïmplementeerd, kunt u deze en alle bijbehorende Azure-resources verwijderen door de Azure-resourcegroep te verwijderen:

  1. Selecteer in Azure Portalresourcegroepen onderAzure-services.
  2. Zoek de resourcegroep SpeechEchoBotTutorial-ResourceGroup. Selecteer de drie punten (...).
  3. Selecteer Resourcegroep verwijderen.

Volgende stappen

Zie ook