L'évaluation des appels est un élément clé du contrôle qualité des centres d'appels. Il permet aux organisations d'affiner leur flux de travail afin que les opérateurs puissent travailler plus rapidement et plus efficacement et également éviter une routine vide de sens.
Conscient que le centre d'appels doit être efficace, nous avons travaillé sur l'automatisation des scores d'appels. En conséquence, nous avons trouvé un algorithme qui traite les appels et les répartit en deux groupes: suspects et neutres. Tous les appels suspects ont été immédiatement envoyés à l'équipe d'évaluation de la qualité.
Comment nous avons formé un réseau neuronal profond
Pour les échantillons, nous avons pris 1700 fichiers audio, sur lesquels nous avons formé le réseau. Comme le neurone ne savait pas au départ ce qu'il fallait considérer comme suspect et ce qui était neutre, nous avons marqué manuellement tous les fichiers en conséquence.
Dans les échantillons neutres, les opérateurs:
- n'ont pas élevé la voix;
- Fournir aux clients toutes les informations demandées;
- n'a pas répondu aux provocations du client.
Dans les schémas suspects, les opérateurs faisaient souvent ce qui suit:
- utilisé un langage obscène;
- élever la voix ou crier aux clients;
- est allé à la personne;
- a refusé de conseiller sur les questions.
Lorsque l'algorithme a fini de traiter les fichiers, il a marqué 200 fichiers comme non valides. Ces fichiers ne contiennent aucun signe suspect ou neutre. Nous avons découvert ce qu'il y avait dans ces 200 fichiers:
- le client a raccroché immédiatement après que l'opérateur lui a répondu;
- le client n'a rien dit après avoir reçu une réponse;
- il y avait trop de bruit côté client ou opérateur.
Lorsque nous avons supprimé ces fichiers, nous avons divisé les 1 500 restants en cas de formation et de test. À l'avenir, nous avons utilisé ces ensembles de données pour former et tester un réseau neuronal profond.
Étape 1: Extraire les fonctionnalités
L'extraction de fonctionnalités de haut niveau joue un rôle important dans l'apprentissage automatique, car cela affecte directement l'efficacité de l'algorithme. Après avoir analysé toutes les sources possibles, nous avons sélectionné les symptômes suivants:
Statistiques de temps
- Taux de passage à zéro : vitesse à laquelle le signal passe de plus à moins et vice versa.
- Énergie médiane de la trame : somme des signaux au carré et normalisée à la longueur de trame correspondante.
- Entropie d'énergie de sous-trame : l'entropie de l'énergie de sous-trame normalisée. Il peut être interprété comme une mesure de changements drastiques.
- L'écart moyen / médian / standard du cadre .
Statistiques spectrales (avec intervalles de fréquence)
- Spectral Centroid.
- Distribution spectrale.
- Entropie spectrale.
- Rayonnement spectral.
- Atténuation spectrale.
Les coefficients cepstraux de la fréquence tonale et du vecteur de saturation sont sensibles à la longueur du signal d'entrée. Nous pourrions les extraire de l'ensemble du fichier à la fois, mais ce faisant, nous manquerions le développement du trait à temps. Cette méthode ne nous convenant pas, nous avons décidé de diviser le signal en «fenêtres» (blocs de temps).
Pour améliorer la qualité du signe, nous avons divisé le signal en morceaux, qui se chevauchaient partiellement. Ensuite, nous avons extrait la balise séquentiellement pour chaque morceau; par conséquent, la matrice d'attributs a été calculée pour chaque fichier audio.
Taille de la fenêtre - 0,2 s; pas de fenêtre - 0,1 s.
Étape 2: définir le ton de la voix dans des phrases distinctes
Notre première approche pour résoudre le problème consiste à définir et à traiter chaque phrase dans le flux séparément.
Tout d'abord, nous avons fait la
diarisation et
isolé toutes les phrases en utilisant la bibliothèque
LIUM . Les fichiers d'entrée étaient de mauvaise qualité, donc à la sortie, nous avons également appliqué un lissage et un seuillage adaptatif pour chaque fichier.
Traitement des interruptions et long silence
Lorsque nous avons déterminé les limites de temps pour chaque phrase (à la fois le client et l'opérateur), nous les avons superposées et avons révélé des cas où les deux personnes parlent en même temps, ainsi que des cas où les deux sont silencieux. Il ne restait plus qu'à déterminer la valeur seuil. Nous avons convenu que si 3 secondes ou plus les participants parlent en même temps, cela est considéré comme une interruption. Pour le silence, un seuil de 3 secondes a été défini exactement.
Le fait est que chaque phrase a sa propre longueur. Par conséquent, le nombre d'entités extraites pour chaque phrase est différent.
Le réseau neuronal
LSTM pourrait gérer ce problème. Les réseaux de ce type peuvent non seulement traiter des séquences de différentes longueurs, mais ils peuvent également contenir des commentaires, ce qui vous donne la possibilité d'enregistrer des informations. Ces fonctionnalités sont très importantes car les phrases prononcées plus tôt contiennent des informations qui affectent les phrases prononcées après.
Ensuite, nous avons formé notre réseau LSTM pour déterminer l'intonation de chaque phrase.
En tant qu'ensemble de formation, nous avons pris 70 fichiers avec 30 phrases en moyenne (15 phrases de chaque côté).
L'objectif principal était d'évaluer les phrases de l'opérateur du centre d'appels, nous n'avons donc pas utilisé la parole du client pour la formation. Nous avons utilisé 750 phrases comme un ensemble de données de formation et 250 phrases comme un test. En conséquence, le neurone a appris à classer la parole avec une précision de 72%.
Mais au final, nous n'avons pas été satisfaits des performances du réseau LSTM: travailler avec lui a pris trop de temps, alors que les résultats sont loin d'être parfaits. Par conséquent, il a été décidé d'utiliser une approche différente.
Il est temps de dire comment nous avons déterminé le ton de la voix à l'aide de
XGBoost plus une combinaison de LSTM et XGB.
Déterminer la tonalité vocale de l'ensemble du fichier
Nous avons marqué les fichiers comme suspects s'ils contenaient au moins une phrase qui violait les règles. Nous avons donc tagué 2500 fichiers.
Pour extraire les attributs, nous avons utilisé la même méthode et la même architecture
ANN , mais avec une différence: nous avons dimensionné l'architecture pour qu'elle s'adapte aux nouvelles dimensions des attributs.
Avec des paramètres optimaux, le réseau neuronal a produit une précision de 85%.
XGBoost
Le modèle XGBoost nécessite un nombre fixe d'attributs pour chaque fichier. Pour satisfaire cette exigence, nous avons créé plusieurs signaux et paramètres.
Les statistiques suivantes ont été utilisées:
- La valeur moyenne du signal.
- La valeur moyenne des 10 premières secondes du signal.
- La valeur moyenne des 3 dernières secondes du signal.
- La valeur moyenne des maxima locaux dans le signal.
- La valeur moyenne des maxima locaux dans les 10 premières secondes du signal.
- La valeur moyenne des maxima locaux au cours des 3 dernières secondes du signal.
Tous les indicateurs ont été calculés séparément pour chaque signal. Le nombre total d'attributs est de 36, à l'exception de la longueur de l'enregistrement. En conséquence, nous avions 37 signes numériques pour chaque enregistrement.
La précision de prédiction de cet algorithme est de 0,869.
Combinaison de LSTM et XGB
Pour combiner les classificateurs, nous avons croisé ces deux modèles. En sortie, cette précision augmentait de 2%.
Autrement dit, nous avons pu augmenter la précision de la prédiction à 0,9
ROC -
AUC (Area Under Curve).
Résultat
Nous avons testé notre réseau de neurones profonds sur 205 fichiers (177 neutres, 28 suspects). Le réseau devait traiter chaque fichier et décider à quel groupe il appartenait. Voici les résultats:
- 170 fichiers neutres ont été identifiés correctement;
- 7 fichiers neutres ont été identifiés comme suspects;
- 13 fichiers suspects ont été identifiés correctement;
- 15 fichiers suspects ont été identifiés comme neutres.
Pour estimer le pourcentage de résultats corrects / faux, nous avons utilisé la
matrice d'erreur sous la forme d'un tableau 2x2.
Trouver une phrase spécifique dans une conversation
Nous étions impatients d'essayer cette approche pour reconnaître les mots et les phrases dans les fichiers audio. L'objectif était de trouver des fichiers dans lesquels l'opérateur du centre d'appels n'était pas présenté aux clients dans les 10 premières secondes de la conversation.
Nous avons pris 200 phrases d'une durée moyenne de 1,5 seconde, dans lesquelles les opérateurs appellent leur nom et le nom de l'entreprise.
La recherche manuelle de ces fichiers a pris beaucoup de temps, car J'ai dû écouter chaque fichier pour vérifier s'il contenait les phrases nécessaires. Pour accélérer la formation, nous avons augmenté «artificiellement» l'ensemble de données: nous avons modifié chaque fichier 6 fois au hasard - ajout de bruit, modification de la fréquence et / ou du volume. Nous avons donc obtenu un ensemble de données de 1 500 fichiers.
Résumé
Nous avons utilisé les 10 premières secondes de la réponse de l'opérateur pour former le classificateur, car c'est dans cet intervalle que la phrase souhaitée a été prononcée. Chacun de ces passages a été divisé en fenêtres (longueur de fenêtre de 1,5 s, pas de fenêtre de 1 s) et traité par le réseau neuronal en tant que fichier d'entrée. En tant que fichier de sortie, nous avons reçu la probabilité de prononcer chaque phrase dans la fenêtre sélectionnée.
Nous avons exécuté 300 autres fichiers sur le réseau pour savoir si la phrase souhaitée a été prononcée dans les 10 premières secondes. Pour ces fichiers, la précision était de 87%.
En fait, à quoi ça sert?
L'évaluation automatique des appels permet de déterminer des KPI clairs pour les opérateurs de centres d'appels, de mettre en évidence et de suivre les meilleures pratiques et d'augmenter les performances des centres d'appels. Mais il convient de noter que les logiciels de reconnaissance vocale peuvent être utilisés pour un plus large éventail de tâches.
Voici quelques exemples de la façon dont la reconnaissance vocale peut aider les organisations:
- collecter et analyser des données pour améliorer l'expérience utilisateur vocale;
- analyser les enregistrements d'appels pour identifier les relations et les tendances;
- reconnaître les gens par la voix;
- Trouvez et identifiez les émotions des clients pour améliorer la satisfaction des utilisateurs
- augmenter le revenu moyen par appel;
- réduire les sorties;
- et bien plus!