jrmd commited on
Commit
63a674a
·
1 Parent(s): 72a4e96

Readme completion

Browse files
Files changed (2) hide show
  1. README.md +24 -1
  2. demo_api_client.py +4 -2
README.md CHANGED
@@ -10,4 +10,27 @@ pinned: false
10
  ---
11
 
12
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
13
- # DIT_DL2_WAV2VEC2_BERT
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ---
11
 
12
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
13
+ # DIT_DL2_WAV2VEC2_BERT
14
+
15
+ Ce dépôt contient le code d'une application d'analyse de sentiment associé à des déclarations au format audio.
16
+
17
+ ## Le modèle
18
+ Le modèle permettant d'automatiser cette analyse est construit comme suit :
19
+ - Un module de reconnaissance automatisée de la parole basé sur le modèle "facebook/wav2vec2-base-960h" disponible sur huggingface. C'est un modèle a été préentraîné sur 960 heures d'audio anglaise echantillonné à 16kHz. Nous l'utilisons tel quel pour la transcription des audios en texte
20
+ - Un module d'analyse de sentiment basé un modèle BERT "google-bert/bert-base-uncased" également disponible sur huggingface. Ce modèle BERT nous donne une représentation fiable du texte, qui lui est soumis, dans un espace. Cette représentation est ensuite projetée sur un première couche cachée linéaire de 30 neurones. Cette couche cachée est suivie de la couche de sortie composée de trois neurones pour effectuer la classification objet du projet selon les modalités souhaitées : "Positif", "Négatif", "Neutre". Le modèle BERT de base n'a pas été modifié pendant l'entraînement à l'analyse de sentiment à partir d'entrée en format texte.
21
+
22
+ ## Le Dataset
23
+ L'entraînement et l'évaluation de la chaîne d'analyse a été effectué avec les données du sous-ensemble "Voxceleb" du dataset "asapp/slue" également disponible sur huggingface. Ce jeu de données est fait de correspondances entre des enregistrements audio de paroles de célébrités, la transcription textuelle de cette dernière et le sentiment associé. Ce jeu de données est subdivisé en trois sous-ensembles nommés "dev", "fine-tune" et "test". Dans le cadre de ce projet, nous avons utilisé les sous-groupes "fine-tune" et "test" respectivement pour l'entraînement et l'évaluation de la chaîne d'analye de sentiment. Ils comprennent respectivement 5777 et 3553 enregistrements.
24
+
25
+ ## L'entraînement et l'évaluation
26
+ L'entraînement a été fait pour ajuster les poids des couches de neurones ajoutées au modèle BERT de base. Il a été effectué sur google colab en utilisant les correspondances entre texte et sentiment du sous-groupe "fine-tune" du dataset.
27
+ L'évaluation a également été effectuée sur google colab en utilisant les correspondances entre le texte et les sentiments faites dans le sous-groupe "test" du dataset pour la partie BERT dans un premier temps. Dans un second temps, la correspondance entre fichiers audio et sentiments disponibles dans le même sous-groupe ont été utilisée pour l'évaluation de l'ensemble de la chaîne d'analyse de sentiment. Nous en avons tiré une matrice de confusion ainsi qu'un accuracy globale.
28
+ Les graphes d'évolution des fonctions de pertes lors de l'entraînement et lors de l'évaluation de l'analyse textuelle ainsi que la matrice de confusion et l'accuracy globales sont disponibles sur la page de l'application permettant de tester le modèle obtenu : https://huggingface.co/spaces/jrmd/DIT_DL2_WAV2VEC2_BERT
29
+ Toutes les actions d'entraînement, d'évaluation et de production sont disponibles dans le fichier "AudioSpeechSentimentAnalysis_JRMDIOUF.ipynb" qui a été utilisé sur google colab pour profiter des GPU qui y sont disponibles. Le fichier "audiospeechsentimentanalysis_jrmdiouf.py" est le pendant du notebook au format python simple. Mais ce dernier est utilisé par le fichier "app.py" pour les inférences demandées par les utilisateurs de l'application en ligne.
30
+
31
+ ## Mise à disposition du modèle obtenu
32
+ Le modèle obtenu peut être testé via l'application gradio disponible à l'URL : https://huggingface.co/spaces/jrmd/DIT_DL2_WAV2VEC2_BERT
33
+ Vous pouvez y télécharger une audio en Anglais présente sur votre machine et voir le sentiment associé que vous proposera le modèle obtenu suite à nos travaux. Le code de l'application est disponible dans le fichier "app.py".
34
+
35
+ ## API
36
+ Vous pouvez utiliser le modèle à travers une API mise à disposition à la même URL et expose une action predict. Vous pourrez voir comment utiliser l'API en vous référant au fichier "demo_api_client.py"
demo_api_client.py CHANGED
@@ -2,12 +2,14 @@ import os
2
 
3
  from gradio_client import Client, handle_file
4
 
5
- client = Client("http://localhost:7860/")
 
 
6
 
7
  # Use a raw string for the file path
8
  audio_file_path = r"E:\00.Divers\DIT\04.Cours\M2\06.DS-DeepLearning2\Examen\Dev\id10012_0AXjxNXiEzo_00001.flac"
9
 
10
- # Verify the file exists (good practice!)
11
  if not os.path.exists(audio_file_path):
12
  print(f"Error: The file '{audio_file_path}' does not exist. Please check the path.")
13
  else:
 
2
 
3
  from gradio_client import Client, handle_file
4
 
5
+ # Define the target of the request
6
+ # client = Client("http://localhost:7860/") # For test in localhost
7
+ client = Client("jrmd/DIT_DL2_WAV2VEC2_BERT") # For online version of the app
8
 
9
  # Use a raw string for the file path
10
  audio_file_path = r"E:\00.Divers\DIT\04.Cours\M2\06.DS-DeepLearning2\Examen\Dev\id10012_0AXjxNXiEzo_00001.flac"
11
 
12
+ # Verify the file exists
13
  if not os.path.exists(audio_file_path):
14
  print(f"Error: The file '{audio_file_path}' does not exist. Please check the path.")
15
  else: