Loading scripts/pyaudio3dtools/audioarray.py +17 −11 Original line number Diff line number Diff line Loading @@ -221,7 +221,7 @@ def cut(x: np.ndarray, limits: Tuple[int, int]) -> np.ndarray: return y def compare(ref: np.ndarray, test: np.ndarray, fs: int) -> dict: def compare(ref: np.ndarray, test: np.ndarray, fs: int, per_frame: bool=True) -> dict: """Compare two audio arrays Parameters Loading @@ -246,12 +246,14 @@ def compare(ref: np.ndarray, test: np.ndarray, fs: int) -> dict: "max_abs_diff": 0, "max_abs_diff_pos_sample": 0, "max_abs_diff_pos_channel": 0, "max_abs_diff_pos_frame": 0, "nsamples_diff": 0, "nsamples_diff_percentage": 0.0, "nframes_diff": 0, "nframes_diff_percentage": 0.0, } if per_frame: result["max_abs_diff_pos_frame"] = 0 result["nframes_diff"] = 0 result["nframes_diff_percentage"] = 0.0 if max_diff != 0: if diff.ndim == 1: nsamples_total = diff.shape Loading @@ -268,21 +270,25 @@ def compare(ref: np.ndarray, test: np.ndarray, fs: int) -> dict: nsamples_diff_percentage = nsamples_diff / (nsamples_total * nchannels) * 100.0 nframes = nsamples_total // framesize nframes_diff = 0 for fr in range(nframes): diff_fr = diff[fr * framesize : ((fr + 1) * framesize), :] nframes_diff += 1 if diff_fr.nonzero()[0].size > 0 else 0 nframes_diff_percentage = nframes_diff / nframes * 100.0 result = { "bitexact": False, "max_abs_diff": max_diff, "max_abs_diff_pos_sample": max_diff_pos[0], "max_abs_diff_pos_channel": max_diff_pos[2], "max_abs_diff_pos_frame": max_diff_pos[1], "nsamples_diff": nsamples_diff, "nsamples_diff_percentage": nsamples_diff_percentage, "nframes_diff": nframes_diff, "nframes_diff_percentage": nframes_diff_percentage, } if per_frame: for fr in range(nframes): diff_fr = diff[fr * framesize : ((fr + 1) * framesize), :] nframes_diff += 1 if diff_fr.nonzero()[0].size > 0 else 0 nframes_diff_percentage = nframes_diff / nframes * 100.0 result["max_abs_diff_pos_frame"] = max_diff_pos[1] result["nframes_diff"] = nframes_diff result["nframes_diff_percentage"] = nframes_diff_percentage return result Loading tests/cmp_pcm.py +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ def cmp_pcm(file1, file2, oc, fs) -> (int, str): ) return 1, "FAIL: File lengths differ" cmp_result = pyaudio3dtools.audioarray.compare(s1, s2, fs) cmp_result = pyaudio3dtools.audioarray.compare(s1, s2, fs, per_frame=False) if cmp_result["bitexact"]: return 0, "SUCCESS: Files are bitexact" Loading Loading
scripts/pyaudio3dtools/audioarray.py +17 −11 Original line number Diff line number Diff line Loading @@ -221,7 +221,7 @@ def cut(x: np.ndarray, limits: Tuple[int, int]) -> np.ndarray: return y def compare(ref: np.ndarray, test: np.ndarray, fs: int) -> dict: def compare(ref: np.ndarray, test: np.ndarray, fs: int, per_frame: bool=True) -> dict: """Compare two audio arrays Parameters Loading @@ -246,12 +246,14 @@ def compare(ref: np.ndarray, test: np.ndarray, fs: int) -> dict: "max_abs_diff": 0, "max_abs_diff_pos_sample": 0, "max_abs_diff_pos_channel": 0, "max_abs_diff_pos_frame": 0, "nsamples_diff": 0, "nsamples_diff_percentage": 0.0, "nframes_diff": 0, "nframes_diff_percentage": 0.0, } if per_frame: result["max_abs_diff_pos_frame"] = 0 result["nframes_diff"] = 0 result["nframes_diff_percentage"] = 0.0 if max_diff != 0: if diff.ndim == 1: nsamples_total = diff.shape Loading @@ -268,21 +270,25 @@ def compare(ref: np.ndarray, test: np.ndarray, fs: int) -> dict: nsamples_diff_percentage = nsamples_diff / (nsamples_total * nchannels) * 100.0 nframes = nsamples_total // framesize nframes_diff = 0 for fr in range(nframes): diff_fr = diff[fr * framesize : ((fr + 1) * framesize), :] nframes_diff += 1 if diff_fr.nonzero()[0].size > 0 else 0 nframes_diff_percentage = nframes_diff / nframes * 100.0 result = { "bitexact": False, "max_abs_diff": max_diff, "max_abs_diff_pos_sample": max_diff_pos[0], "max_abs_diff_pos_channel": max_diff_pos[2], "max_abs_diff_pos_frame": max_diff_pos[1], "nsamples_diff": nsamples_diff, "nsamples_diff_percentage": nsamples_diff_percentage, "nframes_diff": nframes_diff, "nframes_diff_percentage": nframes_diff_percentage, } if per_frame: for fr in range(nframes): diff_fr = diff[fr * framesize : ((fr + 1) * framesize), :] nframes_diff += 1 if diff_fr.nonzero()[0].size > 0 else 0 nframes_diff_percentage = nframes_diff / nframes * 100.0 result["max_abs_diff_pos_frame"] = max_diff_pos[1] result["nframes_diff"] = nframes_diff result["nframes_diff_percentage"] = nframes_diff_percentage return result Loading
tests/cmp_pcm.py +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ def cmp_pcm(file1, file2, oc, fs) -> (int, str): ) return 1, "FAIL: File lengths differ" cmp_result = pyaudio3dtools.audioarray.compare(s1, s2, fs) cmp_result = pyaudio3dtools.audioarray.compare(s1, s2, fs, per_frame=False) if cmp_result["bitexact"]: return 0, "SUCCESS: Files are bitexact" Loading