From da6116e9690865c11927c97f9c1df769aadadcc7 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 21 Dec 2023 15:44:26 +0100 Subject: [PATCH] make scale_pcm script run in parallel for all wav files in a folder --- tests/scale_pcm.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/scale_pcm.py b/tests/scale_pcm.py index b44fa33e04..9aef914da1 100755 --- a/tests/scale_pcm.py +++ b/tests/scale_pcm.py @@ -3,6 +3,7 @@ import os import sys import argparse +import pathlib THIS_PATH = os.path.join(os.getcwd(), __file__) sys.path.append(os.path.join(os.path.dirname(THIS_PATH), "../scripts")) @@ -10,9 +11,16 @@ sys.path.append(os.path.join(os.path.dirname(THIS_PATH), "../scripts")) import pyaudio3dtools import pyivastest import numpy as np +import concurrent.futures -def scale_pcm(file1, file2, factor = 1.0) -> None: +def scale_folder(folder, factor): + + files = list(folder.glob("*.wav")) + with concurrent.futures.ThreadPoolExecutor() as executor: + executor.map(scale_file, files, files, [factor] * len(files)) + +def scale_file(file1, file2, factor = 1.0) -> None: """ Scale file1 to file2 """ @@ -22,10 +30,9 @@ def scale_pcm(file1, file2, factor = 1.0) -> None: if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("file1", type=str) - parser.add_argument("file2", type=str) + parser.add_argument("folder", type=pathlib.Path) parser.add_argument("factor", type=float) args = parser.parse_args() - scale_pcm(**vars(args)) + scale_folder(**vars(args)) sys.exit(0) -- GitLab