import jiwer import glob import os import re from collections import defaultdict root_path = 'sample/wrd/' clova = 'clova_200.wrd' aws = 'aws_200.wrd' GT = 'GT_200.wrd' def get_list(list, path): with open(os.path.join(root_path, path), 'r') as f: for line in f: line = f.readline().strip() line = re.sub(r"[^\uAC00-\uD7A30-9a-zA-Z\s]", "", line) list.append(line) return list def get_error_rate(gt, target, filename): cer_list = [] wer_list = [] sum_cer = 0 sum_wer = 0 for _gt, _target in zip(gt, target): cer = jiwer.cer(_gt, _target) wer = jiwer.wer(_gt, _target) cer_list.append(cer) wer_list.append(wer) sum_cer += cer sum_wer += wer print(f"cer avg : {sum_cer/len(cer_list)}") print(f"wer avg : {sum_wer/len(wer_list)}") if __name__ == '__main__': clova_list = get_list([], clova) aws_list = get_list([], aws) GT_list = get_list([], GT) get_error_rate(GT_list, clova_list, '') get_error_rate(GT_list, aws_list, '')