Пример #1
0
 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)
Пример #2
0
    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)