Commit 7fe4c29b authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'ci/parallelize-scale-pcm-script' into 'main'

[CI] make scale_pcm script run in parallel for all wav files in a folder

See merge request !1303
parents 66d62069 fb33ebb5
Loading
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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)