| from pydub import AudioSegment |
| from io import BytesIO |
| import gradio as gr |
| import binascii |
|
|
| def handler(input_text): |
| hex_data = input_text |
| audio_bytes = binascii.unhexlify(hex_data) |
| audio_segment = AudioSegment.from_file(BytesIO(audio_bytes), format="mp3") |
| |
| |
| output_buffer = BytesIO() |
| audio_segment.export(output_buffer, format="mp3") |
| |
| |
| output_buffer.seek(0) |
| return output_buffer.read() |
|
|
| def create_interface(): |
| with gr.Blocks() as demo: |
| with gr.Row(): |
| |
| input_text = gr.Textbox(label="Input MP3 Hex Code", lines=10) |
| |
| output_audio = gr.Audio(label="Output Audio", format="mp3") |
| |
| |
| submit_btn = gr.Button("Convert to MP3") |
| submit_btn.click( |
| fn=handler, |
| inputs=[input_text], |
| outputs=output_audio |
| ) |
| |
| return demo |
|
|
| if __name__ == "__main__": |
| demo = create_interface() |
| |
| demo.launch() |