Quickstart: Transcriptie en analyse na aanroepen
Taalservicedocumentatie | Language Studio | Speech-servicedocumentatie | Speech Studio
In deze C#-quickstart voert u sentimentanalyse en samenvatting van gesprekssamenvattingen van callcentertranscripties uit. In het voorbeeld wordt gevoelige informatie automatisch geïdentificeerd, gecategoraliseerd en opgeslagen. In de quickstart wordt een scenario voor meerdere services geïmplementeerd dat gebruikmaakt van functies van de Azure Cognitive Speech - en Azure Cognitive Language-services .
Tip
Probeer Language Studio of Speech Studio voor een demonstratie over het gebruik van de taal- en spraakservices om gesprekken in het callcenter te analyseren.
Als u een callcentertranscriptieoplossing wilt implementeren in Azure met een aanpak zonder code, probeert u de opnameclient.
De volgende Azure AI-services voor Spraak-functies worden gebruikt in de quickstart:
- Batchtranscriptie: dien een batch audiobestanden in voor transcriptie.
- Sprekerscheiding: Scheid meerdere luidsprekers door diarisatie van mono 16khz 16-bits PCM wav-bestanden.
De Taalservice biedt de volgende functies die worden gebruikt:
- PiI-extractie (Personally Identifiable Information) en redaction: identificeer, categoriseer en redact gevoelige informatie in gesprektranscriptie.
- Samenvatting van gesprekken: samenvatten in abstracte tekst wat elke gespreksdeelnemer zei over de problemen en oplossingen. Een callcenter kan bijvoorbeeld productproblemen groeperen die een hoog volume hebben.
- Sentimentanalyse en meninganalyse: transcripties analyseren en positief, neutraal of negatief gevoel koppelen op utterance- en gespreksniveau.
Vereisten
- Azure-abonnement: Krijg een gratis abonnement
- Maak een resource met meerdere services in Azure Portal. Voor deze quickstart is slechts één Azure AI-serviceresource voor meerdere services vereist. Met de voorbeeldcode kunt u afzonderlijke taal- en spraakresourcesleutels opgeven.
- Haal de resourcesleutel en regio op. Nadat uw Azure AI-servicesresource is geïmplementeerd, selecteert u Ga naar de resource om sleutels weer te geven en te beheren.
Belangrijk
Voor deze quickstart is toegang tot de samenvatting van gesprekken vereist. Als u toegang wilt krijgen, moet u een onlineaanvraag indienen en deze laten goedkeuren.
De --languageKey
waarden in --languageEndpoint
deze quickstart moeten overeenkomen met een resource die zich in een van de regio's bevindt die worden ondersteund door de samenvattings-API voor gesprekken: eastus
, northeurope
en uksouth
.
Transcriptieanalyse na aanroepen uitvoeren met C#
Volg deze stappen om het voorbeeld van een transcriptieanalyse na aanroep te bouwen en uit te voeren.
Kopieer de scenario's/csharp/dotnetcore/call-center/ samplebestanden van GitHub. Als Git is geïnstalleerd, opent u een opdrachtprompt en voert u de opdracht uit om de
git clone
opslagplaats met voorbeelden van de Speech SDK te downloaden.git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
Open een opdrachtprompt en ga naar de projectmap.
cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
Bouw het project met de .NET CLI.
dotnet build
Voer de toepassing uit met de gewenste opdrachtregelargumenten. Zie het gebruik en de argumenten voor de beschikbare opties.
Hier volgt een voorbeeld dat wordt getranscribeerd vanuit een voorbeeld-audiobestand op 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
Als u al een transcriptie voor invoer hebt, ziet u hier een voorbeeld waarvoor alleen een taalresource is vereist:
dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --jsonInput "YourTranscriptionFile.json" --stereo --output summary.json
Vervang
YourResourceKey
door de resourcesleutel van uw Azure AI-services, vervang deze doorYourResourceRegion
de resourceregio van uw Azure AI-services (zoalseastus
) en vervang deze doorYourResourceEndpoint
uw Azure AI-services-eindpunt. Zorg ervoor dat de paden die zijn opgegeven door--input
en--output
geldig zijn. Anders moet u de paden wijzigen.Belangrijk
Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.
Resultaten controleren
In de console-uitvoer ziet u het volledige gesprek en de samenvatting. Hier volgt een voorbeeld van de algemene samenvatting, met redactions voor beknoptheid:
Conversation summary:
issue: Customer wants to sign up for insurance.
resolution: Customer was advised that customer would be contacted by the insurance company.
Als u het --output FILE
optionele argument opgeeft, wordt een JSON-versie van de resultaten naar het bestand geschreven. De bestandsuitvoer is een combinatie van de JSON-antwoorden van de batchtranscriptie (Speech), sentiment (Language) en gesprekssamenvattings-API's (Language).
De transcription
eigenschap bevat een JSON-object met de resultaten van sentimentanalyse samengevoegd met batchtranscriptie. Hier volgt een voorbeeld, met redactions voor beknoptheid:
{
"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
}
De conversationAnalyticsResults
eigenschap bevat een JSON-object met de resultaten van de gespreks-PII en samenvattingsanalyse van gesprekken. Hier volgt een voorbeeld, met redactions voor beknoptheid:
{
"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": []
}
]
}
}
}
Gebruik en argumenten
Gebruik: call-center -- [...]
Belangrijk
U kunt een resource met meerdere services of afzonderlijke taal - en spraakresources gebruiken. In beide gevallen moeten de --languageKey
en --languageEndpoint
waarden overeenkomen met een resource die zich in een van de regio's bevindt die worden ondersteund door de samenvattings-API voor gesprekken: eastus
, northeurope
en uksouth
.
Verbindingsopties zijn onder andere:
--speechKey KEY
: Uw Azure AI-services of spraakresourcesleutel . Vereist voor audiotranscripties met de optie van de--input
URL.--speechRegion REGION
: Uw Azure AI-services of spraakresourceregio . Vereist voor audiotranscripties met de optie van de--input
URL. Voorbeelden:eastus
,northeurope
--languageKey KEY
: uw Azure AI-services of taalresourcesleutel . Vereist.--languageEndpoint ENDPOINT
: uw Azure AI-services of taalresource-eindpunt . Vereist. Voorbeeld:https://YourResourceName.cognitiveservices.azure.com
Invoeropties zijn onder andere:
-
--input URL
: Invoergeluid van URL. U moet de--input
of--jsonInput
optie instellen. -
--jsonInput FILE
: Voer een bestaand JSON-resultaat voor batchtranscriptie uit FILE in. Met deze optie hebt u alleen een taalresource nodig om een transcriptie te verwerken die u al hebt. Met deze optie hebt u geen audiobestand of een AI Services-resource voor Spraak nodig. Onderdrukkingen--input
. U moet de--input
of--jsonInput
optie instellen. -
--stereo
: Geeft aan dat de audio via ''input URL' in stereo-indeling moet zijn. Als stereo niet is opgegeven, worden mono 16khz 16-bits PCM wav-bestanden verondersteld. Diarisatie van monobestanden wordt gebruikt om meerdere luidsprekers te scheiden. Diarisatie van stereobestanden wordt niet ondersteund, omdat 2-kanaals stereobestanden al één luidspreker per kanaal moeten hebben. -
--certificate
: het PEM-certificaatbestand. Vereist voor C++.
Taalopties zijn onder andere:
-
--language LANGUAGE
: De taal die moet worden gebruikt voor sentimentanalyse en gespreksanalyse. Deze waarde moet een ISO 639-1-code van twee letters zijn. De standaardwaarde isen
. -
--locale LOCALE
: De landinstelling die moet worden gebruikt voor batchtranscriptie van audio. De standaardwaarde isen-US
.
Uitvoeropties zijn onder andere:
-
--help
: Gebruikshulp weergeven en stoppen -
--output FILE
: uitvoer van de transcriptie, het gevoel, de gespreks-PII en de gesprekssamenvattingen in JSON-indeling naar een tekstbestand. Zie de uitvoervoorbeelden voor meer informatie.
Resources opschonen
U kunt de Azure-portal of Azure CLI (Opdrachtregelinterface) gebruiken om de Azure AI-servicesresource te verwijderen die u hebt gemaakt.