Spaces:
Sleeping
Sleeping
| 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() | |