from os import listdir from os.path import isfile, join import multiprocessing as mp 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))] # Without multithreading # for file in audioFiles: # extractFeatures(audioFilesPath + file, # featureFilesPath + file[0:file.rfind('.')] + '.json', int(sampleRate)) pool = mp.Pool(processes = 8) for file in audioFiles: pool.apply(extractFeatures,args=(audioFilesPath + file, featureFilesPath + file[0:file.rfind('.')] + '.json',int(sampleRate))) print('Batch feature extraction finished successfully.') # 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])