vic3610 commited on
Commit
f7440f5
·
verified ·
1 Parent(s): f98bbe8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -32
app.py CHANGED
@@ -8,26 +8,21 @@ import os
8
  import tempfile
9
  from pathlib import Path
10
  import sys
 
11
 
12
  # Ajouter le dossier courant au path
13
  sys.path.append(os.path.dirname(__file__))
14
 
15
- # Importer les modules nécessaires - avec fonctions de secours
16
  try:
17
  from transcribe_audio import transcribe_file, load_whisper_model, get_audio_files
18
  from analyze_bob_hf import analyze_files_hf
19
  print("✅ Modules importés avec succès")
 
20
  except Exception as e:
21
  print(f"❌ Erreur d'import: {e}")
22
- # Fonctions de secours pour le test
23
- def load_whisper_model(model_name):
24
- return "mock_model"
25
-
26
- def transcribe_file(model, audio_file, output_dir):
27
- return True
28
-
29
- def analyze_files_hf(**kwargs):
30
- return {"success": True, "count": 1, "ok": 1}
31
 
32
  def process_audio_file(audio_file):
33
  """Traite un fichier audio et retourne les résultats"""
@@ -43,54 +38,90 @@ def process_audio_file(audio_file):
43
  output_dir.mkdir(parents=True, exist_ok=True)
44
  transcriptions_dir.mkdir(parents=True, exist_ok=True)
45
 
 
 
46
  # Copier le fichier audio
47
  audio_path = input_dir / os.path.basename(audio_file)
48
  import shutil
49
  shutil.copy2(audio_file, audio_path)
 
50
 
51
  # Configurer les variables d'environnement
52
  os.environ["BOB_INPUT_DIR"] = str(input_dir)
53
  os.environ["BOB_TRANSCRIPTIONS_DIR"] = str(transcriptions_dir)
54
  os.environ["BOB_OUTPUT_FILE"] = str(output_dir / "resume_bob.txt")
55
  os.environ["WHISPER_MODEL"] = "small" # Modèle léger pour le Space
 
 
 
56
 
57
  # Transcription
58
- print("🔄 Transcription en cours...")
59
  model = load_whisper_model("small")
60
  success = transcribe_file(model, audio_path, transcriptions_dir)
61
 
62
  if not success:
63
- return "❌ Erreur de transcription", ""
64
 
65
- # Analyse
66
- print("🤖 Analyse en cours...")
67
- result = analyze_files_hf(
68
- transcriptions_dir=transcriptions_dir,
69
- input_dir=input_dir,
70
- output_file=output_dir / "resume_bob.txt",
71
- log_fn=print
72
- )
73
 
74
- # Lire les résultats
75
- resume_path = output_dir / "resume_bob.txt"
76
- if resume_path.exists():
77
- with open(resume_path, 'r', encoding='utf-8') as f:
78
- resume_content = f.read()
79
- else:
80
- resume_content = "❌ Fichier de résultat non trouvé"
81
-
82
- # Lire la transcription
83
- transcription_files = list(transcriptions_dir.glob("*.txt"))
84
  if transcription_files:
85
  with open(transcription_files[0], 'r', encoding='utf-8') as f:
86
  transcription_content = f.read()
 
87
  else:
88
  transcription_content = "❌ Transcription non trouvée"
 
 
 
 
 
 
 
 
 
89
 
90
- return transcription_content, resume_content
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
 
92
  except Exception as e:
93
- return f"❌ Erreur: {str(e)}", f"❌ Erreur: {str(e)}"
 
 
94
 
95
  # Interface Gradio
96
  with gr.Blocks(title="BOB Processor") as demo:
 
8
  import tempfile
9
  from pathlib import Path
10
  import sys
11
+ import traceback
12
 
13
  # Ajouter le dossier courant au path
14
  sys.path.append(os.path.dirname(__file__))
15
 
16
+ # Importer les modules nécessaires
17
  try:
18
  from transcribe_audio import transcribe_file, load_whisper_model, get_audio_files
19
  from analyze_bob_hf import analyze_files_hf
20
  print("✅ Modules importés avec succès")
21
+ MODULES_AVAILABLE = True
22
  except Exception as e:
23
  print(f"❌ Erreur d'import: {e}")
24
+ traceback.print_exc()
25
+ MODULES_AVAILABLE = False
 
 
 
 
 
 
 
26
 
27
  def process_audio_file(audio_file):
28
  """Traite un fichier audio et retourne les résultats"""
 
38
  output_dir.mkdir(parents=True, exist_ok=True)
39
  transcriptions_dir.mkdir(parents=True, exist_ok=True)
40
 
41
+ print(f"📁 Dossiers créés: input={input_dir}, output={output_dir}")
42
+
43
  # Copier le fichier audio
44
  audio_path = input_dir / os.path.basename(audio_file)
45
  import shutil
46
  shutil.copy2(audio_file, audio_path)
47
+ print(f"📁 Fichier audio copié: {audio_path}")
48
 
49
  # Configurer les variables d'environnement
50
  os.environ["BOB_INPUT_DIR"] = str(input_dir)
51
  os.environ["BOB_TRANSCRIPTIONS_DIR"] = str(transcriptions_dir)
52
  os.environ["BOB_OUTPUT_FILE"] = str(output_dir / "resume_bob.txt")
53
  os.environ["WHISPER_MODEL"] = "small" # Modèle léger pour le Space
54
+ os.environ["HF_MODEL"] = "facebook/opt-350m" # Modèle gratuit et léger
55
+
56
+ print("🔄 Début de la transcription...")
57
 
58
  # Transcription
 
59
  model = load_whisper_model("small")
60
  success = transcribe_file(model, audio_path, transcriptions_dir)
61
 
62
  if not success:
63
+ return "❌ Erreur de transcription", "❌ Erreur de transcription"
64
 
65
+ print("✅ Transcription terminée")
 
 
 
 
 
 
 
66
 
67
+ # Lire la transcription pour debug
68
+ transcription_files = list(transcriptions_dir.glob("*_transcription.txt"))
 
 
 
 
 
 
 
 
69
  if transcription_files:
70
  with open(transcription_files[0], 'r', encoding='utf-8') as f:
71
  transcription_content = f.read()
72
+ print(f"📝 Transcription lue ({len(transcription_content)} caractères)")
73
  else:
74
  transcription_content = "❌ Transcription non trouvée"
75
+ return transcription_content, "❌ Pas de transcription générée"
76
+
77
+ print("🤖 Début de l'analyse...")
78
+ print(f"📁 Transcriptions dir: {transcriptions_dir}")
79
+ print(f"📁 Input dir: {input_dir}")
80
+ print(f"📁 Output file: {output_dir / 'resume_bob.txt'}")
81
+
82
+ # Vérifier le contenu du dossier transcriptions
83
+ print(f"📁 Fichiers dans transcriptions: {list(transcriptions_dir.iterdir())}")
84
 
85
+ # Analyse - avec les bons chemins
86
+ try:
87
+ result = analyze_files_hf(
88
+ transcriptions_dir=transcriptions_dir,
89
+ input_dir=input_dir,
90
+ output_file=output_dir / "resume_bob.txt",
91
+ log_fn=print
92
+ )
93
+
94
+ print(f"✅ Analyse terminée: {result}")
95
+
96
+ # Vérifier si le fichier de résultat existe
97
+ resume_path = output_dir / "resume_bob.txt"
98
+ print(f"🔍 Recherche fichier: {resume_path}")
99
+ print(f"📁 Contenu du dossier output: {list(output_dir.iterdir())}")
100
+
101
+ if resume_path.exists():
102
+ with open(resume_path, 'r', encoding='utf-8') as f:
103
+ resume_content = f.read()
104
+ print("✅ Fichier de résultat trouvé et lu")
105
+ else:
106
+ resume_content = f"❌ Fichier de résultat non trouvé\nChemin attendu: {resume_path}\nContenu du dossier: {list(output_dir.iterdir())}"
107
+ print("❌ Fichier de résultat non trouvé")
108
+ # Afficher le contenu détaillé pour debug
109
+ print("🔍 Contenu détaillé des dossiers:")
110
+ print(f" Input: {list(input_dir.iterdir())}")
111
+ print(f" Transcriptions: {list(transcriptions_dir.iterdir())}")
112
+ print(f" Output: {list(output_dir.iterdir())}")
113
+
114
+ return transcription_content, resume_content
115
+
116
+ except Exception as analyze_error:
117
+ error_msg = f"❌ Erreur pendant l'analyse:\n{str(analyze_error)}\n\nTraceback:\n{traceback.format_exc()}"
118
+ print(error_msg)
119
+ return transcription_content, error_msg
120
 
121
  except Exception as e:
122
+ error_msg = f"❌ Erreur générale:\n{str(e)}\n\nTraceback:\n{traceback.format_exc()}"
123
+ print(error_msg)
124
+ return error_msg, error_msg
125
 
126
  # Interface Gradio
127
  with gr.Blocks(title="BOB Processor") as demo: