Sdílet prostřednictvím


Rychlý start: Přepis a analýza po volání

Dokumentace ke | službě languageLanguage Studio | Dokumentace ke | službě SpeechSpeech Studio

V tomto rychlém startu v jazyce C# provedete analýzu mínění a shrnutí konverzací přepisů z call centra . Ukázka automaticky identifikuje, kategorizuje a rediguje citlivé informace. Rychlý start implementuje scénář napříč službami, který využívá funkce služeb Azure Cognitive Speech a Azure Cognitive Language Services.

Tip

Vyzkoušejte jazykové studio nebo Speech Studio a předvedte si, jak používat služby Language a Speech k analýze konverzací v call centru.

Pokud chcete nasadit řešení přepisu call center do Azure bez kódu, zkuste klienta příjmu dat.

V tomto rychlém startu se používají následující služby Azure AI pro funkce speech:

Služba Language nabízí následující funkce, které se používají:

Požadavky

Důležité

Tento rychlý start vyžaduje přístup ke shrnutí konverzací. Pokud chcete získat přístup, musíte odeslat online žádost a nechat ji schválit.

Hodnoty --languageKey a --languageEndpoint v tomto rychlém startu musí odpovídat prostředku, který je v jedné z oblastí podporovaných rozhraním API pro souhrn konverzací: eastus, northeuropea uksouth.

Spuštění analýzy přepisu po volání pomocí jazyka C#

Postupujte podle těchto kroků a sestavte a spusťte příklad rychlého zprovoznění kódu analýzy přepisu po volání.

  1. Zkopírujte ukázkové soubory scenarios/csharp/dotnetcore/call-center/ z GitHubu. Pokud máte nainstalovaný Git, otevřete příkazový řádek a spuštěním git clone příkazu stáhněte úložiště ukázek sady Speech SDK.

    git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
    
  2. Otevřete příkazový řádek a přejděte do adresáře projektu.

    cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
    
  3. Sestavte projekt pomocí rozhraní příkazového řádku .NET.

    dotnet build
    
  4. Spusťte aplikaci s upřednostňovanými argumenty příkazového řádku. Projděte si informace o využití a argumentech dostupných možností.

    Tady je příklad, který přepisuje z ukázkového zvukového souboru na GitHubu:

    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
    

    Pokud už máte přepis pro vstup, tady je příklad, který vyžaduje pouze prostředek Jazyk:

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

    Nahraďte YourResourceKey klíčem prostředku služeb Azure AI, nahraďte YourResourceRegionoblastí prostředků služeb Azure AI (například eastus) a nahraďte YourResourceEndpoint koncovým bodem služeb Azure AI. Ujistěte se, že cesty zadané a --input--output jsou platné. V opačném případě je nutné změnit cesty.

    Důležité

    Až budete hotovi, nezapomeňte klíč z kódu odebrat a nikdy ho nezveřejníte. V produkčním prostředí použijte zabezpečený způsob ukládání a přístupu k přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

Kontrola výsledků

Výstup konzoly zobrazuje úplnou konverzaci a souhrn. Tady je příklad celkového souhrnu s redakcemi pro stručnost:

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

Pokud zadáte --output FILE volitelný argument, zapíše se do souboru verze výsledků JSON. Výstup souboru je kombinací odpovědí JSON z rozhraní API dávkového přepisu (Speech), mínění (jazyk) a sumarizace konverzací (jazyk).

Vlastnost transcription obsahuje objekt JSON s výsledky analýzy mínění sloučené s dávkovým přepisem. Tady je příklad s redakcemi pro stručnost:

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

Vlastnost conversationAnalyticsResults obsahuje objekt JSON s výsledky pii konverzace a analýzy souhrnu konverzací. Tady je příklad s redakcemi pro stručnost:

{
  "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": []
        }
      ]
    }
  }
}

Použití a argumenty

Použití: call-center -- [...]

Důležité

Můžete použít položky s více službami nebo samostatné položky Jazyk a Prostředky řeči . V obou případech musí hodnoty a --languageEndpoint odpovídat prostředku, --languageKey který je v jedné z oblastí podporovaných rozhraním API pro souhrn konverzací: eastus, northeuropea uksouth.

Mezi možnosti připojení patří:

  • --speechKey KEY: Azure AI nebo Vytvoření klíče Vyžaduje se pro přepisy zvuku --input s možností z adresy URL.

  • --speechRegion REGION: Vytvoření Azure AI nebo Vytvoření oblasti prostředku . Vyžaduje se pro přepisy zvuku --input s možností z adresy URL. Příklady: eastus, northeurope

  • --languageKey KEY: Azure AI nebo Vytvoření klíče prostředku jazyka. Povinná hodnota.

  • --languageEndpoint ENDPOINT: Vytvoření . Povinná hodnota. Příklad: https://YourResourceName.cognitiveservices.azure.com

Mezi vstupní možnosti patří:

  • --input URL: Zadejte zvuk z adresy URL. Musíte nastavit možnost nebo --input--jsonInput .
  • --jsonInput FILE: Zadejte existující výsledek JSON dávkového přepisu ze SOUBORU. S touto možností potřebujete pouze prostředek jazyka ke zpracování přepisu, který už máte. S touto možností nepotřebujete zvukový soubor ani prostředek služby Speech. --inputPřepíše . Musíte nastavit možnost nebo --input--jsonInput .
  • --stereo: Označuje, že zvuk prostřednictvím vstupní adresy URL by měl být ve stereofonní podobě. Pokud stereo není zadáno, předpokládá se, že se předpokládá mono 16kHz 16bitové soubory PCM wav. Diarizace mono souborů slouží k oddělení více reproduktorů. Diarizace stereo souborů není podporovaná, protože 2kanálové stereo soubory by již měly mít jeden reproduktor na kanál.
  • --certificate: Soubor certifikátu PEM. Vyžaduje se pro C++.

Mezi jazykové možnosti patří:

  • --language LANGUAGE: Jazyk, který se má použít pro analýzu mínění a analýzu konverzací. Tato hodnota by měla být dvoumísmenný kód ISO 639-1. Výchozí hodnota je en.
  • --locale LOCALE: Národní prostředí, které se má použít pro dávkový přepis zvuku. Výchozí hodnota je en-US.

Mezi možnosti výstupu patří:

  • --help: Zobrazit nápovědu k používání a zastavit
  • --output FILE: Vypište přepis, mínění, pii konverzace a souhrny konverzací ve formátu JSON do textového souboru. Další informace najdete v příkladech výstupu.

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

K odebrání prostředku služby Azure AI, který jste vytvořili, můžete použít Azure Portal nebo rozhraní příkazového řádku (CLI) Azure.

Další kroky