def combine_audio_segments(input_dir, output_name, output_dir, clear_output_dir): if clear_output_dir: Util.remove_dir(output_dir) Util.make_dir(output_dir) files_grouped_by_class = WavEditor.get_files_grouped_by_class(input_dir) for class_name in files_grouped_by_class: input_wavs = [] for k, file in enumerate(files_grouped_by_class[class_name]): input_wavs.append(file) cmd = ['sox'] + input_wavs + [os.path.join(output_dir, '%s_%s.wav' % (output_name, class_name))] subprocess.check_call(cmd)
def create_audio_segments(labels, input_wav, output_dir, clear_output_dir, delimiter, format, remove_overlapping=False): if clear_output_dir: Util.remove_dir(output_dir) Util.make_dir(output_dir) rows = WavEditor.get_rows(labels, delimiter) if format == "f2" and remove_overlapping: rows = WavEditor.get_non_overlapping_items(rows) for k, row in enumerate(rows): if format == "f1" or (format == "f2" and remove_overlapping): start_time = row[0] end_time = row[1] elif format == "f2": start_time = row[0] end_time = str(float(row[0]) + float(row[1])) else: logging.error("not supported file format") sys.exit(1) label = row[2] filename = str(uuid.uuid4()) WavEditor.create_audio_segment(start_time, end_time, input_wav, os.path.join(output_dir, "%s_%s.wav" % (filename, label)))