Rychlý start: Přepis a analýza po volání
Dokumentace | | ke službě Language Studio Speech |
V tomto rychlém startu v jazyce C# provedete analýzu mínění a shrnutí konverzací přepisů call center . Ukázka automaticky identifikuje, kategorizuje a redakce citlivých informací. Rychlý start implementuje scénář mezi službami, který používá funkce služeb Azure Cognitive Speech a Azure Cognitive Language .
Tip
Vyzkoušejte Language Studio nebo Speech Studio pro ukázku, jak používat služby Language and Speech k analýze konverzací v call centru.
Pokud chcete nasadit řešení přepisu call centra do Azure s přístupem bez kódu, zkuste klienta příjmu dat.
V rychlém startu se používají následující služby Azure AI pro funkce služby Speech:
- Dávkový přepis: Odešle dávku zvukových souborů pro přepis.
- Oddělení reproduktorů: Oddělte více reproduktorů diarizací mono 16khz 16bitových souborů PCM wav.
Služba Language nabízí následující funkce, které se používají:
- Extrakce a redakce identifikovatelných osobních údajů: Identifikace, kategorizace a redakce citlivých informací v přepisu konverzace.
- Shrnutí konverzací: Shrnutí v abstraktním textu, co každý účastník konverzace řekl o problémech a řešeních. Call center může například seskupit problémy s produkty, které mají velký objem.
- Analýza mínění a dolování názorů: Analyzujte přepisy a přidružujte pozitivní, neutrální nebo negativní mínění na úrovni promluvy a konverzace.
Požadavky
- Předplatné Azure: Můžete si ho vytvořit zdarma.
- Na webu Azure Portal vytvořte prostředek s více službami. Tento rychlý start vyžaduje pouze jeden prostředek azure AI pro více služeb. Ukázkový kód umožňuje zadat samostatné klíče prostředků jazyka a řeči .
- Získejte klíč prostředku a oblast. Po nasazení prostředku služeb Azure AI vyberte Přejít k prostředku a zobrazte a spravujte klíče.
Důležité
Tento rychlý start vyžaduje přístup k sumarizaci konverzací. Pokud chcete získat přístup, musíte odeslat online žádost a schválit ji.
Hodnoty --languageKey
a --languageEndpoint
hodnoty v tomto rychlém startu musí odpovídat prostředku, který je v jedné z oblastí podporovaných rozhraním API souhrnu konverzací: eastus
, northeurope
a uksouth
.
Spuštění analýzy přepisu po volání pomocí jazyka C#
Pomocí těchto kroků sestavte a spusťte příklad kódu rychlého startu pro analýzu přepisu po volání.
Zkopírujte scénáře /csharp/dotnetcore/call-center/ ukázkové soubory z GitHubu. Pokud máte nainstalovaný Git, otevřete příkazový řádek a spusťte
git clone
příkaz pro stažení úložiště ukázek sady Speech SDK.git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
Otevřete příkazový řádek a přejděte do adresáře projektu.
cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
Sestavte projekt pomocí .NET CLI.
dotnet build
Spusťte aplikaci s upřednostňovanými argumenty příkazového řádku. Dostupné možnosti najdete v tématu využití a argumenty .
Tady je příklad, který přepisuje z ukázkového zvukového souboru na GitHubu:
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
Pokud už máte přepis pro vstup, tady je příklad, který vyžaduje pouze prostředek jazyka:
dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --jsonInput "YourTranscriptionFile.json" --stereo --output summary.json
Nahraďte
YourResourceKey
klíčem prostředku služby Azure AI, nahraďteYourResourceRegion
oblastí prostředků služeb Azure AI (napříkladeastus
) a nahraďteYourResourceEndpoint
koncovým bodem služeb Azure AI. Ujistěte se, že cesty zadané--input
a--output
jsou platné. Jinak je nutné změnit cesty.Důležité
Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.
Kontrola výsledků
Výstup konzoly zobrazuje úplnou konverzaci a souhrn. Tady je příklad celkového souhrnu s redakcemi pro stručnost:
Conversation summary:
issue: Customer wants to sign up for insurance.
resolution: Customer was advised that customer would be contacted by the insurance company.
Pokud zadáte --output FILE
volitelný argument, zapíše se do souboru verze výsledků JSON. Výstup souboru je kombinací odpovědí JSON z dávkového přepisu (Speech), mínění (jazyk) a rozhraní API pro sumarizaci konverzací (jazyk).
Vlastnost transcription
obsahuje objekt JSON s výsledky analýzy mínění sloučené s dávkovým přepisem. Tady je příklad s redakcemi pro stručnost:
{
"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
}
Vlastnost conversationAnalyticsResults
obsahuje objekt JSON s výsledky piI konverzace a analýzy souhrnu konverzací. Tady je příklad s redakcemi pro stručnost:
{
"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": []
}
]
}
}
}
Využití a argumenty
Použití: call-center -- [...]
Důležité
Můžete použít prostředek s více službami nebo samostatné prostředky jazyka a řeči . V obou případech musí hodnoty odpovídat prostředku, --languageKey
který je v jedné z oblastí podporovaných rozhraním API pro sumarizaci konverzací: eastus
, northeurope
a uksouth
.--languageEndpoint
Mezi možnosti připojení patří:
--speechKey KEY
: Vaše služby Azure AI nebo klíč prostředku služby Speech . Vyžaduje se pro přepisy zvuku--input
s možností z adresy URL.--speechRegion REGION
: Vaše služby Azure AI nebo oblast prostředků služby Speech . Vyžaduje se pro přepisy zvuku--input
s možností z adresy URL. Příklady:eastus
,northeurope
--languageKey KEY
: Vaše služby Azure AI nebo klíč prostředku jazyka . Povinný:--languageEndpoint ENDPOINT
: Vaše služby Azure AI nebo koncový bod prostředku jazyka . Povinný: Příklad:https://YourResourceName.cognitiveservices.azure.com
Mezi vstupní možnosti patří:
--input URL
: Vstup zvuku z adresy URL. Musíte nastavit buď tuto--input
možnost, nebo--jsonInput
možnost.--jsonInput FILE
: Zadejte existující výsledek JSON dávkového přepisu ze souboru FILE. S touto možností potřebujete pouze prostředek jazyka ke zpracování přepisu, který už máte. Díky této možnosti nepotřebujete zvukový soubor ani prostředek služby Speech. Přepisy--input
. Musíte nastavit buď tuto--input
možnost, nebo--jsonInput
možnost.--stereo
: Označuje, že zvuk přes "vstupní adresu URL" by měl být ve stereo formátu. Pokud stereo není zadáno, předpokládá se mono 16khz 16bitové soubory PCM wav. Diarizace mono souborů se používá k oddělení více reproduktorů. Diarizace stereo souborů není podporována, protože 2kanálové stereo soubory by už měly mít jeden reproduktor na kanál.--certificate
: Soubor certifikátu PEM. Požadováno pro C++.
Mezi jazykové možnosti patří:
--language LANGUAGE
: Jazyk, který se má použít k analýze mínění a analýze konverzací. Tato hodnota by měla být dvoumísmenný kód ISO 639-1. Výchozí hodnota jeen
.--locale LOCALE
: Národní prostředí, které se má použít k dávkovému přepisu zvuku. Výchozí hodnota jeen-US
.
Mezi možnosti výstupu patří:
--help
: Zobrazení nápovědy k používání a zastavení--output FILE
: Výstup přepisu, mínění, piI konverzace a souhrny konverzací ve formátu JSON do textového souboru. Další informace najdete v příkladech výstupu.
Vyčištění prostředků
Prostředek služby Azure AI, který jste vytvořili, můžete odebrat pomocí webu Azure Portal nebo rozhraní příkazového řádku Azure (CLI ).