Woziii commited on
Commit
90c7625
·
verified ·
1 Parent(s): fac847d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -4
app.py CHANGED
@@ -1,7 +1,7 @@
1
- # Version: Corrected After Test 3 (V2.3.0 - Adjusted Timestamp Handling)
2
- # Description: Cette version ajuste la gestion des timestamps.
3
- # La fin d'un mot est désormais définie par le début du mot suivant - quelques millisecondes.
4
- # Respecte la structure et les commentaires existants.
5
 
6
  import os
7
  import shutil
@@ -141,6 +141,34 @@ def validate_segments(audio_path, table_data, metadata_state, word_timestamps):
141
 
142
  return segment_paths, updated_metadata
143
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  # -------------------------------------------------
145
  # 6. Interface utilisateur Gradio
146
  # -------------------------------------------------
@@ -157,5 +185,11 @@ with gr.Blocks() as demo:
157
  validate_button = gr.Button("Valider")
158
  generate_button = gr.Button("Générer ZIP")
159
  zip_file = gr.File(label="Télécharger le ZIP")
 
 
 
 
 
 
160
 
161
  demo.queue().launch()
 
1
+ # Version: Corrected After Test 3 (V2.3.0 - Structured, Commented, and ZIP Generation Restored)
2
+ # Description: Cette version structure le script selon l'ordre des étapes du processus.
3
+ # La génération du fichier ZIP a été réintégrée après avoir été omise dans la version précédente.
4
+ # Chaque section est commentée pour assurer une meilleure lisibilité et une logique claire.
5
 
6
  import os
7
  import shutil
 
141
 
142
  return segment_paths, updated_metadata
143
 
144
+ # -------------------------------------------------
145
+ # 5. Génération du fichier ZIP
146
+ # -------------------------------------------------
147
+ def generate_zip(metadata_state):
148
+ if not metadata_state:
149
+ print("[LOG ERROR] Aucun segment valide trouvé pour la génération du ZIP.")
150
+ return None
151
+
152
+ zip_path = os.path.join(TEMP_DIR, "dataset.zip")
153
+ if os.path.exists(zip_path):
154
+ os.remove(zip_path)
155
+
156
+ metadata_csv_path = os.path.join(TEMP_DIR, "metadata.csv")
157
+ with open(metadata_csv_path, "w", encoding="utf-8") as f:
158
+ f.write("audio_file|text|speaker_name|API\n")
159
+ for seg in metadata_state:
160
+ f.write(f"{seg['audio_file']}|{seg['text']}|projectname|/API_PHONETIC/\n")
161
+
162
+ with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zf:
163
+ zf.write(metadata_csv_path, "metadata.csv")
164
+ for seg in metadata_state:
165
+ file_path = os.path.join(TEMP_DIR, seg["audio_file"])
166
+ if os.path.exists(file_path):
167
+ zf.write(file_path, seg["audio_file"])
168
+
169
+ print("[LOG] Fichier ZIP généré avec succès.")
170
+ return zip_path
171
+
172
  # -------------------------------------------------
173
  # 6. Interface utilisateur Gradio
174
  # -------------------------------------------------
 
185
  validate_button = gr.Button("Valider")
186
  generate_button = gr.Button("Générer ZIP")
187
  zip_file = gr.File(label="Télécharger le ZIP")
188
+ word_timestamps = gr.State()
189
+
190
+ audio_input.change(transcribe_audio, inputs=audio_input, outputs=[raw_transcription, table, audio_input, word_timestamps, transcription_timestamps])
191
+ generate_timestamps_button.click(preprocess_segments, inputs=[table, word_timestamps], outputs=table)
192
+ validate_button.click(validate_segments, inputs=[audio_input, table, metadata_state, word_timestamps], outputs=[extracted_segments, metadata_state])
193
+ generate_button.click(generate_zip, inputs=metadata_state, outputs=zip_file)
194
 
195
  demo.queue().launch()