Kryptone commited on
Commit
4b4d834
·
verified ·
1 Parent(s): c82f1c2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -1
app.py CHANGED
@@ -127,7 +127,23 @@ def split_by_dur(file_upload, dur_to_cut):
127
  return f"Trimmed to {ms_to_min} minutes successfully.", temp_file.name
128
  except Exception as e:
129
  return gr.Error(traceback.format_exc())
130
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
 
132
  with gr.Blocks(theme='bethecloud/storj_theme', title="Global Dataset Maker") as app:
133
  gr.HTML(
@@ -284,8 +300,21 @@ with gr.Blocks(theme='bethecloud/storj_theme', title="Global Dataset Maker") as
284
  [hash_textbox],
285
  [gr.Text(label="Link(s)")]
286
  )
 
 
 
 
 
 
 
 
 
 
 
 
287
 
288
  with gr.TabItem("Changelog"):
 
289
  gr.Markdown("v1 - Not the most exciting v1 release. **Removed yt functions as they are no longer working.**")
290
  gr.Markdown("v0.99.9 - Added new tool: Split audio file by duration.")
291
 
 
127
  return f"Trimmed to {ms_to_min} minutes successfully.", temp_file.name
128
  except Exception as e:
129
  return gr.Error(traceback.format_exc())
130
+
131
+ def zip_to_many(zip_upload):
132
+ temp_dir = "temp_audio_files"
133
+ os.makedirs(temp_dir, exist_ok=True)
134
+ with zipfile.ZipFile(zip_upload, 'r') as zip_ref:
135
+ zip_ref.extractall(temp_dir)
136
+ audio_files = [os.path.join(temp_dir, f) for f in os.listdir(temp_dir) if f.endswith(('.mp3', '.wav', '.ogg'))]
137
+ combined_audio = AudioSegment.empty()
138
+ for audio_file in audio_files:
139
+ audio = AudioSegment.from_file(audio_file)
140
+ combined_audio += audio
141
+ output_path = "combined_audio.mp3"
142
+ combined_audio.export(output_path, format="mp3")
143
+ for audio_file in audio_files:
144
+ os.remove(audio_file)
145
+ os.rmdir(temp_dir)
146
+ return "Done.", output_path
147
 
148
  with gr.Blocks(theme='bethecloud/storj_theme', title="Global Dataset Maker") as app:
149
  gr.HTML(
 
300
  [hash_textbox],
301
  [gr.Text(label="Link(s)")]
302
  )
303
+ with gr.Tab("Convert many audio files to one file"):
304
+ gr.Markdown("Upload a ZIP full of many audio files and this will attempt to convert it to one long audio file.")
305
+ with gr.Row():
306
+ with gr.Column():
307
+ with gr.Row():
308
+ zip_upload = gr.File(file_count='single', file_types=[".zip"], label="Zip file")
309
+ combine_btn = gr.Button("Combine", variant='primary')
310
+ combine_btn.click(
311
+ zip_to_many,
312
+ [zip_upload],
313
+ [gr.Text(label="Status"), gr.File(label="Combined file")]
314
+ )
315
 
316
  with gr.TabItem("Changelog"):
317
+ gr.Markdown("v1.1 - Added new tool: Convert many audio files to one file.")
318
  gr.Markdown("v1 - Not the most exciting v1 release. **Removed yt functions as they are no longer working.**")
319
  gr.Markdown("v0.99.9 - Added new tool: Split audio file by duration.")
320