hex2audio / app.py
burchin's picture
Update app.py
de45468 verified
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()