Share via


Hızlı Başlangıç: Arama sonrası transkripsiyon ve analiz

Dil hizmeti belgeleri | Language Studio | Konuşma hizmeti belgeleri | Speech Studio

Bu C# hızlı başlangıcında , çağrı merkezi transkripsiyonlarının yaklaşım analizini ve konuşma özetlemeyi gerçekleştireceksiniz. Örnek hassas bilgileri otomatik olarak belirler, kategorilere ayırır ve yeniden oluşturur. Hızlı başlangıçta Azure Bilişsel Konuşma ve Azure BilişselDil hizmetlerinin özelliklerini kullanan bir hizmetler arası senaryo uygulanır.

İpucu

Dil ve Konuşma hizmetlerini kullanarak çağrı merkezi konuşmalarını analiz etme hakkında bir tanıtım için Language Studio veya Speech Studio'yu deneyin.

Kod içermeyen bir yaklaşımla Azure'a çağrı merkezi transkripsiyon çözümü dağıtmak için Alma İstemcisi'ni deneyin.

Hızlı başlangıçta konuşma özellikleri için aşağıdaki Azure AI hizmetleri kullanılır:

Dil hizmeti, kullanılan aşağıdaki özellikleri sunar:

Önkoşullar

Önemli

Bu hızlı başlangıç için konuşma özetlemesine erişim gerekir. Erişim elde etmek için çevrimiçi bir istek göndermeniz ve bunu onaylamanız gerekir.

Bu hızlı başlangıçtaki --languageKey ve --languageEndpoint değerleri , konuşma özetleme API'sinin desteklediği bölgelerden birinde yer alan bir kaynağa karşılık olmalıdır: eastus, northeuropeve uksouth.

C ile çağrı sonrası transkripsiyon analizi çalıştırma#

Çağrı sonrası transkripsiyon analizi hızlı başlangıç kod örneğini derlemek ve çalıştırmak için bu adımları izleyin.

  1. senaryolarını/csharp/dotnetcore/call-center/ örnek dosyalarını GitHub'dan kopyalayın. Git yüklüyse, bir komut istemi açın ve Konuşma SDK'sı git clone örnekleri deposunu indirmek için komutunu çalıştırın.

    git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
    
  2. Bir komut istemi açın ve proje dizinine geçin.

    cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
    
  3. Projeyi .NET CLI ile oluşturun.

    dotnet build
    
  4. Uygulamayı tercih ettiğiniz komut satırı bağımsız değişkenleriyle çalıştırın. Kullanılabilir seçenekler için bkz. kullanım ve bağımsız değişkenler .

    GitHub'da örnek bir ses dosyasından döküm oluşturan bir örnek aşağıda verilmiştir:

    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
    

    Giriş için zaten bir transkripsiyona sahipseniz, aşağıda yalnızca Dil kaynağı gerektiren bir örnek verilmiştir:

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

    değerini YourResourceKey Azure AI hizmetleri kaynak anahtarınızla, değerini YourResourceRegion Azure AI hizmetleri kaynak bölgenizle (gibi eastus) ve yerine Azure AI hizmetleri uç noktanızı yazın YourResourceEndpoint . ve --output tarafından --input belirtilen yolların geçerli olduğundan emin olun. Aksi takdirde yolları değiştirmeniz gerekir.

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

Sonuçları denetleme

Konsol çıktısı, konuşmanın ve özetin tamamını gösterir. Aşağıda, kısaltmaya yönelik redaksiyonlar içeren genel özete bir örnek verilmiştir:

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

İsteğe bağlı bağımsız değişkenini--output FILE belirtirseniz, sonuçların JSON sürümü dosyaya yazılır. Dosya çıkışı toplu transkripsiyon (Konuşma), yaklaşım (Dil) ve konuşma özetleme (Dil) API'lerinden gelen JSON yanıtlarının bir birleşimidir.

özelliği, transcription toplu transkripsiyon ile birleştirilmiş yaklaşım analizinin sonuçlarını içeren bir JSON nesnesi içerir. Kısalık için redaksiyonlar içeren bir örnek aşağıda verilmiştir:

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

özelliği, conversationAnalyticsResults konuşma PII'sinin ve konuşma özetleme analizinin sonuçlarını içeren bir JSON nesnesi içerir. Kısalık için redaksiyonlar içeren bir örnek aşağıda verilmiştir:

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

Kullanım ve bağımsız değişkenler

Kullanım: call-center -- [...]

Önemli

veya dili ve kaynakları kullanabilirsiniz. Her iki durumda da ve --languageEndpoint değerleri, --languageKeykonuşma özetleme API'si tarafından desteklenen bölgelerden birinde yer alan bir kaynağa karşılık gelir: eastus, northeuropeve uksouth.

Bağlantı seçenekleri şunlardır:

  • --speechKey KEY: hizmetleri veya kaynak anahtarınız. URL'den seçeneğiyle --input sesli transkripsiyonlar için gereklidir.

  • --speechRegion REGION: hizmetleri veya kaynak bölgeniz. URL'den seçeneğiyle --input sesli transkripsiyonlar için gereklidir. Örnekler: eastus, northeurope

  • --languageKey KEY: hizmetleri veya kaynak anahtarınız. Gereklidir.

  • --languageEndpoint ENDPOINT: hizmetleri veya kaynak uç noktanız. Gereklidir. Örnek: https://YourResourceName.cognitiveservices.azure.com

Giriş seçenekleri şunlardır:

  • --input URL: URL'den ses girişi. veya --jsonInput seçeneğini ayarlamanız --input gerekir.
  • --jsonInput FILE: FILE dosyasından var olan bir toplu transkripsiyon JSON sonucunu giriş. Bu seçenekle, zaten sahip olduğunuz transkripsiyonu işlemek için yalnızca bir Dil kaynağına ihtiyacınız vardır. Bu seçenekle, ses dosyasına veya Konuşma kaynağına ihtiyacınız yoktur. Geçersiz kılmalar --input. veya --jsonInput seçeneğini ayarlamanız --input gerekir.
  • --stereo: ''giriş URL'si' aracılığıyla sesin stereo biçimde olması gerektiğini gösterir. Stereo belirtilmezse mono 16khz 16 bit PCM wav dosyaları varsayılır. Mono dosyalarının diarizasyonu, birden çok hoparlörleri ayırmak için kullanılır. 2 kanallı stereo dosyaların kanal başına zaten bir hoparlöre sahip olması gerektiğinden stereo dosyaların kesinleştirilmesi desteklenmez.
  • --certificate: PEM sertifika dosyası. C++ için gereklidir.

Dil seçenekleri şunlardır:

  • --language LANGUAGE: Yaklaşım analizi ve konuşma analizi için kullanılacak dil. Bu değer iki harfli bir ISO 639-1 kodu olmalıdır. en varsayılan değerdir.
  • --locale LOCALE: Sesin toplu transkripsiyonu için kullanılacak yerel ayar. en-US varsayılan değerdir.

Çıkış seçenekleri şunlardır:

  • --help: Kullanım yardımını göster ve durdur
  • --output FILE: Dökümü, yaklaşımı, konuşma PII'sini ve konuşma özetlerini JSON biçiminde bir metin dosyasına çıkış yapın. Daha fazla bilgi için bkz. çıkış örnekleri.

Kaynakları temizleme

Oluşturduğunuz Azure AI hizmetleri kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi'ni (CLI) kullanabilirsiniz.

Sonraki adımlar