-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsplitter.py
More file actions
65 lines (55 loc) · 2.35 KB
/
splitter.py
File metadata and controls
65 lines (55 loc) · 2.35 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import os
from flask import Flask, request, render_template, redirect, send_from_directory
from werkzeug.utils import secure_filename
from pyAudioAnalysis import audioBasicIO
from pyAudioAnalysis import audioFeatureExtraction
import numpy as np
import csv
from sklearn.externals import joblib
from pydub import AudioSegment
import sys
from scipy.io.wavfile import write as write_wav_file
############SPLIT FILES FUNCTION##################
def splitAudioFiles(raw_files_directory, window_storage_directory):
print "Splitting"
filenames = [name for name in os.listdir(raw_files_directory) if not name == '.DS_Store' and name.__contains__(".wav")]
print filenames
for filename in filenames:
audiofile = None
Freq = None
[Fs, x] = audioBasicIO.readAudioFile(raw_files_directory+"/"+filename)
print Fs
print len(x)
x = audioBasicIO.stereo2mono(x) # necessary conversion for pyaudio analysis
print len(x)
Freq = Fs
audiofile = x
duration = len(audiofile)/Freq
mystep = len(audiofile)/int(duration)
print duration
window_index = np.arange(start=0, stop=duration * Freq, step=mystep*3)
cntr = 0
for i in range(0, int(np.ceil(duration / 3))):
cntr = cntr + 1
if i == int(np.ceil(duration / 3) - 1.0):
window = audiofile[window_index[i]:]
filepath = os.path.join(window_storage_directory, filename + '_window_' + str(cntr) + '.wav')
write_wav_file(filepath, Fs, window)
break
window = audiofile[window_index[i]:window_index[i + 1]]
filepath = os.path.join(window_storage_directory, filename + '_window_' + str(cntr) + '.wav')
write_wav_file(filepath, Fs, window)
print "Finished with Splitting"
if __name__ == "__main__":
#if len(sys.argv)==2:
#import os
#cwd = os.getcwd()
#print cwd
print "USAGE: first argument is the file directory, second argument is the outputdirectory"
#quit(1)
print sys.argv[1]
print sys.argv[2]
#try:
splitAudioFiles(sys.argv[1], sys.argv[2])
#except Exception:
#print "USAGE: first argument is the file directory, second argument is the outputdirectory"