Tiefe neuronale Netze fĂŒr die automatische Anrufbewertung

Die Anrufbewertung ist ein wesentlicher Bestandteil der QualitĂ€tskontrolle fĂŒr Call Center. Unternehmen können damit ihren Workflow optimieren, sodass Bediener schneller und effizienter arbeiten und bedeutungslose Routinen vermeiden können.

In dem Bewusstsein, dass das Call Center effektiv sein sollte, haben wir an der Automatisierung der Anrufergebnisse gearbeitet. Als Ergebnis haben wir einen Algorithmus entwickelt, der Anrufe verarbeitet und in zwei Gruppen verteilt: verdÀchtig und neutral. Alle verdÀchtigen Anrufe wurden sofort an das QualitÀtsbewertungsteam gesendet.



Wie wir ein tiefes neuronales Netzwerk trainiert haben


FĂŒr die Samples haben wir 1700 Audiodateien genommen, auf denen wir das Netzwerk trainiert haben. Da das Neuron anfangs nicht wusste, was als verdĂ€chtig und was als neutral anzusehen war, haben wir alle Dateien manuell entsprechend markiert.

In neutralen Stichproben haben die Bediener:

  • erhoben ihre Stimmen nicht;
  • Stellen Sie den Kunden alle angeforderten Informationen zur VerfĂŒgung.
  • reagierte nicht auf Provokationen des Kunden.

In verdÀchtigen Mustern haben die Bediener hÀufig Folgendes getan:

  • benutzte obszöne Sprache;
  • ihre Stimmen erheben oder Kunden anschreien;
  • ging zu der Person;
  • weigerte sich, in Fragen zu beraten.

Als der Algorithmus die Verarbeitung der Dateien beendet hatte, markierte er 200 Dateien als ungĂŒltig. Diese Dateien enthielten keine verdĂ€chtigen oder neutralen Anzeichen. Wir haben herausgefunden, was in diesen 200 Dateien enthalten ist:

  • Der Kunde legte sofort auf, nachdem der Betreiber ihm geantwortet hatte.
  • der Klient sagte nichts, nachdem er beantwortet worden war;
  • Es gab zu viel LĂ€rm auf der Client- oder Bedienerseite.

Beim Löschen dieser Dateien haben wir die verbleibenden 1.500 in Schulungs- und TestfÀlle unterteilt. In Zukunft haben wir diese DatensÀtze zum Trainieren und Testen eines tiefen neuronalen Netzwerks verwendet.

Schritt 1: Features extrahieren


Die Extraktion von Merkmalen auf hoher Ebene spielt eine wichtige Rolle beim maschinellen Lernen Dies wirkt sich direkt auf die Effizienz des Algorithmus aus. Nachdem wir alle möglichen Quellen analysiert hatten, wÀhlten wir die folgenden Symptome aus:

Zeitstatistik


  • Nulldurchgangsrate : Die Geschwindigkeit, mit der sich das Signal von Plus nach Minus und umgekehrt Ă€ndert.
  • Mittlere Rahmenenergie : Die Summe der Signale, die quadriert und auf die entsprechende RahmenlĂ€nge normiert sind.
  • Subframe-Energieentropie : Die Entropie der normalisierten Subframe-Energie. Es kann als Maß fĂŒr drastische VerĂ€nderungen interpretiert werden.
  • Der Durchschnitt / Median / Standardabweichung des Rahmens .

Spektralstatistik (mit Frequenzintervallen)


  1. Spektralschwerpunkt.
  2. Spektralverteilung.
  3. Spektrale Entropie.
  4. Spektrale Strahlung.
  5. Spektrale DĂ€mpfung.

Die Cepstralkoeffizienten der Tonfrequenz und des SĂ€ttigungsvektors sind abhĂ€ngig von der LĂ€nge des Eingangssignals. Wir könnten sie gleichzeitig aus der gesamten Datei extrahieren, wĂŒrden jedoch die Entwicklung des Merkmals rechtzeitig verpassen. Da diese Methode nicht zu uns passte, haben wir beschlossen, das Signal in „Fenster“ (Zeitblöcke) zu unterteilen.

Um die QualitĂ€t des Zeichens zu verbessern, haben wir das Signal in StĂŒcke zerlegt, die sich teilweise ĂŒberlappten. Als nĂ€chstes extrahierten wir das Tag nacheinander fĂŒr jeden Block. Daher wurde die Attributmatrix fĂŒr jede Audiodatei berechnet.

FenstergrĂ¶ĂŸe - 0,2 s; Fensterschritt - 0,1 s.

Schritt 2: Definieren Sie den Tonfall in separaten SĂ€tzen


Unser erster Ansatz zur Lösung des Problems besteht darin, jede Phrase im Stream separat zu definieren und zu verarbeiten.

Zuerst haben wir die Diarisierung durchgefĂŒhrt und alle Phrasen mithilfe der LIUM- Bibliothek isoliert . Die Eingabedateien waren von schlechter QualitĂ€t, daher haben wir bei der Ausgabe auch GlĂ€ttung und adaptive Schwellenwerte fĂŒr jede Datei angewendet.



Verarbeitungsunterbrechungen und lange Stille


Als wir die Fristen fĂŒr jede Phrase (sowohl fĂŒr den Kunden als auch fĂŒr den Operator) festgelegt haben, haben wir sie einander ĂŒberlagert und FĂ€lle aufgedeckt, in denen beide Personen gleichzeitig sprechen, sowie FĂ€lle, in denen beide schweigen. Es blieb nur die Bestimmung des Schwellenwertes. Wir waren uns einig, dass wenn 3 oder mehr Sekunden die Teilnehmer gleichzeitig sprechen, dies als Unterbrechung angesehen wird. FĂŒr die Stille wurde genau ein Schwellenwert von 3 Sekunden eingestellt.



Der Punkt ist, dass jede Phrase ihre eigene LĂ€nge hat. Folglich ist die Anzahl der extrahierten Merkmale fĂŒr jede Phrase unterschiedlich.

Das neuronale LSTM- Netzwerk könnte dieses Problem lösen. Netzwerke dieser Art können nicht nur Sequenzen unterschiedlicher LÀnge verarbeiten, sondern auch Feedback enthalten, mit dem Sie Informationen speichern können. Diese Funktionen sind sehr wichtig, da zuvor gesprochene Phrasen Informationen enthalten, die sich auf die danach gesprochenen Phrasen auswirken.


Dann haben wir unser LSTM-Netzwerk trainiert, um die Intonation jeder Phrase zu bestimmen.

Als Trainingsset haben wir 70 Dateien mit durchschnittlich 30 Phrasen (15 Phrasen fĂŒr jede Seite) genommen.

Das Hauptziel war es, die Phrasen des Call-Center-Betreibers zu bewerten, sodass wir die Client-Sprache nicht fĂŒr Schulungen verwendeten. Wir haben 750 SĂ€tze als Trainingsdatensatz und 250 SĂ€tze als Test verwendet. Infolgedessen lernte das Neuron, Sprache mit einer Genauigkeit von 72% zu klassifizieren.

Letztendlich waren wir jedoch mit der Leistung des LSTM-Netzwerks nicht zufrieden: Die Arbeit damit hat zu lange gedauert, wÀhrend die Ergebnisse alles andere als perfekt sind. Daher wurde beschlossen, einen anderen Ansatz zu verwenden.

Es ist Zeit zu erzÀhlen, wie wir den Ton der Stimme mit XGBoost plus einer Kombination aus LSTM und XGB bestimmt haben.

Bestimmen Sie den Sprachton fĂŒr die gesamte Datei


Wir haben Dateien als verdĂ€chtig markiert, wenn sie mindestens einen Satz enthielten, der gegen die Regeln verstieß. Also haben wir 2500 Dateien markiert.

Um Attribute zu extrahieren, haben wir dieselbe Methode und dieselbe ANN- Architektur verwendet, jedoch mit einem Unterschied: Wir haben die Architektur so skaliert, dass sie den neuen Dimensionen der Attribute entspricht.

Bei optimalen Parametern ergab das neuronale Netzwerk eine Genauigkeit von 85%.


XGBoost


Das XGBoost-Modell erfordert eine feste Anzahl von Attributen fĂŒr jede Datei. Um diese Anforderung zu erfĂŒllen, haben wir verschiedene Signale und Parameter erstellt.



Die folgenden Statistiken wurden verwendet:

  1. Der Durchschnittswert des Signals.
  2. Der Durchschnittswert der ersten 10 Sekunden des Signals.
  3. Der Durchschnittswert der letzten 3 Sekunden des Signals.
  4. Der Durchschnittswert der lokalen Maxima im Signal.
  5. Der Durchschnittswert der lokalen Maxima in den ersten 10 Sekunden des Signals.
  6. Der Durchschnittswert der lokalen Maxima in den letzten 3 Sekunden des Signals.

Alle Indikatoren wurden fĂŒr jedes Signal separat berechnet. Die Gesamtzahl der Attribute betrĂ€gt 36, mit Ausnahme der LĂ€nge des Datensatzes. Als Ergebnis hatten wir 37 numerische Vorzeichen fĂŒr jeden Datensatz.

Die Vorhersagegenauigkeit dieses Algorithmus betrÀgt 0,869.

Kombination von LSTM und XGB


Um die Klassifikatoren zu kombinieren, haben wir diese beiden Modelle gekreuzt. Am Ausgang erhöhte dies die Genauigkeit um 2%.


Das heißt, wir konnten die Vorhersagegenauigkeit auf 0,9 ROC - AUC (Area Under Curve) erhöhen.

Ergebnis


Wir haben unser tiefes neuronales Netzwerk an 205 Dateien getestet (177 neutral, 28 verdÀchtig). Das Netzwerk musste jede Datei verarbeiten und entscheiden, zu welcher Gruppe sie gehört. Das Folgende sind die Ergebnisse:

  • 170 neutrale Dateien wurden korrekt identifiziert;
  • 7 neutrale Dateien wurden als verdĂ€chtig identifiziert;
  • 13 verdĂ€chtige Dateien wurden korrekt identifiziert;
  • 15 verdĂ€chtige Dateien wurden als neutral identifiziert.

Um den Prozentsatz der korrekten / falschen Ergebnisse abzuschÀtzen, haben wir die Fehlermatrix in Form einer 2x2-Tabelle verwendet.

Suchen Sie eine bestimmte Phrase in einem GesprÀch


Wir wollten diesen Ansatz unbedingt ausprobieren, um Wörter und Phrasen in Audiodateien zu erkennen. Ziel war es, Dateien zu finden, in denen der Callcenter-Betreiber den Kunden in den ersten 10 Sekunden des GesprÀchs nicht prÀsentiert wurde.

Wir haben 200 SĂ€tze mit einer durchschnittlichen LĂ€nge von 1,5 Sekunden verwendet, in denen die Betreiber ihren Namen und Firmennamen nennen.

Das manuelle Suchen nach solchen Dateien hat lange gedauert, weil Ich musste mir jede Datei anhören, um zu ĂŒberprĂŒfen, ob sie die erforderlichen SĂ€tze enthielt. Um das weitere Training zu beschleunigen, haben wir den Datensatz „kĂŒnstlich“ vergrĂ¶ĂŸert: Wir haben jede Datei sechsmal zufĂ€llig geĂ€ndert - Rauschen hinzugefĂŒgt, Frequenz und / oder LautstĂ€rke geĂ€ndert. Wir haben also einen Datensatz von 1.500 Dateien erhalten.

Zusammenfassung


Wir haben die ersten 10 Sekunden der Antwort des Bedieners verwendet, um den Klassifikator zu trainieren, da in diesem Intervall die gewĂŒnschte Phrase ausgesprochen wurde. Jede solche Passage wurde in Fenster unterteilt (FensterlĂ€nge 1,5 s, Fensterschritt 1 s) und vom neuronalen Netzwerk als Eingabedatei verarbeitet. Als Ausgabedatei haben wir die Wahrscheinlichkeit erhalten, jede Phrase im ausgewĂ€hlten Fenster auszusprechen.


Wir haben weitere 300 Dateien durch das Netzwerk geleitet, um herauszufinden, ob die gewĂŒnschte Phrase in den ersten 10 Sekunden gesprochen wurde. FĂŒr diese Dateien betrug die Genauigkeit 87%.

WofĂŒr ist das alles eigentlich?


Die automatische Anrufbewertung hilft dabei, klare KPIs fĂŒr Call Center-Betreiber zu ermitteln, Best Practices hervorzuheben und zu befolgen sowie die Call Center-Leistung zu steigern. Es ist jedoch anzumerken, dass Spracherkennungssoftware fĂŒr ein breiteres Spektrum von Aufgaben verwendet werden kann.

Im Folgenden finden Sie einige Beispiele, wie die Spracherkennung Organisationen helfen kann:

  • Sammeln und Analysieren von Daten zur Verbesserung der Sprach-UX;
  • Anrufaufzeichnungen analysieren, um Beziehungen und Trends zu identifizieren;
  • Menschen durch Stimme erkennen;
  • Finden und identifizieren Sie Kundenemotionen, um die Benutzerzufriedenheit zu verbessern
  • Steigerung des durchschnittlichen Umsatzes pro Anruf;
  • Abfluss reduzieren;
  • und vieles mehr!

Source: https://habr.com/ru/post/de428598/


All Articles