sugitora commited on
Commit
6c7ceae
·
1 Parent(s): d7f7e8d

Add initial files for Audio-Split-App

Browse files
Files changed (2) hide show
  1. app.py +37 -0
  2. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from pydub import AudioSegment
3
+ from pydub.utils import mediainfo
4
+
5
+ def split_audio(uploaded_audio, split_length):
6
+ audio = AudioSegment.from_file(uploaded_audio, format=mediainfo(uploaded_audio)['format_name'])
7
+ split_length = int(split_length) * 60 # Convert minutes to seconds
8
+ split_count = (len(audio) // (split_length * 1000)) + 1
9
+ split_filenames = []
10
+
11
+ for i in range(split_count):
12
+ start_time = i * split_length * 1000
13
+ end_time = (i + 1) * split_length * 1000
14
+ split_audio = audio[start_time:end_time]
15
+ split_filename = f"part_{i + 1}.mp3"
16
+ split_audio.export(split_filename, format="mp3")
17
+ split_filenames.append(split_filename)
18
+
19
+ return split_filenames
20
+
21
+ inputs = [
22
+ gr.Audio(type="filepath", label="音声ファイルをアップロード"),
23
+ gr.Number(value=10, label="分割時間 (分)", precision=0)
24
+ ]
25
+
26
+ outputs = gr.Files(label="分割された音声ファイル")
27
+
28
+ app = gr.Interface(
29
+ fn=split_audio,
30
+ inputs=inputs,
31
+ outputs=outputs,
32
+ title="Sugitora 音声分割アプリ",
33
+ description="音声ファイルを指定した長さで分割します。"
34
+ )
35
+
36
+ app.launch()
37
+
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio
2
+ pydub
3
+ ffmpeg