File size: 1,201 Bytes
c36796d
 
 
 
 
 
 
 
 
5442d28
 
c36796d
 
5442d28
49f7322
 
 
c36796d
 
 
 
5442d28
 
 
de45468
c36796d
5442d28
 
c36796d
 
 
 
 
 
 
 
 
 
5442d28
c36796d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()