Rövid útmutató: Hívás utáni átírás és elemzés
A Language Service dokumentációja | A Language Studio | Speech service dokumentációja | a Speech Studióban
Ebben a C#-rövid útmutatóban hangulatelemzést és beszélgetés-összegzést végez a call center átirataiból. A minta automatikusan azonosítja, kategorizálja és újra megjeleníti a bizalmas információkat. A rövid útmutató egy szolgáltatásközi forgatókönyvet valósít meg, amely az Azure Cognitive Speech és az Azure Cognitive Language szolgáltatások funkcióit használja.
Tipp.
Próbálja ki a Language Studio vagy a Speech Studio bemutatóját arról, hogyan használhatja a Language and Speech szolgáltatást a call center-beszélgetések elemzéséhez.
Ha kód nélküli módszerrel szeretne üzembe helyezni egy call center-átírási megoldást az Azure-ban, próbálja ki a Betöltési ügyfelet.
A rövid útmutató az alábbi Azure AI-szolgáltatásokat használja a Speech szolgáltatáshoz:
- Kötegelt átírás: Hangfájlok kötegének elküldése átírásra.
- Hangszórók elkülönítése: Több hangszóró elkülönítése mono 16khz 16 bites PCM-wav fájlok diarizálásával.
A Language szolgáltatás a következő funkciókat kínálja:
- Személyazonosításra alkalmas adatok kinyerése és újrabontása: Bizalmas információk azonosítása, kategorizálása és újrajátszása a beszélgetés átírásában.
- Beszélgetés összegzése: Összegezze absztrakt szövegben, hogy az egyes beszélgetés résztvevői mit mondtak a problémákról és a megoldásról. A call center például csoportosíthatja a nagy mennyiségű termékekkel kapcsolatos problémákat.
- Hangulatelemzés és véleménybányászat: Átiratok elemzése és pozitív, semleges vagy negatív hangulat társítása kimondott és beszélgetési szinten.
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Hozzon létre egy többszolgáltatásos erőforrást az Azure Portalon. Ehhez a rövid útmutatóhoz csak egy többszolgáltatásos Azure AI-szolgáltatásokra van szükség. A mintakód lehetővé teszi, hogy külön Nyelvi és Beszéd erőforráskulcsokat adjon meg.
- Kérje le az erőforráskulcsot és a régiót. Az Azure AI-szolgáltatások erőforrásának üzembe helyezése után válassza az Ugrás az erőforrásra lehetőséget a kulcsok megtekintéséhez és kezeléséhez.
Fontos
Ez a rövid útmutató hozzáférést igényel a beszélgetések összegzéséhez. A hozzáféréshez be kell küldenie egy online kérelmet , és jóvá kell hagynia.
A --languageKey
rövid útmutatóban szereplő értékeknek --languageEndpoint
meg kell felelnie egy erőforrásnak, amely a beszélgetés-összefoglaló API által támogatott régiók egyikében található: eastus
, northeurope
és uksouth
.
Hívás utáni átírási elemzés futtatása C-vel#
Kövesse az alábbi lépéseket a hívás utáni átiratelemzés gyorsútmutató-példa létrehozásához és futtatásához.
Másolja ki a forgatókönyveket/csharp/dotnetcore/call-center/ mintafájlokat a GitHubról. Ha telepítve van a Git, nyisson meg egy parancssort, és futtassa a
git clone
parancsot a Speech SDK-minták adattárának letöltéséhez.git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
Nyisson meg egy parancssort, és váltson a projektkönyvtárra.
cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
Hozza létre a projektet a .NET CLI-vel.
dotnet build
Futtassa az alkalmazást az előnyben részesített parancssori argumentumokkal. Tekintse meg a rendelkezésre álló lehetőségek használatát és argumentumait .
Íme egy példa, amely átír egy példa hangfájlt a GitHubon:
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
Ha már rendelkezik átírással a bemenethez, íme egy példa, amely csak nyelvi erőforrást igényel:
dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --jsonInput "YourTranscriptionFile.json" --stereo --output summary.json
Cserélje le
YourResourceKey
az Azure AI-szolgáltatások erőforráskulcsát, cserélje leYourResourceRegion
az Azure AI-szolgáltatások erőforrásrégiójára (példáuleastus
), és cserélje leYourResourceEndpoint
az Azure AI-szolgáltatások végpontjára. Győződjön meg arról, hogy a megadott--input
és--output
érvényes elérési utak érvényesek. Ellenkező esetben módosítania kell az elérési utakat.Fontos
Ne felejtse el eltávolítani a kulcsot a kódból, amikor elkészült, és soha ne tegye közzé nyilvánosan. Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. További információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
Eredmények ellenőrzése
A konzol kimenete a teljes beszélgetést és összegzést jeleníti meg. Íme egy példa az általános összefoglalásra, a rövidítésekre vonatkozó redakciókkal:
Conversation summary:
issue: Customer wants to sign up for insurance.
resolution: Customer was advised that customer would be contacted by the insurance company.
Ha megadja az --output FILE
opcionális argumentumot, a rendszer az eredmények JSON-verzióját írja a fájlba. A fájlkimenet a kötegátírásból (Speech), a hangulatból (nyelv) és a beszélgetési összegzésből (Language) származó JSON-válaszok kombinációja.
A transcription
tulajdonság egy JSON-objektumot tartalmaz, amely a hangulatelemzés eredményeit kötegátírással egyesítette. Íme egy példa, a rövidség kedvéért:
{
"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
}
A conversationAnalyticsResults
tulajdonság egy JSON-objektumot tartalmaz a beszélgetési PII és a beszélgetés összegzési elemzésének eredményeivel. Íme egy példa, a rövidség kedvéért:
{
"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": []
}
]
}
}
}
Használat és argumentumok
Használat: call-center -- [...]
Fontos
Használhat többszolgáltatásos erőforrást, vagy külön Nyelvi és Beszéd típusú erőforrásokat. Mindkét esetben az és --languageEndpoint
az --languageKey
értékeknek meg kell egyeznie egy erőforrással, amely a beszélgetés összegzési API által támogatott régiók egyikében található: eastus
, northeurope
és uksouth
.
A kapcsolati lehetőségek a következők:
--speechKey KEY
: Az Azure AI-szolgáltatások vagy a Speech erőforráskulcsa. A hangátiratokhoz szükséges az--input
URL-cím beállítással.--speechRegion REGION
: Az Azure AI-szolgáltatások vagy a Speech-erőforrásrégió . A hangátiratokhoz szükséges az--input
URL-cím beállítással. Példák:eastus
,northeurope
--languageKey KEY
: Az Azure AI-szolgáltatások vagy nyelvi erőforráskulcs. Szükséges.--languageEndpoint ENDPOINT
: Az Azure AI-szolgáltatások vagy a nyelvi erőforrásvégpont. Szükséges. Példa:https://YourResourceName.cognitiveservices.azure.com
A bemeneti lehetőségek a következők:
--input URL
: Hang bevitele URL-címről. A beállítást vagy--jsonInput
a--input
beállítást kell megadnia.--jsonInput FILE
: Adjon meg egy meglévő kötegátírási JSON-eredményt a FILE-ból. Ezzel a beállítással csak egy nyelvi erőforrásra van szüksége a már meglévő átirat feldolgozásához. Ezzel a beállítással nincs szükség hangfájlra vagy Speech-erőforrásra. Felülbírálások--input
. A beállítást vagy--jsonInput
a--input
beállítást kell megadnia.--stereo
: Azt jelzi, hogy a "bemeneti URL-címen" keresztüli hangnak sztereó formátumban kell lennie. Ha a sztereó nincs megadva, akkor a rendszer mono 16khz 16 bites PCM wav fájlokat feltételez. A monofájlok diarizálása több hangszóró elválasztására szolgál. A sztereó fájlok diarizálása nem támogatott, mivel a kétcsatornás sztereó fájloknak csatornánként egy hangszóróval kell rendelkezniük.--certificate
: A PEM-tanúsítványfájl. A C++-hoz szükséges.
A nyelvi lehetőségek a következők:
--language LANGUAGE
: A hangulatelemzéshez és a beszélgetéselemzéshez használandó nyelv. Ennek az értéknek kétbetűs ISO 639-1 kódnak kell lennie. Az alapértelmezett értéken
.--locale LOCALE
: A hang kötegelt átírásához használandó területi beállítás. Az alapértelmezett értéken-US
.
A kimeneti lehetőségek a következők:
--help
: A használati súgó megjelenítése és leállítása--output FILE
: JSON formátumban adja ki az átiratot, a hangulatot, a beszélgetési PII-t és a beszélgetés összefoglalóit egy szövegfájlba. További információkért lásd a kimeneti példákat.
Az erőforrások eltávolítása
Az Azure Portal vagy az Azure Parancssori felület (CLI) használatával eltávolíthatja a létrehozott Azure AI-szolgáltatások erőforrását.