| import sys | |
| import numpy as np | |
| infile=sys.argv[1] | |
| outfile=sys.argv[2] | |
| fout = open(outfile, "w") | |
| fout.write("utt" + '\t' + "wav_res" + '\t' + 'res_wer' + '\t' + 'text_ref' + '\t' + 'text_res' + '\t' + 'res_wer_ins' + '\t' + 'res_wer_del' + '\t' + 'res_wer_sub' + '\n') | |
| wers = [] | |
| wers_below50 = [] | |
| inses = [] | |
| deles = [] | |
| subses = [] | |
| n_higher_than_50 = 0 | |
| for line in open(infile, "r").readlines(): | |
| wav_path, wer, text_ref, text_res, inse, dele, subs = line.strip().split("\t") | |
| if float(wer) > 0.5: | |
| n_higher_than_50 += 1 | |
| else: | |
| wers_below50.append(float(wer)) | |
| wers.append(float(wer)) | |
| inses.append(float(inse)) | |
| deles.append(float(dele)) | |
| subses.append(float(subs)) | |
| fout.write(line) | |
| wer = round(np.mean(wers)*100,3) | |
| wer_below50 = round(np.mean(wers_below50)*100,3) | |
| subs = round(np.mean(subses)*100,3) | |
| dele = round(np.mean(deles)*100,3) | |
| inse = round(np.mean(inses)*100,3) | |
| subs_ratio = round(subs / wer, 3) | |
| dele_ratio = round(dele / wer, 3) | |
| inse_ratio = round(inse / wer, 3) | |
| fout.write(f"WER: {wer}%\n") | |
| fout.close() | |
| print(f"WER: {wer}%\n") | |