Zelfstudie: Uw bot inschakelen met spraak

U kunt Azure AI Speech gebruiken om spraak in te schakelen voor een chatbot.

In deze zelfstudie gebruikt u Het Microsoft Bot Framework om een bot te maken die reageert op wat u 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 spreken en deze kunt horen spreken.

Voor het voltooien van de zelfstudie hebt u geen uitgebreide ervaring of bekendheid nodig met Azure, Bot Framework-bots of Direct Line Speech.

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

  1. De voorbeeldclienttoepassing is geconfigureerd om verbinding te maken met het Direct Line Speech-kanaal en de echobot.
  2. Wanneer de gebruiker op een knop drukt, worden audiostreams van de microfoon gestreamd. Of audio wordt continu opgenomen wanneer een aangepast trefwoord wordt gebruikt.
  3. Als een aangepast trefwoord wordt gebruikt, vindt de detectie van trefwoorden plaats op het lokale apparaat, waardoor audiostreaming naar de cloud wordt geslinkt.
  4. De voorbeeldclienttoepassing maakt gebruik van de Speech SDK om verbinding te maken met het Direct Line Speech-kanaal en audio te streamen.
  5. Optioneel vindt verificatie van trefwoorden met een hogere nauwkeurigheid plaats op de service.
  6. De audio wordt doorgegeven aan de spraakherkenningsservice en getranscribeerd naar tekst.
  7. De herkende tekst wordt als een Bot Framework-activiteit doorgegeven aan de echobot.
  8. De antwoordtekst wordt omgezet in audio door de tekst naar de spraakservice en wordt teruggestreamd naar de clienttoepassing voor afspelen.

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

Notitie

Voor de stappen in deze zelfstudie is geen betaalde service vereist. Als nieuwe Azure-gebruiker kunt u tegoeden van uw gratis Azure-proefabonnement 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 met een Direct Line Speech-kanaal.
  • Bouw en voer de Windows Voice Assistant-client uit om te communiceren met uw echobot.
  • Aangepaste trefwoordactivering toevoegen.
  • Leer hoe u de taal van de herkende en gesproken spraak kunt wijzigen.

Vereisten

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

Een brongroep maken

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

In deze sectie wordt uitgelegd hoe u een resourcegroep maakt in de regio VS - west. U gebruikt deze resourcegroep wanneer u afzonderlijke resources maakt voor het Bot Framework, het Direct Line Speech-kanaal en de Speech-service.

  1. Ga naar de azure-portalpagina voor het maken van een resourcegroep.
  2. Geef de volgende informatie op:
    • Abonnement instellen op gratis proefversie. (U kunt ook een bestaand abonnement gebruiken.)
    • Voer een naam in voor de resourcegroep. SpeechEchoBotTutorial-ResourceGroup wordt aangeraden.
    • Selecteer VS - west in het vervolgkeuzemenu Regio.
  3. Selecteer Controleren en maken. Als het goed is, ziet u een banner met de validatie die is geslaagd.
  4. Selecteer Maken. Het kan enkele minuten duren voordat de resourcegroep is gemaakt.
  5. Net als bij de resources die u verderop in deze zelfstudie maakt, 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

Zorg ervoor dat u een ondersteunde Azure-regio gebruikt. Het Direct Line Speech-kanaal maakt gebruik van de tekst naar spraakservice, met neurale en standaardstemmen. Neurale stemmen worden gebruikt in deze Azure-regio's en standaardstemmen (buiten gebruik stellen) worden gebruikt in deze Azure-regio's.

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

Resources maken

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

Een Spraak-serviceresource maken

  1. Ga naar de azure-portalpagina voor het maken van een Speech-serviceresource.
  2. Geef de volgende informatie op:
    • Voor Name raden we SpeechEchoBotTutorial-Speech aan als de naam van uw resource.
    • Voor Abonnement moet u ervoor zorgen dat de gratis proefversie is geselecteerd.
    • Selecteer VS - west voor Locatie.
    • Selecteer F0 voor prijscategorie. Dit is de gratis laag.
    • Selecteer SpeechEchoBotTutorial-ResourceGroup voor de resourcegroep.
  3. Nadat u alle vereiste gegevens hebt ingevoerd, selecteert u Maken. Het kan enkele minuten duren voordat de resource is gemaakt.
  4. Verderop in deze zelfstudie hebt u abonnementssleutels voor deze service nodig. U kunt deze sleutels op elk gewenst moment openen vanuit het gebied Overzicht van uw resource (onder Sleutels beheren) of het gebied Sleutels .

Controleer op dit moment of uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup) een Speech-serviceresource heeft:

Name Type Locatie
SpeechEchoBotTutorial-Speech Spraak 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-portalpagina voor het maken van een Azure-app Service-plan.
  2. Geef de volgende informatie op:
    • Abonnement instellen op gratis proefversie. (U kunt ook een bestaand abonnement gebruiken.)
    • Selecteer SpeechEchoBotTutorial-ResourceGroup voor de resourcegroep.
    • Voor Name raden we SpeechEchoBotTutorial-AppServicePlan aan als de naam van uw plan.
    • Voor het besturingssysteem selecteert u Windows.
    • Selecteer VS - west voor Regio.
    • Zorg ervoor dat Standard S1 is geselecteerd voor prijscategorie. Dit moet de standaardwaarde zijn. Als dat niet het is, stelt u het besturingssysteem in op Windows.
  3. Selecteer Controleren en maken. Als het goed is, ziet u een banner met de validatie die is geslaagd.
  4. Selecteer Maken. Het kan enkele minuten duren voordat de resource is gemaakt.

Controleer op dit moment of uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup) twee resources heeft:

Name Type Locatie
SpeechEchoBotTutorial-AppServicePlan App Service-plan VS - west
SpeechEchoBotTutorial-Speech Azure AI-services VS - west

Een echobot bouwen

Nu u resources hebt gemaakt, begint u met het voorbeeld van de echobot, die de tekst weergeeft die u als antwoord hebt ingevoerd. De voorbeeldcode is al geconfigureerd voor gebruik met het Direct Line Speech-kanaal, waarmee u verbinding maakt nadat u de bot in Azure hebt geïmplementeerd.

Notitie

De instructies die volgen, samen met meer informatie over de echobot, zijn beschikbaar in de README van 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 Bestand>>openen project/oplossing in de werkbalk. Open vervolgens de projectoplossing:

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

    In de browser die wordt geopend, ziet u een scherm dat lijkt op deze:

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

Het botvoorbeeld testen met de Bot Framework Emulator

Bot Framework Emulator is een bureaublad-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 (geen spraak). De bot reageert ook met tekst.

Volg deze stappen om de Bot Framework Emulator te gebruiken om uw echobot lokaal te testen, 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 Vervolgens File>Open Bot.

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

    http://localhost:3978/api/messages
    
  4. Selecteer Verbinding maken.

  5. De bot zou u moeten begroeten met een bericht 'Hallo en welkom!'. Typ een sms-bericht en bevestig dat u een antwoord van de bot krijgt.

    Dit is hoe een uitwisseling van communicatie met een echobot eruit kan zien: Screenshot shows the 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 en implementatiesjablonen. Deze zelfstudie is gericht op het rechtstreeks publiceren vanuit Visual Studio.

Notitie

Als Publiceren niet wordt weergegeven terwijl u de volgende stappen uitvoert, gebruikt u Visual Studio Installer om de workload ASP.NET en webontwikkeling toe te voegen.

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

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

  3. In het venster Publiceren dat wordt geopend:

    1. Selecteer Azure>Next.
    2. Selecteer Azure-app Service (Windows)>Next.
    3. Selecteer Een nieuwe Azure-app-service maken met het groene plusteken.
  4. Wanneer het Venster App Service (Windows) wordt weergegeven:

    • Selecteer Een account toevoegen en meld u aan met uw Azure-accountreferenties. Als u al bent aangemeld, selecteert u uw account in de vervolgkeuzelijst.

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

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

    • Selecteer voor Abonnement de optie Gratis proefversie.

    • Selecteer SpeechEchoBotTutorial-ResourceGroup voor resourcegroep voor resourcegroep.

    • Selecteer SpeechEchoBotTutorial-AppServicePlan voor hostingabonnement.

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

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

    Als het goed is, ziet u een bericht dat is geslaagd in het uitvoervenster van Visual Studio dat er als volgt uitziet:

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

    Uw standaardbrowser moet een pagina openen en weergeven met de tekst: 'Uw bot is gereed!'

Controleer op dit moment uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup) in Azure Portal. Controleer of deze drie resources bevat:

Name Type Locatie
EchoBot20190805125647 App Service VS - west
SpeechEchoBotTutorial-AppServicePlan App Service-plan VS - west
SpeechEchoBotTutorial-Speech Azure AI-services VS - west

Websockets inschakelen

U moet een kleine configuratiewijziging aanbrengen, zodat uw bot kan communiceren met het Direct Line Speech-kanaal met behulp van websockets. Volg deze stappen om websockets in te schakelen:

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

Tip

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

Een kanaalregistratie maken

Nadat u een Azure-app Service-resource hebt gemaakt om uw bot te hosten, is de volgende stap het maken van een kanaalregistratie. Het maken van een kanaalregistratie is een vereiste voor het registreren van uw bot bij Bot Framework-kanalen, waaronder het Direct Line Speech-kanaal. Als u meer wilt weten over hoe bots kanalen gebruiken, raadpleegt u Verbinding maken een bot naar kanalen.

  1. Ga naar de azure-portalpagina voor het maken van een Azure-bot.
  2. Geef de volgende informatie op:
    • Voer voor bot-ingang SpeechEchoBotTutorial-BotRegistration-#### in. Vervang #### door veel van uw keuze.

      Notitie

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

    • Selecteer voor Abonnement de optie Gratis proefversie.

    • Selecteer SpeechEchoBotTutorial-ResourceGroup voor de resourcegroep.

    • Selecteer VS - west voor Locatie.

    • Selecteer F0 voor prijscategorie.

    • Negeer de app-id en het wachtwoord voor automatisch maken.

  3. Selecteer Onder aan het deelvenster Azure Bot de optie Maken.
  4. Nadat u de resource hebt gemaakt, opent u uw SpeechEchoBotTutorial-BotRegistration-####- resource in Azure Portal.
  5. Selecteer Configuratie in het gebied Instellingen.
  6. Voer voor het berichteindpunt de URL voor uw web-app in met het pad /api/messages toegevoegd. Als uw wereldwijd unieke app-naam bijvoorbeeld EchoBot20190805125647 was, zou uw berichteindpunt zijnhttps://EchoBot20190805125647.azurewebsites.net/api/messages/.

Controleer op dit moment uw resourcegroep (SpeechEchoBotTutorial-ResourceGroup) in Azure Portal. Er moeten nu ten minste vier resources worden weergegeven:

Name Type Locatie
EchoBot20190805125647 App Service VS - west
SpeechEchoBotTutorial-AppServicePlan App Service-plan VS - west
SpeechEchoBotTutorial-BotRegistration-8726 Bot-service Globaal
SpeechEchoBotTutorial-Speech Azure AI-services VS - west

Belangrijk

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

Optioneel: Testen in webchat

De pagina Azure Bot bevat een optie Testen in Webchat onder Instellingen. Deze werkt niet standaard met uw bot, omdat de webchat moet worden geverifieerd bij uw bot.

Als u de geïmplementeerde bot wilt testen met tekstinvoer, gebruikt u de volgende stappen. Deze stappen zijn optioneel en zijn niet vereist om door te gaan met de zelfstudie.

  1. Zoek en open uw EchoBotTutorial-BotRegistration-####resource in Azure Portal.

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

  3. Open de Visual Studio EchoBot-oplossing. Zoek en dubbel selecteer appsettings.json in Solution Explorer.

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

  5. Ga terug naar Azure Portal. Selecteer Configuratie in het gebied Instellingen. 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 moet er ongeveer als volgt uitzien:

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. Publiceer de app opnieuw: klik met de rechtermuisknop op het EchoBot-project in Visual Studio Solution Explorer, selecteer Publiceren en selecteer vervolgens de knop Publiceren .

Het Direct Line Speech-kanaal registreren

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

  1. Zoek en open uw SpeechEchoBotTutorial-BotRegistration-####resource in Azure Portal.

  2. Selecteer kanalen in het gebied Instellingen en voer vervolgens de volgende stappen uit:

    1. Selecteer onder Meer kanalen Direct Line Speech.
    2. Controleer de tekst op de pagina Direct line Speech configureren en vouw vervolgens het vervolgkeuzemenu van het 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 Configuratie in het gebied Instellingen en voer vervolgens de volgende stappen uit:

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

Zie Verbinding maken een bot naar Direct Line Speech als u meer wilt weten.

De Windows Voice Assistant-client uitvoeren

De Windows Voice Assistant-client is een WPF-app (Windows Presentation Foundation) 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, dus u kunt het uitvoerbare bestand downloaden en uitvoeren of zelf 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 spraakantwoord te ontvangen.

Notitie

Controleer op dit moment of uw microfoon en luidsprekers zijn ingeschakeld en werken.

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

  2. Volg de opgegeven instructies voor:

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

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

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

    U kunt ook tekst gebruiken om met de bot te communiceren. 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 resourcesleutel (of autorisatietoken) en regionaam Controleer op de Instellingen pagina van de app of u de sleutel en de bijbehorende regio correct hebt ingevoerd.
Fout (Verbinding maken ionFailure): Verbinding maken ion 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 websockets hebt ingeschakeld.
Zorg ervoor dat Azure-app Service wordt uitgevoerd. Als dat zo is, start u het opnieuw.
Fout (Verbinding maken ionFailure): Verbinding maken ion is gesloten door de externe host. Foutcode: 1002. Foutdetails: De server heeft statuscode '503' geretourneerd wanneer statuscode '101' werd verwacht Zorg ervoor dat u het selectievakje Streaming-eindpunt inschakelen hebt ingeschakeld en/of websockets hebt ingeschakeld.
Zorg ervoor dat Azure-app Service wordt uitgevoerd. Als dat zo is, start u het opnieuw.
Fout (Verbinding maken ionFailure): Verbinding maken ion is gesloten door de externe host. Foutcode: 1011. Foutdetails: Antwoordstatuscode geeft niet aan dat het is gelukt: 500 (InternalServerError) Uw bot heeft een neurale stem opgegeven in het spreekveld van de uitvoeractiviteit, maar de Azure-regio die is gekoppeld aan uw resourcesleutel biedt geen ondersteuning voor neurale stemmen. Zie neurale stemmen en standaardstemmen.

Als de acties in de tabel uw probleem niet oplossen, raadpleegt u Spraakassistenten: Veelgestelde vragen. Als u het probleem nog steeds niet kunt oplossen nadat u alle stappen in deze zelfstudie hebt uitgevoerd, voert u een nieuw probleem in op de GitHub-pagina van Voice Assistant.

Een opmerking over verbindingstime-out

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

U hoeft de knop Opnieuw verbinden niet te selecteren. Druk op de microfoonknop en begin te praten, voer een sms-bericht in of zeg het trefwoord (indien ingeschakeld). De verbinding wordt automatisch hersteld.

Botactiviteiten weergeven

Elke bot verzendt en ontvangt activiteitsberichten. In het venster Activiteitenlogboek van de Windows Voice Assistant-client worden in tijdstempellogboeken elke activiteit weergegeven 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 DialogService Verbinding maken or. Methode SendActivityAsync. Wanneer u een logboekitem selecteert, worden de details van de gekoppelde activiteit weergegeven als JSON.

Hier volgt 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='en-US-JennyNeural'>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 wordt geretourneerd in de JSON-uitvoer. Voor deze zelfstudie kunt u zich richten op de tekst en het uitspreken van velden.

Clientbroncode weergeven voor aanroepen naar de Speech SDK

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

Aangepaste activeringstrefwoorden toevoegen

De Speech SDK ondersteunt activering van aangepaste trefwoorden. Net als 'Hey Cortana' voor een Microsoft-assistent 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

Het trefwoord term wordt vaak door elkaar gebruikt met het term wake-woord. Mogelijk ziet u beide worden gebruikt in de Microsoft-documentatie.

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

Volg deze stappen om een trefwoordmodel 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. Pak het modelbestand uit dat u in de vorige stap hebt gedownload. De naam moet worden opgegeven voor uw trefwoord. U zoekt een bestand met de naam kws.table.
  3. Zoek in de Windows Voice Assistant Client het Instellingen menu (het tandwielpictogram in de rechterbovenhoek). Voer voor het pad van het modelbestand de volledige padnaam in voor het kws.table-bestand uit stap 2.
  4. Schakel het selectievakje Geactiveerd in. U ziet dit bericht naast het selectievakje: 'Luistert naar het trefwoord bij volgende verbinding'. Als u het verkeerde bestand of een ongeldig pad hebt opgegeven, wordt er een foutbericht weergegeven.
  5. Voer de waarden in voor de regio Abonnementssleutel en Abonnementssleutel en selecteer VERVOLGENS OK om het menu Instellingen te sluiten.
  6. Selecteer Opnieuw verbinding maken. U ziet nu een bericht met de tekst: 'Nieuw gesprek gestart - typ, druk op de microfoonknop of zeg het trefwoord'. De app luistert nu continu.
  7. Spreek een woordgroep die begint met uw trefwoord. Bijvoorbeeld: {uw trefwoord}, hoe laat is het? U hoeft niet te pauzeren na het uiten van het trefwoord. Wanneer u klaar bent, gebeuren er twee dingen:
    • U ziet een transcriptie van wat u sprak.
    • U hoort het antwoord van de bot.
  8. Ga verder met experimenteren met de drie invoertypen die uw bot ondersteunt:
    • Tekst invoeren op de onderste balk
    • Op het microfoonpictogram drukken en spreken
    • Een woordgroep zeggen die begint met uw trefwoord

De broncode weergeven waarmee trefwoorddetectie wordt ingeschakeld

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

Optioneel: de taal en bot voice wijzigen

De bot die u hebt gemaakt, luistert naar en reageert in het Engels, met een standaard Amerikaanse Engelse tekst naar spraakstem. U bent echter niet beperkt tot het gebruik van Engels of een standaardstem.

In deze sectie leert u hoe u de taal wijzigt waarnaar 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 in de spraak-naar-teksttabel worden genoemd. In het volgende voorbeeld wordt de taal gewijzigd in het Duits.

  1. Open de windows Voice Assistant-client-app, selecteer de knop Instellingen (tandwielpictogram rechtsboven) en voer de de-de-de in het veld Taal in. Dit is de landinstellingswaarde die wordt vermeld in de spraak-naar-teksttabel .

    In deze stap wordt ingesteld dat de gesproken taal wordt herkend, waarbij de standaardtaal wordt overschreven. Het geeft ook de opdracht aan het Direct Line Speech-kanaal om een standaard Duitse stem te gebruiken voor het antwoord van de bot.

  2. Sluit de pagina Instellingen en selecteer vervolgens de knop Opnieuw verbinden 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 reageert met de standaard Duitse stem.

De standaardbotstem wijzigen

U kunt de tekst voor spraakstem en de uitspraak van de controle selecteren als de bot het antwoord opgeeft 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 hiervoor eenvoudig wijzigen.

In het volgende voorbeeld wordt SSML toegevoegd aan het antwoord van de echobot, zodat de Duitse stem de-DE-RalfNeural (een mannelijke stem) wordt gebruikt in plaats van de standaard vrouwelijke stem. Bekijk de lijst met standaardstemmen en een lijst met neurale stemmen die worden ondersteund voor uw taal.

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

  2. Ga als volgt te werk:

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

    Vervang deze 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='de-DE-RalfNeural'>" +
                    $"{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 wordt het veld Activiteit uitspreken ingesteld in het antwoord van de bot. Met de voorgaande wijziging wordt deze vervangen door eenvoudige tekst naar SSML om een niet-standaard Duitse stem op te geven.

Uw bot opnieuw implementeren

Nu u de benodigde wijziging in de bot hebt aangebracht, is de volgende stap het opnieuw publiceren naar Azure-app Service en proberen:

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

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

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

  3. Open de Client-app voor Windows Voice Assistant. Selecteer de knop Instellingen (tandwielpictogram rechtsboven) en zorg ervoor dat u nog steeds de de-de-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, spreek in de nieuwe taal en hoor uw bot reageren in die taal met de nieuwe stem.

Resources opschonen

Als u de echobot die in deze zelfstudie is geïmplementeerd niet gaat blijven gebruiken, kunt u deze en alle bijbehorende Azure-resources verwijderen door de Azure-resourcegroep te verwijderen:

  1. Selecteer in Azure Portal resourcegroepen onder Azure-services.
  2. Zoek de Resourcegroep SpeechEchoBotTutorial-ResourceGroup . Selecteer de drie puntjes (...).
  3. Selecteer Resourcegroep verwijderen.

Bekijk de documentatie

Volgende stappen