#!pip install gradio pydub #!apt install ffmpeg import gradio as gr from pydub import AudioSegment import tempfile import os def process_audio(file, left_source, # "left", "right", "mute" right_source # "left", "right", "mute" ): # ステレオで読み込み audio = AudioSegment.from_file(file) left, right = audio.split_to_mono() # ソース選択 def get_channel(source): if source == "left": return left elif source == "right": return right else: # mute return AudioSegment.silent(duration=len(audio)) new_left = get_channel(left_source) new_right = get_channel(right_source) # ステレオ再構築 combined = AudioSegment.from_mono_audiosegments(new_left, new_right) # 一時ファイルに保存 with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmpfile: combined.export(tmpfile.name, format="wav") return tmpfile.name # UIの設定 options = ["left", "right", "mute"] demo = gr.Interface( fn=process_audio, inputs=[ gr.Audio(type="filepath", label="音声ファイル(ステレオ)"), gr.Radio(choices=options, value="left", label="左チャンネルに流す音"), gr.Radio(choices=options, value="right", label="右チャンネルに流す音") ], outputs=gr.Audio(label="出力音声(設定済みステレオ)"), title="ステレオチャンネル編集ツール", description="左・右チャンネルの音声ソースを個別に設定して、新しいステレオ音声を出力します。" ) if __name__ == "__main__": demo.launch(share=True, debug=True)