def load(fname, verbose=0): data = utils.parse_hvsrpy_output(fname) std_curve = np.log(data["upper"]) - np.log(data["curve"]) clarity = utils.sesame_clarity(data["frequency"], data["curve"], std_curve, data["std_f0"], verbose=verbose) reliability = utils.sesame_reliability(data["windowlength"], data["accepted_windows"], data["frequency"], data["curve"], std_curve, verbose=verbose) return (reliability, clarity)
def test_sesame_with_limits(self): frequency = np.array([0.3, 0.4, 0.5, 0.6, 0.9, 1, 1.1, 1.2, 1.3]) mean_curve = np.array([1, 3, 1, 1, 1, 1, 1, 3, 1]) std_curve = np.ones(9) * 0.2 f0_std = 0.07 # reliability expecteds = [3, 3] settings = [(0.3, 0.5), (0.9, 1.3)] for expected, limits in zip(expecteds, settings): with open(os.devnull, "w") as sys.stdout: returned = np.sum( utils.sesame_reliability(60, 10, frequency, mean_curve, std_curve, search_limits=limits, verbose=2)) sys.stdout = sys.__stdout__ self.assertEqual(expected, returned) # clarity expecteds = [6, 6] settings = [(0.3, 0.5), (0.9, 1.3)] for expected, limits in zip(expecteds, settings): with open(os.devnull, "w") as sys.stdout: returned = np.sum( utils.sesame_clarity(frequency, mean_curve, std_curve, f0_std, search_limits=limits, verbose=2)) sys.stdout = sys.__stdout__ self.assertEqual(expected, returned)