import gradio as gr from pydub import AudioSegment from pydub.utils import mediainfo def split_audio(uploaded_audio, split_length): audio = AudioSegment.from_file(uploaded_audio, format=mediainfo(uploaded_audio)['format_name']) split_length = int(split_length) * 60 # Convert minutes to seconds split_count = (len(audio) // (split_length * 1000)) + 1 split_filenames = [] for i in range(split_count): start_time = i * split_length * 1000 end_time = (i + 1) * split_length * 1000 split_audio = audio[start_time:end_time] split_filename = f"part_{i + 1}.mp3" split_audio.export(split_filename, format="mp3") split_filenames.append(split_filename) return split_filenames inputs = [ gr.Audio(type="filepath", label="音声ファイルをアップロード"), gr.Number(value=10, label="分割時間 (分)", precision=0) ] outputs = gr.Files(label="分割された音声ファイル") app = gr.Interface( fn=split_audio, inputs=inputs, outputs=outputs, title="Sugitora 音声分割アプリ", description="音声ファイルを指定した長さで分割します。" ) app.launch()