Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
# Version: Corrected After Test 3 (V2.3.0 -
|
2 |
-
# Description: Cette version
|
3 |
-
# La
|
4 |
-
#
|
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()
|