| | 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() |