Szybki start: transkrypcja i analiza po wywołaniu
Dokumentacja usługi językowej | Language Studio | Dokumentacja | usługi MowaSpeech Studio
W tym przewodniku Szybki start w języku C# przeprowadzisz analizę tonacji i podsumowanie konwersacji transkrypcji centrum telefonicznego . Przykład automatycznie identyfikuje, kategoryzuje i redaguje poufne informacje. Przewodnik Szybki start implementuje scenariusz między usługami, który korzysta z funkcji usług Azure Cognitive Speech i Azure Cognitive Language Services.
Porada
Wypróbuj program Language Studio lub Speech Studio , aby dowiedzieć się, jak używać usług Language and Speech do analizowania konwersacji w centrum połączeń.
Aby wdrożyć rozwiązanie transkrypcji centrum połączeń na platformie Azure z podejściem bez kodu, wypróbuj klienta pozyskiwania.
W przewodniku Szybki start są używane następujące usługi azure AI dla funkcji rozpoznawania mowy:
- Transkrypcja wsadowa: przesyłanie partii plików audio na potrzeby transkrypcji.
- Separacja głośników: oddzielaj wiele głośników przez diaryzacja 16khz 16-bitowych plików PCM.
Usługa językowa oferuje następujące funkcje, które są używane:
- Wyodrębnianie i redagowanie danych osobowych (PII): identyfikowanie, kategoryzowanie i redagowanie poufnych informacji w transkrypcji konwersacji.
- Podsumowanie konwersacji: podsumuj w tekście abstrakcyjnym, co każdy uczestnik konwersacji powiedział o problemach i rozwiązaniach. Na przykład centrum telefoniczne może grupować problemy z produktami, które mają dużą ilość.
- Analiza tonacji i eksploracja opinii: analizowanie transkrypcji i kojarzenie pozytywnych, neutralnych lub negatywnych tonacji na poziomie wypowiedzi i konwersacji.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- z wieloma usługami w Azure Portal. Ten przewodnik Szybki start wymaga tylko jednego zasobu usługi Azure AI z wieloma usługami. Przykładowy kod umożliwia określenie i .
- Pobierz klucz zasobu i region. Po wdrożeniu zasobu usług Azure AI wybierz pozycję Przejdź do zasobu , aby wyświetlić klucze i zarządzać nimi. Aby uzyskać więcej informacji na temat zasobów usług Azure AI, zobacz Pobieranie kluczy dla zasobu.
Ważne
Ten przewodnik Szybki start wymaga dostępu do podsumowania konwersacji. Aby uzyskać dostęp, musisz przesłać żądanie online i zatwierdzić go.
Wartości --languageKey
i --languageEndpoint
w tym przewodniku Szybki start muszą odpowiadać zasobowi, który znajduje się w jednym z regionów obsługiwanych przez interfejs API podsumowania konwersacji: eastus
, northeurope
i uksouth
.
Uruchamianie analizy transkrypcji po wywołaniu za pomocą języka C#
Wykonaj następujące kroki, aby skompilować i uruchomić przykład kodu szybki start analizy transkrypcji po wywołaniu.
Skopiuj scenariusze/csharp/dotnetcore/call-center/ przykładowe pliki z usługi GitHub. Jeśli masz zainstalowaną usługę Git, otwórz wiersz polecenia i uruchom
git clone
polecenie , aby pobrać repozytorium przykładów zestawu Speech SDK.git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
Otwórz wiersz polecenia i przejdź do katalogu projektu.
cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
Skompiluj projekt za pomocą interfejsu wiersza polecenia platformy .NET.
dotnet build
Uruchom aplikację z preferowanymi argumentami wiersza polecenia. Aby uzyskać dostępne opcje, zobacz użycie i argumenty .
Oto przykład transkrypcji z przykładowego pliku audio w usłudze 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
Jeśli masz już transkrypcję danych wejściowych, oto przykład, który wymaga tylko zasobu Języka:
dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --jsonInput "YourTranscriptionFile.json" --stereo --output summary.json
Zastąp
YourResourceKey
ciąg kluczem zasobu usług Azure AI, zastąp elementYourResourceRegion
regionem zasobów usług Azure AI (takim jakeastus
), a następnie zastąp ciągYourResourceEndpoint
punktem końcowym usług Azure AI. Upewnij się, że ścieżki określone przez--input
i--output
są prawidłowe. W przeciwnym razie należy zmienić ścieżki.Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.
Sprawdzanie wyników
Dane wyjściowe konsoli zawierają pełną konwersację i podsumowanie. Oto przykład ogólnego podsumowania z funkcjami redactions dla zwięzłości:
Conversation summary:
issue: Customer wants to sign up for insurance.
resolution: Customer was advised that customer would be contacted by the insurance company.
Jeśli określisz --output FILE
opcjonalny argument, do pliku zostanie zapisana wersja JSON wyników. Dane wyjściowe pliku to kombinacja odpowiedzi JSON z interfejsów API transkrypcji wsadowej (mowa), tonacji (język) i podsumowania konwersacji (język).
Właściwość transcription
zawiera obiekt JSON z wynikami analizy tonacji scalonej z transkrypcją wsadową. Oto przykład z redactions for brevity:
{
"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
}
Właściwość conversationAnalyticsResults
zawiera obiekt JSON z wynikami analizy podsumowania konwersacji i konwersacji. Oto przykład z redactions for brevity:
{
"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": []
}
]
}
}
}
Użycie i argumenty
Użycie: call-center -- [...]
Ważne
lub . W obu przypadkach --languageKey
wartości i --languageEndpoint
muszą odpowiadać zasobowi, który znajduje się w jednym z regionów obsługiwanych przez interfejs API podsumowania konwersacji: eastus
, northeurope
i uksouth
.
Opcje połączenia obejmują:
--speechKey KEY
: lub . Wymagane do transkrypcji audio z opcją--input
z adresu URL.--speechRegion REGION
: lub w regionie. Wymagane do transkrypcji audio z opcją--input
z adresu URL. Przykłady:eastus
,northeurope
--languageEndpoint ENDPOINT
: lub utwórz punkt końcowy . Wymagane. Przykład:https://YourResourceName.cognitiveservices.azure.com
Opcje wejściowe obejmują:
--input URL
: wprowadzanie dźwięku z adresu URL. Musisz ustawić--input
opcję lub--jsonInput
.--jsonInput FILE
: Wprowadź istniejący wynik JSON transkrypcji wsadowej z pliku. Dzięki tej opcji wystarczy zasób Języka, aby przetworzyć już istniejącą transkrypcję. Ta opcja nie wymaga pliku audio ani zasobu usługi Mowa.--input
Zastępuje . Musisz ustawić--input
opcję lub--jsonInput
.--stereo
: wskazuje, że dźwięk za pośrednictwem ""wejściowego adresu URL" powinien być w formacie stereo. Jeśli nie określono stereo, zakłada się, że zakłada się, że pliki 16-bitowe PCM są 16-bitowe. Diaryzacja plików mono służy do oddzielania wielu głośników. Diaryzacja plików stereo nie jest obsługiwana, ponieważ pliki stereo 2-kanałowe powinny mieć już jeden głośnik na kanał.--certificate
: plik certyfikatu PEM. Wymagane dla języka C++.
Opcje języka obejmują:
--language LANGUAGE
: język używany do analizy tonacji i analizy konwersacji. Ta wartość powinna być dwuliterowym kodem ISO 639-1. Wartość domyślna toen
.--locale LOCALE
: ustawienia regionalne do użycia na potrzeby transkrypcji wsadowej dźwięku. Wartość domyślna toen-US
.
Opcje danych wyjściowych obejmują:
--help
: Pokaż pomoc dotyczącą użycia i zatrzymaj--output FILE
: wyprowadza transkrypcję, tonację, dane osobowe konwersacji i podsumowania konwersacji w formacie JSON do pliku tekstowego. Aby uzyskać więcej informacji, zobacz przykłady danych wyjściowych.
Czyszczenie zasobów
Aby usunąć utworzony zasób usług Azure AI, możesz użyć Azure Portal interfejsu wiersza polecenia platformy Azure lub interfejsu wiersza polecenia platformy Azure.