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()
|