def test_analyze_directory(soundfiles_dir,call_back, do_long_tests):
    if not do_long_tests:
        return
    kwargs = {'rep': 'mfcc','win_len': 0.025,
                'time_step': 0.01, 'num_coeffs': 13,
                'freq_lims': (0,8000),'return_rep':True,
                'use_multi':True}
    scores,reps = analyze_directory(soundfiles_dir, call_back = call_back,**kwargs)
示例#2
0
    def run(self):
        kwargs = self.kwargs
        self.results = list()
        if kwargs['type'] == 'one':
            try:
                asim = analyze_directory(kwargs['query'], **kwargs)
            except AcousticSimError as e:
                self.errorEncountered.emit(e)
                return
            except Exception as e:
                e = PCTPythonError(e)
                self.errorEncountered.emit(e)
                return
        elif kwargs['type'] == 'two':
            try:
                asim, output_val = acoustic_similarity_directories(
                    *kwargs['query'], **kwargs)
            except AcousticSimError as e:
                self.errorEncountered.emit(e)
                return
            except Exception as e:
                e = PCTPythonError(e)
                self.errorEncountered.emit(e)
                return

            #asim[(kwargs['query'][0],kwargs['query'][1])] = output_val
        elif kwargs['type'] == 'file':
            try:
                asim = acoustic_similarity_mapping(kwargs['query'], **kwargs)
            except AcousticSimError as e:
                self.errorEncountered.emit(e)
                return
            except Exception as e:
                e = PCTPythonError(e)
                self.errorEncountered.emit(e)
                return
        if self.stopped:
            return
        for k, v in asim.items():
            if self.stopped:
                return
            self.results.append(list(k) + [v])

        if kwargs['type'] == 'two':
            self.results.append([
                os.path.basename(kwargs['query'][0]),
                os.path.basename(kwargs['query'][1]), output_val
            ])
        else:
            self.results.append(['AVG', 'AVG', sum(asim.values()) / len(asim)])
        if self.stopped:
            self.finishedCancelling.emit()
            return
        self.dataReady.emit(self.results)
def test_clustering(test_dir, call_back):
    kwargs = {'rep': 'mfcc','win_len': 0.025,
                'time_step': 0.01, 'num_coeffs': 13,
                'freq_lims': (0,8000),'return_rep':True}
    scores,reps = analyze_directory(test_dir, call_back = call_back,**kwargs)
    kwargs['cache'] = reps
    cn = ClusterNetwork(reps)

    cn.cluster(scores,'complete',False)

    cn.cluster(scores, 'affinity', False)

    cn.cluster(scores, 'affinity', True)
def test_analyze_directory(soundfiles_dir, call_back):
    kwargs = {
        'rep': 'mfcc',
        'win_len': 0.025,
        'time_step': 0.01,
        'num_coeffs': 13,
        'freq_lims': (0, 8000),
        'return_rep': True,
        'use_multi': True
    }
    scores, reps = analyze_directory(soundfiles_dir,
                                     call_back=call_back,
                                     **kwargs)
    def run(self):
        kwargs = self.kwargs
        self.results = list()
        if kwargs['type'] == 'one':
            try:
                asim = analyze_directory(kwargs['query'], **kwargs)
            except AcousticSimError as e:
                self.errorEncountered.emit(e)
                return
            except Exception as e:
                e = PCTPythonError(e)
                self.errorEncountered.emit(e)
                return
        elif kwargs['type'] == 'two':
            try:
                asim, output_val = acoustic_similarity_directories(*kwargs['query'],**kwargs)
            except AcousticSimError as e:
                self.errorEncountered.emit(e)
                return
            except Exception as e:
                e = PCTPythonError(e)
                self.errorEncountered.emit(e)
                return

            #asim[(kwargs['query'][0],kwargs['query'][1])] = output_val
        elif kwargs['type'] == 'file':
            try:
                asim = acoustic_similarity_mapping(kwargs['query'], **kwargs)
            except AcousticSimError as e:
                self.errorEncountered.emit(e)
                return
            except Exception as e:
                e = PCTPythonError(e)
                self.errorEncountered.emit(e)
                return
        if self.stopped:
            return
        for k,v in asim.items():
            if self.stopped:
                return
            self.results.append(list(k) + [v])

        if kwargs['type'] == 'two':
            self.results.append([os.path.basename(kwargs['query'][0]),os.path.basename(kwargs['query'][1]), output_val])
        else:
            self.results.append(['AVG', 'AVG',sum(asim.values())/len(asim)])
        if self.stopped:
            self.finishedCancelling.emit()
            return
        self.dataReady.emit(self.results)
def main():
    kwargs = {'rep':'mfcc',
                'match_function':word_distance,
                'use_multi':True,
                'num_cores':4,
                'return_rep': True,
                }
    scores, reps = analyze_directory(data_dir, **kwargs)

    cn = ClusterNetwork(reps)


    cluster_method = 'affinity'
    one_cluster = False

    cn.cluster(scores,cluster_method,one_cluster)
    save_output(cn)
示例#7
0
def test_clustering(test_dir, call_back):
    kwargs = {
        'rep': 'mfcc',
        'win_len': 0.025,
        'time_step': 0.01,
        'num_coeffs': 13,
        'freq_lims': (0, 8000),
        'return_rep': True
    }
    scores, reps = analyze_directory(test_dir, call_back=call_back, **kwargs)
    kwargs['cache'] = reps
    cn = ClusterNetwork(reps)

    cn.cluster(scores, 'complete', False)

    cn.cluster(scores, 'affinity', False)

    cn.cluster(scores, 'affinity', True)
    def run(self):
        token_path = self.settings['path']

        cluster_method = self.settings['cluster_alg']
        one_cluster = self.settings['one_cluster']
        if self.redo_scores:
            self.updateProgress.emit("Recalculating distances...")
            kwarg_dict = self.settings.acousticsim_kwarg()
            kwarg_dict['cache'] = self.cn.reps
            kwarg_dict['return_rep'] = False
            scores = analyze_directory(token_path,**kwarg_dict)
        else:
            scores = None
        self.updateProgress.emit("Clustering tokens...")
        self.cn.cluster(scores,cluster_method,one_cluster)

        self.updateProgress.emit("Ready")
        self.dataReady.emit(self.cn)
def find_durations():
    kwargs = {'rep':'mfcc',
                'match_function':word_distance,
                'use_multi':True,
                'num_cores':4,
                'return_rep': True,
                }
    scores, reps = analyze_directory(data_dir, **kwargs)
    out = list()
    with open('output_dur_word.txt', 'w') as f:
        writer = csv.writer(f, delimiter = '\t')
        writer.writerow(['Label','Duration'])
        for v in reps.values():
            if 'Exp3' not in v._true_label:
                continue
            base, _ = os.path.splitext(v._filepath)
            one_textgrid = base + '.TextGrid'
            one_begin,one_end = get_vowel_points(one_textgrid,
                        tier_name = 'word', vowel_label = 'word')
            dur = one_end - one_begin
            writer.writerow([v._true_label,str(dur)])
    def run(self):
        token_path = self.settings['path']
        if not os.path.exists(token_path):
            token_path = ''
        if not token_path:
            return
        self.updateProgress.emit("Processing acoustic tokens, please be patient...")
        kwarg_dict = self.settings.acousticsim_kwarg()

        scores,self.reps = analyze_directory(token_path, call_back = self.updateProgress.emit,**kwarg_dict)

        self.updateProgress.emit("Finished acoustic processing! Clustering tokens now...")
        cn = ClusterNetwork(self.reps)


        cluster_method = self.settings['cluster_alg']
        one_cluster = self.settings['one_cluster']

        cn.cluster(scores,cluster_method,one_cluster)
        self.updateProgress.emit("Ready")
        self.dataReady.emit(cn)
def test_analyze_directory(call_back):
    kwargs = {'rep': 'mfcc','win_len': 0.025,
                'time_step': 0.01, 'num_coeffs': 13,
                'freq_lims': (0,8000),'return_rep':True,
                'use_multi':True}
    scores,reps = analyze_directory(TEST_DIR, call_back = call_back,**kwargs)