def __call__(self, test_path, reference_path, window=None, score_rate=None, return_mean=False):
        """
        window: float
            the window length in seconds to use for scoring the files.
        score_rate:
            the sampling rate specified for scoring the files.
        """
        if test_path is None:
            print(f'Please provide audio path for test_path')
            return
        results = {}
             
        if os.path.isdir(test_path):
            audio_list = self.get_audio_list(test_path)
            if audio_list is None: return
            for audio_id in audio_list:
                results_id = {}                
                if reference_path is not None:
                    data = self.audio_reader(test_path+'/'+audio_id, reference_path+'/'+audio_id)
                else:
                    data = self.audio_reader(test_path+'/'+audio_id, None)
                for score in self.scores:
                    result_score = score.scoring(data, window, score_rate)
                    results_id[score.name] = result_score
                results[audio_id] = results_id
        else:            
            data = self.audio_reader(test_path, reference_path)
            for score in self.scores:
                result_score = score.scoring(data, window, score_rate)
                results[score.name] = result_score

        if return_mean:
            mean_result = compute_mean_results(*results.values())
            results['Mean_Score'] = mean_result

        return results

        window: float
            the window length in seconds to use for scoring the files.
        score_rate:
            the sampling rate specified for scoring the files.
        
speechscore/speechscore.py