Spaces:
Running on Zero
Running on Zero
| """Quick partial comparison: sensitive vs novad_strict on available calls.""" | |
| import os, json, jiwer | |
| from eval_common import normalise | |
| DATA = r"d:\Desktop\ai-ml-capstone\data\na_testset" | |
| with open(os.path.join(DATA, "manifest.json"), encoding="utf-8") as f: | |
| manifest = {m["call_id"]: m for m in json.load(f)} | |
| def acc(ref, hyp): | |
| r, h = normalise(ref), normalise(hyp) | |
| n = len(r.split()) | |
| return (1 - jiwer.wer(r, h)) * 100 if n else 100.0, n | |
| def overall(m, ag, cu): | |
| aa, na = acc(m["agent_transcript"], ag) | |
| ac, nc = acc(m["customer_transcript"], cu) | |
| return (aa*na + ac*nc) / (na+nc), na+nc | |
| def words(path): | |
| with open(path, encoding="utf-8") as f: | |
| r = json.load(f) | |
| return " ".join(x["word"] for x in r["agent"]), " ".join(x["word"] for x in r["customer"]) | |
| configs = [ | |
| ("baseline", "results_channels"), | |
| ("sensitive", "results_vad_sensitive"), | |
| ("novad_str", "results_vad_novad_strict"), | |
| ] | |
| calls = [ | |
| "en_US_General_Health_1587175", | |
| "en_CA_Aviation_1588678", | |
| "en_CA_Banking_1588683", | |
| "en_US_General_Banking_1584540", | |
| "en_CA_Banking_1592237", | |
| ] | |
| hdr = f" {'call_id':<32}" | |
| for name, _ in configs: hdr += f" {name:>10}" | |
| print(hdr) | |
| print(" " + "-" * 70) | |
| for cid in calls: | |
| m = manifest[cid]; accent = m["accent"] | |
| row = f" {cid:<32}" | |
| base_o = None | |
| for name, d in configs: | |
| p = os.path.join(DATA, d, accent, cid + ".json") | |
| if not os.path.exists(p): | |
| row += f" {'--':>10}"; continue | |
| if name == "baseline": | |
| with open(p, encoding="utf-8") as f: j = json.load(f) | |
| ag = " ".join(x["word"] for x in j["agent"]) | |
| cu = " ".join(x["word"] for x in j["customer"]) | |
| else: | |
| ag, cu = words(p) | |
| o, _ = overall(m, ag, cu) | |
| if name == "baseline": | |
| base_o = o; row += f" {o:>9.1f}%" | |
| else: | |
| delta = f"({o-base_o:+.1f})" if base_o else "" | |
| row += f" {o:>6.1f}%{delta:>4}" | |
| print(row) | |