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:
- Transkripsi batch: Kirimkan batch file audio untuk transkripsi.
- Pemisahan pembicara: Pisahkan beberapa speaker melalui diarisasi file wav PCM mono 16khz 16 bit.
Layanan Bahasa menawarkan fitur berikut yang digunakan:
- Ekstraksi dan redaksi Informasi Pengidentifikasi Pribadi (PII): Mengidentifikasi, mengategorikan, dan meredaksi informasi sensitif dalam transkripsi percakapan.
- Ringkasan percakapan: Meringkas dalam teks abstrak apa yang dikatakan setiap peserta percakapan tentang masalah dan resolusi. Misalnya, pusat panggilan dapat mengelompokkan masalah produk yang memiliki volume tinggi.
- Analisis sentimen dan penggalian opini: Menganalisis transkripsi dan mengaitkan sentimen positif, netral, atau negatif pada tingkat ucapan dan percakapan.
Prasyarat
- Langganan Azure - Membuat langganan gratis
- Buat sumber daya multi-layanan di portal Azure. Mulai cepat ini hanya memerlukan satu sumber daya multi-layanan layanan Azure AI. Kode sampel memungkinkan Anda menentukan kunci dan Ucapan terpisah.
- Dapatkan kunci sumber daya dan wilayah. Setelah sumber daya layanan Azure AI Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
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
, , northeurope
dan uksouth
.
Menjalankan analisis transkripsi pasca-panggilan dengan C#
Ikuti langkah-langkah ini untuk membangun dan menjalankan contoh kode mulai cepat analisis transkripsi pasca-panggilan.
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
Buka perintah dan ubah ke direktori proyek.
cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
Buat proyek dengan CLI .NET.
dotnet build
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, gantiYourResourceRegion
dengan wilayah sumber daya layanan Azure AI Anda (sepertieastus
), dan gantiYourResourceEndpoint
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 FILE
argumen 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
, , northeurope
dan 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 adalahen
.--locale LOCALE
: Lokal yang digunakan untuk transkripsi batch audio. Nilai defaultnya adalahen-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.