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") # 创建内存缓冲区并导出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(): # 创建多行文本输入框用于HEX代码 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() # 启动Gradio界面 demo.launch()