Commit 1dc86928 authored by Jan Kiene's avatar Jan Kiene
Browse files

write results to csv file

parent 674bfd1b
Loading
Loading
Loading
Loading
+33 −24
Original line number Diff line number Diff line
@@ -5,13 +5,9 @@
# 4 run all modes without delay compenstaion
# 5 measure delay for all channels and report/compare to expected delay
import subprocess
import os
import json
from tkinter import W
import numpy as np
import sys
import re
import pprint
import pandas as pd

PYAUDIO3DTOOLS_PATH = "./scripts/"
sys.path.append(PYAUDIO3DTOOLS_PATH)
@@ -39,7 +35,6 @@ OC_TO_NCHANNELS = {
    "MASA1TC": 1,
    "MASA2TC": 2,
}

FORMATS = [
    "mono",
    "stereo",
@@ -53,8 +48,6 @@ FORMATS = [
    "MASA1TC",
    "MASA2TC",
]


TEST_FILE = "./delay_test_file_{}.pcm"
CFG = "ci/delay_test_linux.json"

@@ -81,11 +74,8 @@ def get_modes(format: str) -> list:


def main():
    formats = list(OC_TO_NCHANNELS.keys())
    # for testing

    # TODO: MASA - need metadata
    for form in FORMATS[:-2]:
        print(form)

        # generate test signal
        test_file = TEST_FILE.format(form)
@@ -101,7 +91,6 @@ def main():
        subprocess.call(gen_cmd)

        modes_list = get_modes(form)
        print(modes_list)

        # run format
        outfolder_delaycmp = "out_delay_cmp"
@@ -126,9 +115,7 @@ def main():
        subprocess.call(run_cmd_nodelaycmp)

    delays = get_delay_for_folders(outfolder_delaycmp, outfolder_nodelaycmp)

    pp = pprint.PrettyPrinter(indent=4)
    pp.pprint(delays)
    delays.to_csv("delay_test_results.csv")


def get_delay_for_folders(folder_delay_cmp: str, folder_no_delay_cmp: str):
@@ -153,7 +140,15 @@ def get_delay_for_folders(folder_delay_cmp: str, folder_no_delay_cmp: str):

    assert files_delay_cmp == files_no_delay_cmp

    delays = dict()
    output = {
        "format": list(),
        "fs": list(),
        "bitrate": list(),
        "bandwidth": list(),
        "delay": list(),
        "file": list()
    }

    for f in files_delay_cmp:

        f_cmp = folder_path_delay_cmp.joinpath("dec", f)
@@ -164,14 +159,28 @@ def get_delay_for_folders(folder_delay_cmp: str, folder_no_delay_cmp: str):

        delay = audioarray.getdelay(s_cmp, s_no_cmp) / fs

        search_prefix = "delay_test_file_[a-zA-Z]*_"
        search_prefix = "delay_test_file_(([0-9_]+)|[a-zA-Z0-9]+_)"
        op_name = re.sub(search_prefix, "", f).split(".wav")[0]

        if delay not in delays:
            delays[delay] = list()
        delays[delay].append(op_name)

    return delays
        op_name_split = op_name.split("_b")

        search_br = "b[0-9]+(_[0-9])*"
        br = float(re.search(search_br, op_name).group()[1:].replace("_", "."))

        bw = "fb"
        if "_swb_" in op_name:
            bw = "swb"
        elif "_wb_" in op_name:
            bw = "wb"
        elif "_nb_" in op_name:
            bw = "nb"

        output["format"].append(op_name_split[0])
        output["fs"].append(fs)
        output["bitrate"].append(br)
        output["bandwidth"].append(bw)
        output["delay"].append(delay)

    return pd.DataFrame(output)


if __name__ == "__main__":