Megosztás a következőn keresztül:


Rövid útmutató: Hívás utáni átírás és elemzés

A Language Service dokumentációja | Language Studio | A Speech Service dokumentációja | Speech Studio

Ebben a C#-rövid útmutatóban hangulatelemzést és beszélgetések összegzését hajtja végre a call center átirataiból. A minta automatikusan azonosítja, kategorizálja és újrafedi a bizalmas információkat. A rövid útmutató egy szolgáltatásközi forgatókönyvet valósít meg, amely az Azure Cognitive Speech és az Azure Cognitive Language szolgáltatások funkcióit használja.

Tipp

Próbálja ki a Language Studiót vagy a Speech Studiót , ahol megtudhatja, hogyan elemezheti a call center-beszélgetéseket a Language and Speech services használatával.

Ha kód nélküli megközelítéssel szeretne üzembe helyezni egy call center-átírási megoldást az Azure-ban, próbálkozzon a betöltési ügyféllel.

A rövid útmutató az alábbi Azure AI-szolgáltatásokat használja a Speech szolgáltatáshoz:

A Language szolgáltatás a következő funkciókat kínálja:

Előfeltételek

Fontos

Ehhez a rövid útmutatóhoz hozzáférésre van szükség a beszélgetések összegzéséhez. A hozzáféréshez be kell küldenie egy online kérelmet , és jóvá kell hagynia.

A --languageKey rövid útmutatóban szereplő és --languageEndpoint értékeknek meg kell felelnie egy olyan erőforrásnak, amely a beszélgetés-összefoglaló API által támogatott régiók egyikében található: eastus, northeuropeés uksouth.

Hívásátírás utáni elemzés futtatása C-vel#

Kövesse ezeket a lépéseket a hívásátírás-elemzés gyorsútmutató-példa létrehozásához és futtatásához.

  1. Másolja a scenarios/csharp/dotnetcore/call-center/ mintafájlokat a GitHubról. Ha telepítve van a Git, nyisson meg egy parancssort, és futtassa a git clone parancsot a Speech SDK-minták adattárának letöltéséhez.

    git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
    
  2. Nyisson meg egy parancssort, és váltson a projektkönyvtárra.

    cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
    
  3. Hozza létre a projektet a .NET CLI-vel.

    dotnet build
    
  4. Futtassa az alkalmazást az előnyben részesített parancssori argumentumokkal. A rendelkezésre álló lehetőségekért tekintse meg a használatot és az argumentumokat .

    Íme egy példa, amely egy példa hangfájlból ír át a GitHubon:

    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
    

    Ha már rendelkezik átírással a bemenethez, íme egy példa, amely csak egy nyelvi erőforrást igényel:

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

    Cserélje le YourResourceKey a elemet az Azure AI-szolgáltatások erőforráskulcsára, a helyére YourResourceRegion az Azure AI-szolgáltatások erőforrásrégióját (például eastus), és a helyére YourResourceEndpoint az Azure AI-szolgáltatások végpontját. Győződjön meg arról, hogy a és --output által --input megadott elérési utak érvényesek. Ellenkező esetben módosítania kell az elérési utakat.

    Fontos

    Ne felejtse el eltávolítani a kulcsot a kódból, amikor elkészült, és soha ne tegye közzé nyilvánosan. Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vault. További információért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.

Eredmények ellenőrzése

A konzol kimenete a teljes beszélgetést és összegzést jeleníti meg. Íme egy példa az általános összegzésre, a rövidség kedvéért:

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

Ha megadja a --output FILE választható argumentumot, a rendszer az eredmények JSON-verzióját írja a fájlba. A fájlkimenet a kötegelt átírás (Speech), a hangulat (nyelv) és a beszélgetés-összegzési (Language) API-k JSON-válaszainak kombinációja.

A transcription tulajdonság egy JSON-objektumot tartalmaz, amely a kötegelt átírással egyesített hangulatelemzés eredményeit tartalmazza. Íme egy példa, a rövidség kedvéért:

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

A conversationAnalyticsResults tulajdonság egy JSON-objektumot tartalmaz, amely a beszélgetési PII és a beszélgetések összegzési elemzésének eredményeit tartalmazza. Íme egy példa, a rövidség kedvéért:

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

Használat és argumentumok

Használat: call-center -- [...]

Fontos

Használhatja az többszolgáltatásos erőforrást , vagy különálló nyelv és Speech-erőforrásokat . A és --languageEndpoint az értéknek mindkét esetben meg kell felelnie egy olyan erőforrásnak, --languageKey amely a beszélgetés-összefoglaló API által támogatott régiók egyikében található: eastus, northeuropeés uksouth.

A kapcsolati lehetőségek a következők:

A bemeneti lehetőségek a következők:

  • --input URL: Hangbevitel URL-címről. A vagy --jsonInput a --input beállítást kell megadnia.
  • --jsonInput FILE: Adjon meg egy meglévő kötegelt átírási JSON-eredményt a FILE fájlból. Ezzel a beállítással csak egy nyelvi erőforrásra van szüksége egy már meglévő átírás feldolgozásához. Ezzel a beállítással nincs szükség hangfájlra vagy Speech-erőforrásra. Felülbírálások --input. A vagy --jsonInput a --input beállítást kell megadnia.
  • --stereo: Azt jelzi, hogy a "bemeneti URL-címen" keresztüli hangnak sztereó formátumban kell lennie. Ha nincs megadva sztereó, akkor a rendszer mono 16khz-es, 16 bites PCM wav-fájlokat feltételez. A mono fájlok diarizációja több hangszóró elválasztására szolgál. A sztereó fájlok diarizálása nem támogatott, mivel a kétcsatornás sztereó fájloknak csatornánként már egy hangszóróval kell rendelkezniük.
  • --certificate: A PEM-tanúsítványfájl. A C++-hoz szükséges.

A nyelvi lehetőségek a következők:

  • --language LANGUAGE: A hangulatelemzéshez és a beszélgetéselemzéshez használandó nyelv. Ennek az értéknek kétbetűs ISO 639-1 kódnak kell lennie. Az alapértelmezett érték en.
  • --locale LOCALE: A hang kötegelt átírásához használandó területi beállítás. Az alapértelmezett érték en-US.

A kimeneti lehetőségek a következők:

  • --help: A használati súgó megjelenítése és leállítása
  • --output FILE: Adja ki az átiratot, a hangulatot, a beszélgetési PII-t és a beszélgetési összefoglalókat JSON formátumban egy szövegfájlba. További információkért lásd a kimeneti példákat.

Az erőforrások eltávolítása

A létrehozott Azure AI-szolgáltatások erőforrásának eltávolításához használhatja a Azure Portal vagy az Azure parancssori felületét (CLI).

Következő lépések