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şsel Dil hizmetlerinin özelliklerini kullanan bir hizmetler arası senaryo uygulanır.
İpucu
Dil ve Konuşma hizmetlerini kullanarak arama merkezi konuşmalarını analiz etme hakkında bir tanıtım için Language Studio'yu veya Speech Studio'yu deneyin.
Kod içermeyen bir yaklaşımla Azure'a bir çağrı merkezi transkripsiyonu çözümü dağıtmak için Alma İstemcisi'ni deneyin.
Konuşma özellikleri için aşağıdaki Azure AI hizmetleri hızlı başlangıçta kullanılır:
- Toplu transkripsiyon: Döküm için bir grup ses dosyası gönderin.
- Konuşmacı ayrımı: Mono 16khz 16 bit PCM wav dosyalarının bölünerek birden çok hoparlörü ayırın.
Dil hizmeti, kullanılan aşağıdaki özellikleri sunar:
- Kişisel Bilgiler (PII) ayıklama ve yeniden değiştirme: Konuşma transkripsiyonundaki hassas bilgileri tanımlama, kategorilere ayırma ve yeniden işlem yapma.
- Konuşma özetlemesi: Her konuşma katılımcısının sorunlar ve çözümler hakkında söylediklerini özetleyin. Örneğin, bir çağrı merkezi yüksek hacimli ürün sorunlarını gruplandırabilir.
- Yaklaşım analizi ve görüş madenciliği: Transkripsiyonları analiz edin ve konuşma ve konuşma düzeyinde pozitif, nötr veya olumsuz yaklaşımı ilişkilendirin.
Önkoşullar
- Azure aboneliği - Ücretsiz olarak oluşturun
- Azure portalında çok hizmetli bir kaynak oluşturun. Bu hızlı başlangıçta yalnızca bir Azure AI hizmetleri çoklu hizmet kaynağı gerekir. Örnek kod, ayrı Dil ve Konuşma kaynak anahtarları belirtmenize olanak tanır.
- Kaynak anahtarını ve bölgeyi alın. Azure AI hizmetleri kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.
Ö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.
--languageKey
Bu hızlı başlangıçtaki 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
, northeurope
ve 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.
GitHub'dan senaryoları/csharp/dotnetcore/call-center/ örnek dosyalarını 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
Bir komut istemi açın ve proje dizinine geçin.
cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
Projeyi .NET CLI ile oluşturun.
dotnet build
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şin transkripsiyonu zaten varsa, 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ız, yerineYourResourceRegion
Azure AI hizmetleri kaynak bölgeniz (gibieastus
) yazın ve değerini Azure AI hizmetleri uç noktanızla değiştirinYourResourceEndpoint
. ve--output
tarafından--input
belirtilen yolların geçerli olduğundan emin olun. Aksi takdirde yolları değiştirmeniz gerekir.
Sonuçları denetleme
Konsol çıkışı konuşmanın tamamını ve özetini gösterir. Aşağıda, kısalık için yeniden düzenlemelerle birlikte 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 bileşimidir.
özelliği, transcription
toplu transkripsiyon ile birleştirilmiş yaklaşım analizi 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
Çok hizmetli bir kaynak veya ayrı Dil ve Konuşma kaynakları kullanabilirsiniz. Her iki durumda da ve değerleri konuşma --languageKey
özetleme API'si tarafından desteklenen bölgelerden birinde yer alan bir kaynağa karşılık gelir: eastus
, northeurope
, ve uksouth
.--languageEndpoint
Bağlantı seçenekleri şunlardır:
--speechKey KEY
: Azure AI hizmetleriniz veya Konuşma kaynak anahtarınız. URL'den seçeneğiyle--input
ses transkripsiyonları için gereklidir.--speechRegion REGION
: Azure AI hizmetleriniz veya Konuşma kaynak bölgeniz. URL'den seçeneğiyle--input
ses transkripsiyonları için gereklidir. Örnekler:eastus
,northeurope
--languageKey KEY
: Azure AI hizmetleriniz veya Dil kaynak anahtarınız. Gerekli.--languageEndpoint ENDPOINT
: Azure AI hizmetleriniz veya Dil kaynak uç noktanız. Gerekli. Ö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 girdi. 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ılar--input
. veya--jsonInput
seçeneğini ayarlamanız--input
gerekir.--stereo
: '''giriş URL'si' aracılığıyla sesin stereo biçiminde 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örden ayırmak için kullanılır. Stereo dosyaların kesinleştirilmesi desteklenmez, çünkü 2 kanallı stereo dosyaların kanal başına zaten bir hoparlörü olmalıdır.--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 iso 639-1 kodu olmalıdır. Varsayılan değer şudur:en
.--locale LOCALE
: Sesin toplu transkripsiyonu için kullanılacak yerel ayar. Varsayılan değer şudur:en-US
.
Çıkış seçenekleri şunlardır:
--help
: Kullanım yardımını gösterme ve durdurma--output FILE
: Dökümü, yaklaşımı, konuşma PII'sini ve konuşma özetlerini JSON biçiminde bir metin dosyasına aktarı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ını veya Azure Komut Satırı Arabirimi'ni (CLI) kullanabilirsiniz.