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 | A Language Studio | Speech service dokumentációja | a Speech Studióban

Ebben a C#-rövid útmutatóban hangulatelemzést és beszélgetés-összegzést végez a call center átirataiból. A minta automatikusan azonosítja, kategorizálja és újra megjeleníti 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 Studio vagy a Speech Studio bemutatóját arról, hogyan használhatja a Language and Speech szolgáltatást a call center-beszélgetések elemzéséhez.

Ha kód nélküli módszerrel szeretne üzembe helyezni egy call center-átírási megoldást az Azure-ban, próbálja ki a Betöltési ügyfelet.

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

  • Azure-előfizetés – Ingyenes létrehozás
  • Hozzon létre egy többszolgáltatásos erőforrást az Azure Portalon. Ehhez a rövid útmutatóhoz csak egy többszolgáltatásos Azure AI-szolgáltatásokra van szükség. A mintakód lehetővé teszi, hogy külön Nyelvi és Beszéd erőforráskulcsokat adjon meg.
  • Kérje le az erőforráskulcsot és a régiót. Az Azure AI-szolgáltatások erőforrásának üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.

Fontos

Ez a rövid útmutató hozzáférést igényel 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ő értékeknek --languageEndpoint meg kell felelnie egy 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 utáni átírási elemzés futtatása C-vel#

Kövesse az alábbi lépéseket a hívás utáni átiratelemzés gyorsútmutató-példa létrehozásához és futtatásához.

  1. Másolja ki a forgatókönyveket/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. Tekintse meg a rendelkezésre álló lehetőségek használatát és argumentumait .

    Íme egy példa, amely átír egy példa hangfájlt 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 nyelvi erőforrást igényel:

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

    Cserélje le YourResourceKey az Azure AI-szolgáltatások erőforráskulcsát, cserélje le YourResourceRegion az Azure AI-szolgáltatások erőforrásrégiójára (például eastus), és cserélje le YourResourceEndpoint az Azure AI-szolgáltatások végpontjára. Győződjön meg arról, hogy a megadott --input és --output érvényes 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 Vaultot. További információké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 összefoglalásra, a rövidítésekre vonatkozó redakciókkal:

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 az --output FILE opcionális argumentumot, a rendszer az eredmények JSON-verzióját írja a fájlba. A fájlkimenet a kötegátírásból (Speech), a hangulatból (nyelv) és a beszélgetési összegzésből (Language) származó JSON-válaszok kombinációja.

A transcription tulajdonság egy JSON-objektumot tartalmaz, amely a hangulatelemzés eredményeit kötegátírással egyesítette. Í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 a beszélgetési PII és a beszélgetés összegzési elemzésének eredményeivel. Í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álhat többszolgáltatásos erőforrást, vagy külön Nyelvi és Beszéd típusú erőforrásokat. Mindkét esetben az és --languageEndpoint az --languageKey értékeknek meg kell egyeznie egy erőforrással, amely a beszélgetés összegzési 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: Hang bevitele URL-címről. A beállítást vagy --jsonInput a --input beállítást kell megadnia.
  • --jsonInput FILE: Adjon meg egy meglévő kötegátírási JSON-eredményt a FILE-ból. Ezzel a beállítással csak egy nyelvi erőforrásra van szüksége a már meglévő átirat 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 beállítást 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 a sztereó nincs megadva, akkor a rendszer mono 16khz 16 bites PCM wav fájlokat feltételez. A monofájlok diarizálása 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 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: JSON formátumban adja ki az átiratot, a hangulatot, a beszélgetési PII-t és a beszélgetés összefoglalóit 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

Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Azure AI-szolgáltatások erőforrását.

Következő lépések