-
Notifications
You must be signed in to change notification settings - Fork 0
/
splitaudio.py
31 lines (26 loc) · 1.11 KB
/
splitaudio.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from pydub import AudioSegment
import math
class SplitWavAudio():
def __init__(self, folder, filename):
self.folder = folder
self.filename = filename
self.filepath = folder + '/' + filename
self.audio = AudioSegment.from_wav(self.filepath)
def get_duration(self):
return self.audio.duration_seconds
def single_split(self, from_min, to_min, split_filename):
t1 = from_min * 60 * 1000
t2 = to_min * 60 * 1000
split_audio = self.audio[t1:t2]
split_audio.export(self.folder + '/' + split_filename, format="wav")
return (self.folder + '/' + split_filename)
def multiple_split(self, min_per_split):
files = []
total_mins = math.ceil(self.get_duration() / 60)
for i in range(0, total_mins, min_per_split):
split_fn = str(i) + '_' + self.filename
files.append(self.single_split(i, i+min_per_split, split_fn))
print(str(i) + ' Done')
if i == total_mins - min_per_split:
print('All splited successfully')
return files