Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1147,6 +1147,8 @@ def upload_and_manage(file, target_language, process_mode):
|
|
| 1147 |
audio_path = "audio.wav"
|
| 1148 |
output_video_path = "output_video.mp4"
|
| 1149 |
voiceover_path = "voiceover.wav"
|
|
|
|
|
|
|
| 1150 |
logger.info(f"Using audio path: {audio_path}, output video path: {output_video_path}, voiceover path: {voiceover_path}")
|
| 1151 |
|
| 1152 |
# Step 1: Transcribe audio from uploaded media file and get timestamps
|
|
@@ -1162,6 +1164,11 @@ def upload_and_manage(file, target_language, process_mode):
|
|
| 1162 |
|
| 1163 |
|
| 1164 |
translated_json = apply_adaptive_speed(translated_json_raw, source_language, target_language, process_mode)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1165 |
|
| 1166 |
# Step 3: Add transcript to video based on timestamps
|
| 1167 |
logger.info("Adding translated transcript to video...")
|
|
@@ -1180,7 +1187,7 @@ def upload_and_manage(file, target_language, process_mode):
|
|
| 1180 |
elapsed_time_display = f"Processing completed in {elapsed_time:.2f} seconds."
|
| 1181 |
logger.info(f"Processing completed in {elapsed_time:.2f} seconds.")
|
| 1182 |
|
| 1183 |
-
return editable_table, output_video_path, elapsed_time_display
|
| 1184 |
|
| 1185 |
except Exception as e:
|
| 1186 |
logger.error(f"An error occurred: {str(e)}")
|
|
@@ -1214,6 +1221,7 @@ def build_interface():
|
|
| 1214 |
save_changes_button = gr.Button("Save Changes")
|
| 1215 |
processed_video_output = gr.File(label="Download Processed Video", interactive=True) # Download button
|
| 1216 |
elapsed_time_display = gr.Textbox(label="Elapsed Time", lines=1, interactive=False)
|
|
|
|
| 1217 |
|
| 1218 |
with gr.Column(scale=1):
|
| 1219 |
gr.Markdown("**Feedback**")
|
|
@@ -1242,7 +1250,7 @@ def build_interface():
|
|
| 1242 |
submit_button.click(
|
| 1243 |
upload_and_manage,
|
| 1244 |
inputs=[file_input, language_input, process_mode],
|
| 1245 |
-
outputs=[editable_table, processed_video_output, elapsed_time_display]
|
| 1246 |
)
|
| 1247 |
|
| 1248 |
# Connect submit button to save_feedback_db function
|
|
|
|
| 1147 |
audio_path = "audio.wav"
|
| 1148 |
output_video_path = "output_video.mp4"
|
| 1149 |
voiceover_path = "voiceover.wav"
|
| 1150 |
+
translated_json_filepath = "translated_output.json"
|
| 1151 |
+
|
| 1152 |
logger.info(f"Using audio path: {audio_path}, output video path: {output_video_path}, voiceover path: {voiceover_path}")
|
| 1153 |
|
| 1154 |
# Step 1: Transcribe audio from uploaded media file and get timestamps
|
|
|
|
| 1164 |
|
| 1165 |
|
| 1166 |
translated_json = apply_adaptive_speed(translated_json_raw, source_language, target_language, process_mode)
|
| 1167 |
+
|
| 1168 |
+
# New: Save the translated JSON to a file
|
| 1169 |
+
with open(translated_json_filepath, "w", encoding="utf-8") as f:
|
| 1170 |
+
json.dump(translated_json, f, ensure_ascii=False, indent=4)
|
| 1171 |
+
logger.info(f"Translated JSON saved to {translated_json_filepath}")
|
| 1172 |
|
| 1173 |
# Step 3: Add transcript to video based on timestamps
|
| 1174 |
logger.info("Adding translated transcript to video...")
|
|
|
|
| 1187 |
elapsed_time_display = f"Processing completed in {elapsed_time:.2f} seconds."
|
| 1188 |
logger.info(f"Processing completed in {elapsed_time:.2f} seconds.")
|
| 1189 |
|
| 1190 |
+
return editable_table, output_video_path, translated_json_filepath, elapsed_time_display
|
| 1191 |
|
| 1192 |
except Exception as e:
|
| 1193 |
logger.error(f"An error occurred: {str(e)}")
|
|
|
|
| 1221 |
save_changes_button = gr.Button("Save Changes")
|
| 1222 |
processed_video_output = gr.File(label="Download Processed Video", interactive=True) # Download button
|
| 1223 |
elapsed_time_display = gr.Textbox(label="Elapsed Time", lines=1, interactive=False)
|
| 1224 |
+
translated_json_download = gr.File(label="Download Translated JSON", interactive=True) # New: JSON download
|
| 1225 |
|
| 1226 |
with gr.Column(scale=1):
|
| 1227 |
gr.Markdown("**Feedback**")
|
|
|
|
| 1250 |
submit_button.click(
|
| 1251 |
upload_and_manage,
|
| 1252 |
inputs=[file_input, language_input, process_mode],
|
| 1253 |
+
outputs=[editable_table, processed_video_output, translated_json_download, elapsed_time_display]
|
| 1254 |
)
|
| 1255 |
|
| 1256 |
# Connect submit button to save_feedback_db function
|