import os import gradio as gr from pydub import AudioSegment # 여러 PCM 파일을 합쳐 하나의 MP3 파일로 변환하는 함수 def merge_pcm_to_mp3(pcm_files): combined = AudioSegment.silent(duration=0) # 빈 오디오 시작 for pcm_file in pcm_files: try: # PCM 파일을 AudioSegment로 불러오기 (샘플링 속도와 채널을 지정해야 함) audio = AudioSegment.from_file(pcm_file.name, format="raw", frame_rate=16000, channels=1, sample_width=2) # PCM 오디오를 결합 combined += audio except Exception as e: print(f"Error processing {pcm_file.name}: {str(e)}") continue # 결합된 오디오를 MP3로 저장 output_mp3_path = "combined_output.mp3" combined.export(output_mp3_path, format="mp3") return output_mp3_path # Gradio UI 구성 def process_files(pcm_files): output_mp3 = merge_pcm_to_mp3(pcm_files) return output_mp3 # Gradio 인터페이스 정의 with gr.Blocks() as demo: with gr.Row(): file_input = gr.File(label="Upload PCM files", file_count="multiple", file_types=["pcm"]) file_output = gr.File(label="Download Combined MP3") convert_button = gr.Button("Convert and Merge to MP3") convert_button.click(fn=process_files, inputs=file_input, outputs=file_output) # 앱 실행 demo.launch()