Spaces:
Running
Running
import gradio as gr | |
from pydub import AudioSegment | |
import os | |
def change_audio_speed(audio_file, speed): | |
if not audio_file: | |
return "Please upload an audio file." | |
try: | |
# Load the audio file | |
print("inside try of audio call") | |
audio = AudioSegment.from_file(audio_file, format="wav") | |
# Modify speed | |
new_audio = audio._spawn(audio.raw_data, overrides={ | |
"frame_rate": int(audio.frame_rate * speed) | |
}).set_frame_rate(audio.frame_rate) | |
# Save the processed file | |
output_path = "output.mp3" | |
new_audio.export(output_path, format="mp3") | |
return output_path | |
except Exception as e: | |
print("inside except of audio call", str(e)) | |
return str(e) | |
# Gradio UI | |
with gr.Blocks() as demo: | |
gr.Markdown("# π΅ Audio Speed Modifier with ElevenLabs API Key Input") | |
with gr.Row(): | |
audio_input = gr.File(label="Upload MP3 Audio") | |
api_key = gr.Textbox(label="Enter ElevenLabs API Key", type="password") | |
speed_slider = gr.Slider(0.5, 3.0, 1.2, step=0.1, label="Speed Factor (1.2x = 20% faster)") | |
output_audio = gr.Audio(label="Processed Audio", type="filepath") | |
process_button = gr.Button("Process Audio") | |
process_button.click(change_audio_speed, inputs=[audio_input, speed_slider], outputs=output_audio) | |
demo.launch(debug=True) | |