1from pathlib import Path
2from urgent_mos.api.infer import infer
3from urgent_mos.utils import load_model_from_checkpoint
4
5model = load_model_from_checkpoint("path/to/model.pt", "cuda")
6
7# Single audio path
8scores = infer(model, ["/path/to/audio.wav"])
9print(scores[0]) # e.g. {"mos_overall": 3.42, ...}
10
11# List of audio paths
12paths = ["a.wav", "b.wav", "c.wav"]
13scores = infer(model, paths)
14for p, s in zip(paths, scores):
15 print(p, s["mos_overall"])
16
17# HuggingFace dataset (e.g. urgent2026-sqa ACR)
18from datasets import load_dataset
19ds = load_dataset("urgent-challenge/urgent2026-sqa", "acr", split="test")
20audios = []
21srs = []
22for i in range(len(ds)):
23 row = ds[i]
24 s = row["audio"].get_all_samples()
25 audios.append(s.data.squeeze(0).float())
26 srs.append(getattr(s, "sample_rate", row["sample_rate"]))
27scores = infer(model, audios, sample_rate=srs)
28for i, row in enumerate(ds):
29 print(row["sample_id"], scores[i]["mos_overall"])
1from urgent_mos.api.infer import infer_pairs
2from urgent_mos.utils import load_model_from_checkpoint
3
4model = load_model_from_checkpoint("path/to/model.pt", "cuda")
5
6# Single pair (path_a, path_b)
7scores = infer_pairs(model, [("/path/to/audio_a.wav", "/path/to/audio_b.wav")])
8print(scores[0]) # e.g. {"mos_overall": 0.15, ...} (positive = A better)
9
10# List of path pairs
11pairs = [("a1.wav", "b1.wav"), ("a2.wav", "b2.wav")]
12scores = infer_pairs(model, pairs)
13for (a, b), s in zip(pairs, scores):
14 print(f"{a} vs {b}", s["mos_overall"])
15
16# HuggingFace dataset (e.g. urgent2026-sqa CCR)
17from datasets import load_dataset
18ds = load_dataset("urgent-challenge/urgent2026-sqa", "ccr", split="test")
19audios_a, audios_b, srs = [], [], []
20for i in range(len(ds)):
21 row = ds[i]
22 sa = row["audio_a"].get_all_samples()
23 sb = row["audio_b"].get_all_samples()
24 audios_a.append(sa.data.squeeze(0).float())
25 audios_b.append(sb.data.squeeze(0).float())
26 sra = getattr(sa, "sample_rate", row["sample_rate"])
27 srb = getattr(sb, "sample_rate", row["sample_rate"])
28 srs.append((sra, srb))
29scores = infer_pairs(model, list(zip(audios_a, audios_b)), sample_rate=srs)
30for i, row in enumerate(ds):
31 print(row["sample_id"], scores[i]["mos_overall"])