Bagikan melalui


Mulai cepat: Transkripsi dan analitik pasca-panggilan

Dokumentasi | layanan bahasaStudio | BahasaDokumentasi | layanan ucapanSpeech Studio

Dalam mulai cepat C#ini, Anda melakukan analisis sentimen dan ringkasan percakapan transkripsi pusat panggilan . Sampel akan secara otomatis mengidentifikasi, mengategorikan, dan meredaksi informasi sensitif. Mulai cepat menerapkan skenario lintas layanan yang menggunakan fitur Layanan Azure Cognitive Speech dan Azure Cognitive Language .

Tip

Coba Language Studio atau Speech Studio untuk demonstrasi tentang cara menggunakan layanan Bahasa dan Ucapan untuk menganalisis percakapan pusat panggilan.

Untuk menyebarkan solusi transkripsi pusat panggilan ke Azure dengan pendekatan tanpa kode, coba Klien Penyerapan.

Layanan Azure AI berikut untuk fitur Ucapan digunakan dalam mulai cepat:

Layanan Bahasa menawarkan fitur berikut yang digunakan:

Prasyarat

Penting

Mulai cepat ini memerlukan akses ke ringkasan percakapan. Untuk mendapatkan akses, Anda harus mengirimkan permintaan online dan menyetujuinya.

Nilai --languageKey dan --languageEndpoint dalam mulai cepat ini harus sesuai dengan sumber daya yang ada di salah satu wilayah yang didukung oleh API ringkasan percakapan: eastus, , northeuropedan uksouth.

Menjalankan analisis transkripsi pasca-panggilan dengan C#

Ikuti langkah-langkah ini untuk membangun dan menjalankan contoh kode mulai cepat analisis transkripsi pasca-panggilan.

  1. Salin file sampel skenario/csharp/dotnetcore/call-center/ dari GitHub. Jika Anda telah menginstal Git, buka prompt perintah dan jalankan git clone perintah untuk mengunduh repositori sampel Speech SDK.

    git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
    
  2. Buka perintah dan ubah ke direktori proyek.

    cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
    
  3. Buat proyek dengan CLI .NET.

    dotnet build
    
  4. Jalankan aplikasi dengan argumen baris perintah pilihan Anda. Lihat penggunaan dan argumen untuk opsi yang tersedia.

    Berikut adalah contoh yang mentranskripsikan dari contoh file audio di 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
    

    Jika Anda sudah memiliki transkripsi untuk input, berikut adalah contoh yang hanya memerlukan sumber daya Bahasa:

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

    Ganti YourResourceKey dengan kunci sumber daya layanan Azure AI Anda, ganti YourResourceRegion dengan wilayah sumber daya layanan Azure AI Anda (seperti eastus), dan ganti YourResourceEndpoint dengan titik akhir layanan Azure AI Anda. Pastikan jalur yang ditentukan oleh --input dan --output adalah valid. Jika tidak, Anda harus mengubah jalur.

    Penting

    Ingatlah untuk menghapus kunci dari kode Anda setelah selesai, dan jangan pernah memposting kode secara publik. Untuk produksi, gunakan cara aman menyimpan dan mengakses informasi masuk Anda seperti Azure Key Vault. Lihat artikel keamanan layanan Azure AI untuk informasi selengkapnya.

Memeriksa hasil

Output konsol menunjukkan percakapan dan ringkasan lengkap. Berikut adalah contoh ringkasan keseluruhan, dengan redaksi untuk keringkasan:

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

Jika Anda menentukan --output FILEargumen opsional, versi JSON dari hasil ditulis ke file. Output file adalah kombinasi dari respons JSON dari API transkripsi batch (Ucapan), sentimen (Bahasa), dan ringkasan percakapan (Bahasa).

Properti transcription berisi objek JSON dengan hasil analisis sentimen yang digabungkan dengan transkripsi batch. Berikut adalah contohnya, dengan redaksi untuk keringkasan:

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

Properti conversationAnalyticsResults berisi objek JSON dengan hasil PII percakapan dan analisis ringkasan percakapan. Berikut adalah contohnya, dengan redaksi untuk keringkasan:

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

Penggunaan dan argumen

Penggunaan: call-center -- [...]

Penting

Anda dapat menggunakan sumber daya multi-layanan atau pisahkan dan. Dalam kedua kasus, --languageKey nilai dan --languageEndpoint harus sesuai dengan sumber daya yang ada di salah satu wilayah yang didukung oleh API ringkasan percakapan: eastus, , northeuropedan uksouth.

Opsi mitigasi mencakup:

  • --speechKey KEY: Anda layanan Azure AI atau. Diperlukan untuk transkripsi audio dengan --input opsi dari URL.

  • --speechRegion REGION: Anda layanan Azure AI atau wilayah sumber daya Ucapan. Diperlukan untuk transkripsi audio dengan --input opsi dari URL. Contoh: eastus, northeurope

  • --languageKey KEY: Anda layanan Azure AI atau Bahasa . Wajib diisi.

  • --languageEndpoint ENDPOINT: Anda layanan Azure AI atau Bahasa titik akhir sumber daya. Wajib diisi. Contoh: https://YourResourceName.cognitiveservices.azure.com

Opsi input mencakup:

  • --input URL: Input audio dari URL. Anda harus mengatur --input opsi atau --jsonInput .
  • --jsonInput FILE: Masukkan hasil JSON transkripsi batch yang ada dari FILE. Dengan opsi ini, Anda hanya memerlukan sumber daya Bahasa untuk memproses transkripsi yang sudah Anda miliki. Dengan opsi ini, Anda tidak memerlukan file audio atau sumber daya Ucapan. Mengambil alih --input. Anda harus mengatur --input opsi atau --jsonInput .
  • --stereo: Menunjukkan bahwa audio melalui '''URL input' harus dalam format stereo. Jika stereo tidak ditentukan, maka file wav PCM mono 16khz 16 bit diasumsikan. Diarisasi file mono digunakan untuk memisahkan beberapa speaker. Diarisasi file stereo tidak didukung, karena file stereo 2 saluran harus sudah memiliki satu speaker per saluran.
  • --certificate: File sertifikat PEM. Diperlukan untuk C++.

Opsi bahasa mencakup:

  • --language LANGUAGE: Bahasa yang digunakan untuk analisis sentimen dan analisis percakapan. Nilai ini harus berupa kode ISO 639-1 dua huruf. Nilai defaultnya adalah en.
  • --locale LOCALE: Lokal yang digunakan untuk transkripsi batch audio. Nilai defaultnya adalah en-US.

Opsi output mencakup:

  • --help: Tampilkan bantuan penggunaan dan hentikan
  • --output FILE: Output ringkasan transkripsi, sentimen, PII percakapan, dan percakapan dalam format JSON ke file teks. Untuk informasi selengkapnya, lihat contoh output.

Membersihkan sumber daya

Anda dapat menggunakan portal Azure atau Azure Command Line Interface (CLI) untuk menghapus sumber daya layanan Azure AI yang Anda buat.

Langkah berikutnya