| import gradio as gr |
| from pydub import AudioSegment |
| from pydub.effects import pan |
| import tempfile |
| import os |
|
|
| def convert_to_8d(audio_file): |
| |
| audio = AudioSegment.from_file(audio_file) |
| duration = len(audio) |
|
|
| |
| segments = [] |
| for t in range(0, duration, 100): |
| segment = audio[t:t+100] |
| pan_position = -1 + 2 * ((t // 100) % 2) |
| segments.append(pan(segment, pan_position)) |
|
|
| |
| eight_d_audio = sum(segments) |
|
|
| |
| temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") |
| eight_d_audio.export(temp_file.name, format="mp3") |
| return temp_file.name |
|
|
| |
| with gr.Blocks() as interface: |
| gr.Markdown("# 🎧 8D Audio Converter") |
| gr.Markdown("Upload your audio file, and this tool will transform it into 8D audio!") |
| |
| audio_input = gr.Audio(label="Upload Audio", type="filepath") |
| audio_output = gr.Audio(label="8D Audio", type="filepath") |
| |
| convert_button = gr.Button("Convert to 8D") |
| |
| convert_button.click(fn=convert_to_8d, inputs=audio_input, outputs=audio_output) |
|
|
| print("launching app") |
| interface.launch(share=True) |
|
|