Speech/Music classification of audio files using machine learning techniques.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.2 KiB

from os import listdir
from os.path import isfile, join
import multiprocessing as mp
import pandas as pd
if __name__ == '__main__':
from feature_extractor import extractFeatures
else:
from .feature_extractor import extractFeatures
class bcolors:
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
ENDC = '\033[0m'
def batchExtract(audioFilesPath, featureFilesPath, sampleRate):
audioFiles = [file for file in listdir(audioFilesPath) if isfile(join(audioFilesPath, file))]
dataframesList = [None]*len(audioFiles)
pool = mp.Pool()
for process, file in enumerate(audioFiles):
dataframesList[process] = pool.apply_async(extractFeatures,args=(audioFilesPath + file,
featureFilesPath + file[0:file.rfind('.')] + '.json',int(sampleRate))).get()
pool.close()
pool.join()
joinedDataset = pd.concat(dataframesList)
print('Batch feature extraction finished successfully.')
return joinedDataset
# Prints a nice message to let the user know the module was imported
print(bcolors.BLUE + 'batch_feature_extractor loaded' + bcolors.ENDC)
# Enables executing the module as a standalone script
if __name__ == "__main__":
import sys
batchExtract(sys.argv[1], sys.argv[2], sys.argv[3])