Delen via


Quickstart: Transcriptie en analyse na aanroepen

Taalservicedocumentatie | Language Studio | Speech-servicedocumentatie | Speech Studio

In deze C#-quickstart voert u sentimentanalyse en samenvatting van gesprekssamenvattingen van callcentertranscripties uit. In het voorbeeld wordt gevoelige informatie automatisch geïdentificeerd, gecategoraliseerd en opgeslagen. In de quickstart wordt een scenario voor meerdere services geïmplementeerd dat gebruikmaakt van functies van de Azure Cognitive Speech - en Azure Cognitive Language-services .

Tip

Probeer Language Studio of Speech Studio voor een demonstratie over het gebruik van de taal- en spraakservices om gesprekken in het callcenter te analyseren.

Als u een callcentertranscriptieoplossing wilt implementeren in Azure met een aanpak zonder code, probeert u de opnameclient.

De volgende Azure AI-services voor Spraak-functies worden gebruikt in de quickstart:

  • Batchtranscriptie: dien een batch audiobestanden in voor transcriptie.
  • Sprekerscheiding: Scheid meerdere luidsprekers door diarisatie van mono 16khz 16-bits PCM wav-bestanden.

De Taalservice biedt de volgende functies die worden gebruikt:

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • Maak een resource met meerdere services in Azure Portal. Voor deze quickstart is slechts één Azure AI-serviceresource voor meerdere services vereist. Met de voorbeeldcode kunt u afzonderlijke taal- en spraakresourcesleutels opgeven.
  • Haal de resourcesleutel en regio op. Nadat uw Azure AI-servicesresource is geïmplementeerd, selecteert u Ga naar de resource om sleutels weer te geven en te beheren.

Belangrijk

Voor deze quickstart is toegang tot de samenvatting van gesprekken vereist. Als u toegang wilt krijgen, moet u een onlineaanvraag indienen en deze laten goedkeuren.

De --languageKey waarden in --languageEndpoint deze quickstart moeten overeenkomen met een resource die zich in een van de regio's bevindt die worden ondersteund door de samenvattings-API voor gesprekken: eastus, northeuropeen uksouth.

Transcriptieanalyse na aanroepen uitvoeren met C#

Volg deze stappen om het voorbeeld van een transcriptieanalyse na aanroep te bouwen en uit te voeren.

  1. Kopieer de scenario's/csharp/dotnetcore/call-center/ samplebestanden van GitHub. Als Git is geïnstalleerd, opent u een opdrachtprompt en voert u de opdracht uit om de git clone opslagplaats met voorbeelden van de Speech SDK te downloaden.

    git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
    
  2. Open een opdrachtprompt en ga naar de projectmap.

    cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
    
  3. Bouw het project met de .NET CLI.

    dotnet build
    
  4. Voer de toepassing uit met de gewenste opdrachtregelargumenten. Zie het gebruik en de argumenten voor de beschikbare opties.

    Hier volgt een voorbeeld dat wordt getranscribeerd vanuit een voorbeeld-audiobestand op GitHub:

    dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --speechKey YourResourceKey --speechRegion YourResourceRegion --input "https://github.com/Azure-Samples/cognitive-services-speech-sdk/raw/master/scenarios/call-center/sampledata/Call1_separated_16k_health_insurance.wav" --stereo  --output summary.json
    

    Als u al een transcriptie voor invoer hebt, ziet u hier een voorbeeld waarvoor alleen een taalresource is vereist:

    dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --jsonInput "YourTranscriptionFile.json" --stereo  --output summary.json
    

    Vervang YourResourceKey door de resourcesleutel van uw Azure AI-services, vervang deze door YourResourceRegion de resourceregio van uw Azure AI-services (zoalseastus) en vervang deze door YourResourceEndpoint uw Azure AI-services-eindpunt. Zorg ervoor dat de paden die zijn opgegeven door --input en --output geldig zijn. Anders moet u de paden wijzigen.

    Belangrijk

    Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.

Resultaten controleren

In de console-uitvoer ziet u het volledige gesprek en de samenvatting. Hier volgt een voorbeeld van de algemene samenvatting, met redactions voor beknoptheid:

Conversation summary:
    issue: Customer wants to sign up for insurance.
    resolution: Customer was advised that customer would be contacted by the insurance company.

Als u het --output FILE optionele argument opgeeft, wordt een JSON-versie van de resultaten naar het bestand geschreven. De bestandsuitvoer is een combinatie van de JSON-antwoorden van de batchtranscriptie (Speech), sentiment (Language) en gesprekssamenvattings-API's (Language).

De transcription eigenschap bevat een JSON-object met de resultaten van sentimentanalyse samengevoegd met batchtranscriptie. Hier volgt een voorbeeld, met redactions voor beknoptheid:

{
    "source": "https://github.com/Azure-Samples/cognitive-services-speech-sdk/raw/master/scenarios/call-center/sampledata/Call1_separated_16k_health_insurance.wav",
// Example results redacted for brevity
        "nBest": [
          {
            "confidence": 0.77464247,
            "lexical": "hello thank you for calling contoso who am i speaking with today",
            "itn": "hello thank you for calling contoso who am i speaking with today",
            "maskedITN": "hello thank you for calling contoso who am i speaking with today",
            "display": "Hello, thank you for calling Contoso. Who am I speaking with today?",
            "sentiment": {
              "positive": 0.78,
              "neutral": 0.21,
              "negative": 0.01
            }
          },
        ]
// Example results redacted for brevity
}   

De conversationAnalyticsResults eigenschap bevat een JSON-object met de resultaten van de gespreks-PII en samenvattingsanalyse van gesprekken. Hier volgt een voorbeeld, met redactions voor beknoptheid:

{
  "conversationAnalyticsResults": {
    "conversationSummaryResults": {
      "conversations": [
        {
          "id": "conversation1",
          "summaries": [
            {
              "aspect": "issue",
              "text": "Customer wants to sign up for insurance"
            },
            {
              "aspect": "resolution",
              "text": "Customer was advised that customer would be contacted by the insurance company"
            }
          ],
          "warnings": []
        }
      ],
      "errors": [],
      "modelVersion": "2022-05-15-preview"
    },
    "conversationPiiResults": {
      "combinedRedactedContent": [
        {
          "channel": "0",
          "display": "Hello, thank you for calling Contoso. Who am I speaking with today? Hi, ****. Uh, are you calling because you need health insurance?", // Example results redacted for brevity
          "itn": "hello thank you for calling contoso who am i speaking with today hi **** uh are you calling because you need health insurance", // Example results redacted for brevity
          "lexical": "hello thank you for calling contoso who am i speaking with today hi **** uh are you calling because you need health insurance" // Example results redacted for brevity
        },
        {
          "channel": "1",
          "display": "Hi, my name is **********. I'm trying to enroll myself with Contoso. Yes. Yeah, I'm calling to sign up for insurance.", // Example results redacted for brevity
          "itn": "hi my name is ********** i'm trying to enroll myself with contoso yes yeah i'm calling to sign up for insurance", // Example results redacted for brevity
          "lexical": "hi my name is ********** i'm trying to enroll myself with contoso yes yeah i'm calling to sign up for insurance" // Example results redacted for brevity
        }
      ],
      "conversations": [
        {
          "id": "conversation1",
          "conversationItems": [
            {
              "id": "0",
              "redactedContent": {
                "itn": "hello thank you for calling contoso who am i speaking with today",
                "lexical": "hello thank you for calling contoso who am i speaking with today",
                "text": "Hello, thank you for calling Contoso. Who am I speaking with today?"
              },
              "entities": [],
              "channel": "0",
              "offset": "PT0.77S"
            },
            {
              "id": "1",
              "redactedContent": {
                "itn": "hi my name is ********** i'm trying to enroll myself with contoso",
                "lexical": "hi my name is ********** i'm trying to enroll myself with contoso",
                "text": "Hi, my name is **********. I'm trying to enroll myself with Contoso."
              },
              "entities": [
                {
                  "text": "Mary Rondo",
                  "category": "Name",
                  "offset": 15,
                  "length": 10,
                  "confidenceScore": 0.97
                }
              ],
              "channel": "1",
              "offset": "PT4.55S"
            },
            {
              "id": "2",
              "redactedContent": {
                "itn": "hi **** uh are you calling because you need health insurance",
                "lexical": "hi **** uh are you calling because you need health insurance",
                "text": "Hi, ****. Uh, are you calling because you need health insurance?"
              },
              "entities": [
                {
                  "text": "Mary",
                  "category": "Name",
                  "offset": 4,
                  "length": 4,
                  "confidenceScore": 0.93
                }
              ],
              "channel": "0",
              "offset": "PT9.55S"
            },
            {
              "id": "3",
              "redactedContent": {
                "itn": "yes yeah i'm calling to sign up for insurance",
                "lexical": "yes yeah i'm calling to sign up for insurance",
                "text": "Yes. Yeah, I'm calling to sign up for insurance."
              },
              "entities": [],
              "channel": "1",
              "offset": "PT13.09S"
            },
// Example results redacted for brevity
          ],
          "warnings": []
        }
      ]
    }
  }
}

Gebruik en argumenten

Gebruik: call-center -- [...]

Belangrijk

U kunt een resource met meerdere services of afzonderlijke taal - en spraakresources gebruiken. In beide gevallen moeten de --languageKey en --languageEndpoint waarden overeenkomen met een resource die zich in een van de regio's bevindt die worden ondersteund door de samenvattings-API voor gesprekken: eastus, northeuropeen uksouth.

Verbindingsopties zijn onder andere:

Invoeropties zijn onder andere:

  • --input URL: Invoergeluid van URL. U moet de --input of --jsonInput optie instellen.
  • --jsonInput FILE: Voer een bestaand JSON-resultaat voor batchtranscriptie uit FILE in. Met deze optie hebt u alleen een taalresource nodig om een transcriptie te verwerken die u al hebt. Met deze optie hebt u geen audiobestand of een AI Services-resource voor Spraak nodig. Onderdrukkingen --input. U moet de --input of --jsonInput optie instellen.
  • --stereo: Geeft aan dat de audio via ''input URL' in stereo-indeling moet zijn. Als stereo niet is opgegeven, worden mono 16khz 16-bits PCM wav-bestanden verondersteld. Diarisatie van monobestanden wordt gebruikt om meerdere luidsprekers te scheiden. Diarisatie van stereobestanden wordt niet ondersteund, omdat 2-kanaals stereobestanden al één luidspreker per kanaal moeten hebben.
  • --certificate: het PEM-certificaatbestand. Vereist voor C++.

Taalopties zijn onder andere:

  • --language LANGUAGE: De taal die moet worden gebruikt voor sentimentanalyse en gespreksanalyse. Deze waarde moet een ISO 639-1-code van twee letters zijn. De standaardwaarde is en.
  • --locale LOCALE: De landinstelling die moet worden gebruikt voor batchtranscriptie van audio. De standaardwaarde is en-US.

Uitvoeropties zijn onder andere:

  • --help: Gebruikshulp weergeven en stoppen
  • --output FILE: uitvoer van de transcriptie, het gevoel, de gespreks-PII en de gesprekssamenvattingen in JSON-indeling naar een tekstbestand. Zie de uitvoervoorbeelden voor meer informatie.

Resources opschonen

U kunt de Azure-portal of Azure CLI (Opdrachtregelinterface) gebruiken om de Azure AI-servicesresource te verwijderen die u hebt gemaakt.

Volgende stappen