Quickstart: Transcriptie en analyse na oproep
Documentatie | voor taalserviceLanguage Studio | Documentatie voor Speech-service | Speech Studio
In deze C#-quickstart voert u sentimentanalyse en gesprekssamenvatting van callcentertranscripties uit. In het voorbeeld worden gevoelige gegevens automatisch geïdentificeerd, gecategoraliseerd en bewerkt. 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 voor het analyseren van gesprekken in het callcenter.
Als u een oplossing voor callcentertranscriptie wilt implementeren in Azure 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.
- Luidsprekerscheiding: Scheid meerdere luidsprekers door diarisatie van mono 16khz 16-bits PCM wav-bestanden.
De Taalservice biedt de volgende functies die worden gebruikt:
- Extractie en redactie van persoonlijk identificeerbare informatie (PII): identificeer, categoriseer en rediger gevoelige informatie in gesprektranscriptie.
- Gesprekssamenvatting: vat in abstracte tekst samen wat elke gespreksdeelnemer heeft gezegd over de problemen en oplossingen. In een callcenter kunnen bijvoorbeeld productproblemen met een hoog volume worden gegroepeerd.
- Sentimentanalyse en meninganalyse: analyseer transcripties en koppel positief, neutraal of negatief gevoel op uitings- en gespreksniveau.
Vereisten
- Azure-abonnement: Krijg een gratis abonnement
- maken Maak een resource voor meerdere services in de Azure Portal. Voor deze quickstart is slechts één azure AI-servicesresource voor meerdere services vereist. Met de voorbeeldcode kunt u afzonderlijke taal en voor spraakresources opgeven.
- Haal de resourcesleutel en regio op. Nadat uw Azure AI-servicesresource is geïmplementeerd, selecteert u Ga naar resource om sleutels weer te geven en te beheren. Zie De sleutels voor uw resource ophalen voor meer informatie over azure AI-servicesresources.
Belangrijk
Voor deze quickstart is toegang tot gesprekssamenvatting vereist. Als u toegang wilt krijgen, moet u een onlineaanvraag indienen en deze laten goedkeuren.
De --languageKey
waarden en --languageEndpoint
in deze quickstart moeten overeenkomen met een resource die zich in een van de regio's bevindt die worden ondersteund door de API voor het samenvatten van gesprekken: eastus
, northeurope
en uksouth
.
Transcriptieanalyse na oproep uitvoeren met C#
Volg deze stappen om het snelstartvoorbeeld voor transcriptieanalyse na oproep te bouwen en uit te voeren.
Kopieer /csharp/dotnetcore/call-center/ voorbeeldbestanden van GitHub. Als u Git hebt geïnstalleerd, opent u een opdrachtprompt en voert u de opdracht uit om de
git clone
opslagplaats met Speech SDK-voorbeelden 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 gebruik en argumenten voor de beschikbare opties.
Hier volgt een voorbeeld dat wordt getranscribeerd vanuit een voorbeeldaudiobestand 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, volgt hier een voorbeeld waarvoor alleen een taalresource is vereist:
dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --jsonInput "YourTranscriptionFile.json" --stereo --output summary.json
Vervang door
YourResourceKey
de resourcesleutel van uw Azure AI-services, vervang doorYourResourceRegion
de resourceregio van uw Azure AI-services (zoalseastus
) en vervang doorYourResourceEndpoint
het eindpunt van uw Azure AI-services. 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 plaats deze sleutel nooit in het openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Beveiliging van Azure AI-services voor meer informatie.
Resultaten controleren
De console-uitvoer toont het volledige gesprek en de samenvatting. Hier volgt een voorbeeld van de algemene samenvatting, met bewerkingen voor de 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 API's voor batchtranscriptie (spraak), sentiment (taal) en gesprekssamenvatting (taal).
De transcription
eigenschap bevat een JSON-object met de resultaten van sentimentanalyse samengevoegd met batchtranscriptie. Hier volgt een voorbeeld, met bewerkingen voor de 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 gesprekssamenvattingsanalyse. Hier volgt een voorbeeld, met bewerkingen voor de 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 gebruiken of maken en scheiden. In beide gevallen moeten de --languageKey
waarden en --languageEndpoint
overeenkomen met een resource die zich in een van de regio's bevindt die worden ondersteund door de API voor het samenvatten van gesprekken: , eastus
northeurope
en uksouth
.
Verbindingsopties zijn onder andere:
--speechKey KEY
: uw Azure AI-services of Spraakresourcesleutel . Vereist voor audiotranscripties met de--input
optie van URL.--speechRegion REGION
: uw Azure AI-services of Spraakresourceregio . Vereist voor audiotranscripties met de--input
optie van 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
: Voer audio van URL in. U moet de--input
optie of--jsonInput
instellen.--jsonInput FILE
: Voer een bestaand JSON-resultaat voor batchtranscriptie in vanuit FILE. 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 spraakresource nodig. Overschrijft--input
. U moet de--input
optie of--jsonInput
instellen.--stereo
: geeft aan dat de audio via '''input URL' in stereo-indeling moet zijn. Als stereo niet is opgegeven, wordt uitgegaan van mono 16 kHz 16-bits PCM wav-bestanden. 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
: voer de transcriptie, het sentiment, de piI van het gesprek en de gesprekssamenvattingen in JSON-indeling uit naar een tekstbestand. Zie uitvoervoorbeelden voor meer informatie.
Resources opschonen
U kunt de Azure Portal of Azure Cli (Opdrachtregelinterface) gebruiken om de Azure AI-servicesresource die u hebt gemaakt, te verwijderen.