tee342 commited on
Commit
dd50fcd
·
verified ·
1 Parent(s): c6b9ef4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -23
app.py CHANGED
@@ -568,43 +568,39 @@ with gr.Blocks(css="""
568
  outputs=output_audio_sat
569
  )
570
 
571
- # --- Vocal Doubler / Harmonizer ---
572
- with gr.Tab("🎧 Vocal Doubler / Harmonizer"):
573
- input_audio_harmony = gr.Audio(label="Upload Vocal Clip", type="filepath")
574
- output_audio_harmony = gr.Audio(label="Doubled Output", type="numpy")
575
- status_harmony = gr.Textbox(label="Status", interactive=False)
576
- harmony_btn = gr.Button("Add Harmony")
577
-
578
- harmony_btn.click(
579
- fn=run_harmony,
580
- inputs=input_audio_harmony,
581
- outputs=[output_audio_harmony, status_harmony]
582
- )
583
 
584
 
585
  # Add your remaining tabs (Batch Processing, Save/Load Project, Auto-Tune, etc.)
586
  # similar to above, adapting outputs to return (samples, sr) tuples for gr.Audio (type="numpy").
587
 
588
- def run_harmony(audio_path):
589
- if not audio_path:
590
  return None, "❌ Upload a vocal clip first."
591
  try:
592
- audio = AudioSegment.from_file(audio_path)
593
  out_audio = apply_harmony(audio)
594
- out_path = os.path.join(tempfile.gettempdir(), "harmony_output.wav")
595
- out_audio.export(out_path, format="wav")
596
 
597
- # Load audio to numpy array for Gradio
598
  samples, sr = sf.read(out_path, dtype='int16')
599
  return (samples, sr), "✅ Success"
600
  except Exception as e:
601
  return None, f"❌ Error: {str(e)}"
602
 
603
- harmony_btn.click(
604
- fn=run_harmony,
605
- inputs=input_audio_harmony,
606
- outputs=[output_audio_harmony, status_harmony]
607
- )
608
 
609
  # --- Batch Processing ---
610
  # --- Batch Processing ---
 
568
  outputs=output_audio_sat
569
  )
570
 
571
+ with gr.Tab("🎧 Vocal Doubler / Harmonizer"):
572
+ input_audio_harmony = gr.Audio(label="Upload Vocal Clip", type="filepath")
573
+ output_audio_harmony = gr.Audio(label="Doubled Output", type="numpy")
574
+ status_harmony = gr.Textbox(label="Status", interactive=False)
575
+ harmony_btn = gr.Button("Add Harmony")
576
+
577
+ harmony_btn.click(
578
+ fn=run_harmony,
579
+ inputs=input_audio_harmony,
580
+ outputs=[output_audio_harmony, status_harmony]
581
+ )
 
582
 
583
 
584
  # Add your remaining tabs (Batch Processing, Save/Load Project, Auto-Tune, etc.)
585
  # similar to above, adapting outputs to return (samples, sr) tuples for gr.Audio (type="numpy").
586
 
587
+ def run_harmony(audio_file):
588
+ if not audio_file:
589
  return None, "❌ Upload a vocal clip first."
590
  try:
591
+ audio = AudioSegment.from_file(audio_file)
592
  out_audio = apply_harmony(audio)
593
+ out_path = save_audiosegment_to_temp(out_audio, suffix=".wav")
 
594
 
595
+ # Load audio as numpy array for Gradio output type="numpy"
596
  samples, sr = sf.read(out_path, dtype='int16')
597
  return (samples, sr), "✅ Success"
598
  except Exception as e:
599
  return None, f"❌ Error: {str(e)}"
600
 
601
+ with gr.Blocks(css="""
602
+ /* your CSS here */
603
+ """) as demo:
 
 
604
 
605
  # --- Batch Processing ---
606
  # --- Batch Processing ---