BLOMEGA

Netflix's lip-sync judge gets 81% of its AUC gain from scrambled video, and gains 0.056 on the wrong line

Lab note · 4 October 2026 · BLOMEGA

Abstract technical illustration of a mouth-shaped waveform aligned against a row of phoneme tiles along a diagonal path, cyan and orange on a dark navy ground

On 30 September 2026 a University of Maryland and Netflix team posted Align Then Reason (ATR), a judge that scores a candidate dub line against silent video, and reported mean AUC gains of 59.4%, 50.2% and 50.8% over fine-tuned Qwen3.5 baselines. We recomputed every row of the paper's Table 1: the numbers are exact, but 81% of the 9B gain comes from four synthetic timing corruptions where the baselines sit at chance, the wrong-line (mismatch) gain is +0.056 AUC, and on 4 October 2026 no code, weights or benchmark were public.

ATR's 50.8% gain is mostly baselines learning to see scrambled frames, not better line matching

Table 1 of arXiv:2610.00825 scores 15 systems on seven corruption axes over 2,100 test clips in seven languages. ATR with a Qwen3.5-9B reasoner reaches mean AUC 0.920 against 0.610 for Qwen3.5-9B fine-tuned (SFT) to read lips, which is the paper's 50.8% (0.920 / 0.610 = 1.508, our division). Splitting the same rows by axis, the three content axes go from a mean of 0.737 to 0.874 (+0.137) and the four temporal axes from 0.516 to 0.954 (+0.439). Summing the per-axis gains, temporal corruptions supply 1.755 of 2.167 AUC points, or 81.0%.

The suspicion that a relative gain over an AUC near 0.5 makes a small change look large does not hold here. The absolute gain is +0.310 AUC, and measured as distance above chance ATR-9B sits 3.8 times further out than its baseline (0.420 against 0.110). The 2B result is stronger still on that view: 0.394 against 0.061, 6.5 times. The issue is composition, not arithmetic. Our judgement: a dubbing lead reading "50.8% better" would assume the judge is much better at telling a right line from a wrong one, and on the mismatch axis it moves from 0.730 to 0.786.

Where the 50.8% comes from: ATR-9B vs Qwen3.5-9B SFT, pooled AUC by axis Seven-language benchmark, 2,100 test clips (Table 1, arXiv:2610.00825). Dashed line = chance (0.5). Gain written under each pair. 0.4 0.5 0.6 0.7 0.8 0.9 1.0 AUC 0.730 0.786 Mismatch +0.056 0.737 0.974 Shuffle +0.237 0.743 0.862 Dub +0.119 0.520 0.964 Reverse +0.444 0.513 0.931 Shift +0.418 0.510 0.970 Freeze +0.460 0.519 0.952 Swap +0.433 content axes: 19% of summed gain temporal axes: 81% of summed gain Qwen3.5-9B SFT (mean 0.610) ATR-9B (mean 0.920)
Pooled AUC per axis for Qwen3.5-9B SFT and ATR-9B, from Table 1 of arXiv:2610.00825v1. Gains and the 81% / 19% split are our arithmetic on those rows.

The same split holds at every scale and backbone. Content-only relative gains over the matching baseline are 33.8% (2B), 18.3% (4B), 18.6% (9B), 15.8% (LLaMA-3.1-8B) and 16.4% (Mistral-7B); temporal-only gains are 78.1% to 85.1%. The mismatch axis gains +0.150, +0.088, +0.056, +0.041 and +0.037 respectively, shrinking as the baseline grows.

What Netflix and Maryland published on 30 September 2026

arXiv:2610.00825v1, Align Then Reason: A Multimodal Lip-Sync Judge for Dubbing, by Rui Liu (University of Maryland, College Park, work done as a Netflix intern), Bhavin Jawade, Haoqi Li, Shivam Mehta, Karan Saxena, Yinghong Lan and Cameron R. Wolfe (Netflix). Primary category cs.CV, 15 pages, single version as of 4 October 2026. The first author claimed the paper on Hugging Face on 3 October 2026, under the Netflix organisation.

The task is reference-free: given a silent clip and a text line, score whether the line fits the mouth, before any dubbed audio exists. Stage one encodes frames with Auto-AVSR (768-d, adapted to 256-d) and the line's phonemes with XPhoneBERT, and runs CTC whose labels are the positions 1 to N of the line's phonetic units, so only an in-order path scores well. Stage two hands a LoRA-tuned LLM (rank 16) one soft token per phonetic unit plus a calibrated alignment score written as two decimals in the prompt; the Yes minus No logit is the final score.

Training uses about 50K multilingual samples from "on-screen dialogue segments"; the test set holds 2,100 clips balanced across English, Spanish, French, Japanese, Korean, Brazilian Portuguese and Turkish. Negatives are three content corruptions (mismatch: another clip's line of similar length; shuffle: the true line's words permuted; dub: the professional dub translation) and four temporal ones (reverse, circular shift, freeze, swap halves). Source, licence and consent terms for the clips are not stated.

The headline numbers recomputed against the paper's own tables

QuantityValueSource
Mean AUC gain, ATR over same-size Qwen3.5 SFT59.4% / 50.2% / 50.8% (2B / 4B / 9B); recomputed exactlyAbstract, Table 1; our division
Share of 9B summed gain from temporal axes81.0% (1.755 of 2.167 AUC points)Table 1; our arithmetic
Mismatch AUC, Qwen3.5-9B SFT to ATR-9B0.730 to 0.786 (+0.056)Table 1
Same gain with 3-seed means instead of Table 157.6% / 48.7% / 49.2% (ATR-9B 0.910 ± 0.015, not 0.920)Table 9; our division
English-only mismatch, Auto-AVSR vs ATR-9B0.784 vs 0.765 (baseline wins)Table 7
Paired accuracy, ATR-9B vs best baseline0.939 vs 0.763 Auto-AVSR (+23.1%); Claude Opus 5 0.737Table 2; our division
Shift size, freeze span, frame ratenot reportedSections 2.2, 3.1, Appendix A
Per-language results for full ATRnot reported; scorer-only, 3 axesTable 8
Dub-line reranking Top-1, ATR-9B vs LLaMA-AVSR0.479 vs 0.316 = +51.6% (abstract says 52.0%)Table 5; our division
Script-to-clip per-clip accuracy, ATR-9B vs length-fit heuristic0.746 vs 0.656 = +13.7%; heuristic beats every lip readerTable 6; our division
MuAViC zero-shot vs recalibrated mean AUC0.751 vs 0.875 (recalibration uses 300 genuine target-language clips)Table 3, Section 3.3
Code, weights, benchmarknone found; HF paper page 0 models, 0 datasets, 0 spacesHF and GitHub APIs, 4 Oct 2026, our check

Paper values from arXiv:2610.00825v1. Divisions, splits, shares and release checks are BLOMEGA computations, 4 October 2026.

Every Table 1 mean we recomputed from its seven axis values matches the printed mean to three decimals, for all 15 rows. The tables also agree with each other: the seven-language averages of the scorer rows in Table 8 give 0.696 (mismatch), 0.970 (reverse) and 0.971 (freeze), against 0.695, 0.970 and 0.971 for "w/o LLM reasoner" in Table 4, and Auto-AVSR's per-language averages give 0.601, 0.670 and 0.609 against 0.602, 0.670 and 0.609 in Table 1. Our reading: the per-language table is the scorer without the LLM, which the Table 8 caption says, and the pooled numbers are a straight average across balanced languages.

Three smaller discrepancies. First, Table 1 reports 0.894, 0.904 and 0.920 for the three Qwen3.5 reasoners, while the three-seed means in Table 9 are 0.884, 0.895 and 0.910, each about 0.01 lower; LLaMA and Mistral go the other way (0.890 to 0.895, 0.894 to 0.900). The paper does not say which seed Table 1 shows. Second, the dub-line reranking gain is 0.479 / 0.316 = 1.516, printed as 52.0% in the abstract and conclusion and as 52% in the body. Third, the Table 5 caption credits the 0.479 to "the alignment scorer", while the text and the table row credit ATR-9B.

On script-to-clip assignment the paper compares against "the best lip-reading baseline" (Auto-AVSR, 0.634 per-clip). Its own Table 6 lists an isochrony length-fit heuristic at 0.656 per-clip and 0.397 exact-block, ahead of all four lip readers. Against that heuristic ATR-9B's margin is +0.090 per-clip (+13.7%) and +0.125 exact-block, which the text mentions in passing; the 17.7% in the abstract is the lip-reader comparison.

How a single calibrated number carries all of ATR's timing sensitivity

The ablation in Table 4 locates the timing signal precisely. Removing the calibrated scalar drops mean AUC from 0.920 to 0.672, and reverse, shift and swap fall to 0.525, 0.534 and 0.517, chance level. The authors explain why: soft tokens pool over frames, so they "do not explicitly preserve temporal order". Freeze survives at 0.805 because a frozen frame changes what the mouth looks like, not only the order.

Align, then reason: timing lives in one scalar Pipeline from Sections 2.2 to 2.3 and Appendix A; mean AUC with each part removed from Table 4 (full ATR-9B = 0.920) Silent mouth video no dubbed audio needed Candidate line text only, no timestamps Auto-AVSR 768-d 2-layer transformer, 256-d XPhoneBERT phonemes projected to 256-d CTC over unit positions labels = 1, 2, ..., N order enforced Calibrated scalar a(V,c) 2 decimals in the prompt Per-unit soft tokens pool over frames: no order LLM reasoner (LoRA r16) Qwen3.5 / LLaMA / Mistral Score = logit(Yes) - logit(No) plus short explanation Ablations, mean AUC: no scalar 0.672 (reverse 0.525, shift 0.534, swap 0.517) no LLM reasoner 0.856 (mismatch 0.695) no soft tokens 0.872 no phonetic supervision 0.898 Our reading: temporal sensitivity is carried by the scalar; the LLM adds content discrimination.
ATR pipeline as described in Sections 2.2 and 2.3 and Appendix A of arXiv:2610.00825v1, with mean and per-axis AUC from the Table 4 ablations.

The LLM does the opposite job. Without it the scorer already reaches 0.970 reverse and 0.971 freeze, higher than full ATR-9B on reverse (0.964), and the LLM adds content discrimination: mismatch 0.695 to 0.786, shuffle 0.757 to 0.974, dub 0.701 to 0.862. Our judgement: the shuffle jump is the LLM reading word order in text it can see, since a permuted sentence is usually ungrammatical, so it measures language sense more than lip reading.

The temporal tests corrupt the video, never the text, and the text has no timestamps. That matters for what "timing" means here. Reverse plays the clip backwards, swap exchanges its halves, circular shift wraps the end to the front by an unreported amount, and freeze holds one frame for an unreported span. These are gross order errors. A real dub that starts 80 ms late, or a line whose stressed syllable lands two frames off a bilabial closure, is a different and much smaller perturbation, and arXiv:2610.00825v1 contains no offset sweep in frames or milliseconds and no frame-rate figure (searches of the full text for "fps", "ms", "offset" and "frame rate" return nothing).

Per language, the timing side is flat and the content side is not. In Table 8 the scorer's reverse AUC sits between 0.96 and 0.98 in all seven languages (spread 0.02) and freeze between 0.96 and 0.99. Mismatch spans 0.63 (English) to 0.78 (Korean), a spread of 0.15. English is the scorer's weakest mismatch language and Auto-AVSR's strongest (0.78); Auto-AVSR is at 0.50 on Japanese and Korean, which the authors attribute to tokenizer limits on non-Latin scripts.

Per language, timing is flat and content is not Pooled AUC by test language, alignment scorer only (no LLM), Table 8. Full ATR per-language results are not reported. 0.4 0.5 0.6 0.7 0.8 0.9 1.0 AUC 0.78 0.63 0.98 en 0.60 0.72 0.96 es 0.57 0.67 0.97 fr 0.50 0.73 0.97 ja 0.50 0.78 0.98 ko 0.61 0.70 0.97 pt-BR 0.65 0.64 0.96 tr Auto-AVSR, mismatch Scorer, mismatch (spread 0.15) Scorer, reverse (spread 0.02) Seven-language means of these rows (0.601, 0.696, 0.970) reproduce the pooled 0.602, 0.695 and 0.970 in Tables 1 and 4 (our check).
Per-language pooled AUC from Table 8 of arXiv:2610.00825v1 (alignment scorer without the LLM reasoner, against Auto-AVSR). The match to pooled values in Tables 1 and 4 is our cross-check.

What this means for dubbing QC and lip-sync data teams

Check it yourself

Get the text (we used pypdf because pdftotext was not installed; pdftotext -layout works as well):

curl -sL https://arxiv.org/pdf/2610.00825 -o atr.pdf
python3 -c "import pypdf;r=pypdf.PdfReader('atr.pdf');open('atr.txt','w').write('\n'.join(p.extract_text(extraction_mode='layout') for p in r.pages))"
grep -niE "fps|millisec| ms |frame rate|offset|github|huggingface" atr.txt   # 4 Oct 2026: no matches

Recompute the headline and the axis split from Table 1 (columns: mismatch, shuffle, dub, reverse, shift, freeze, swap, printed mean):

python3 - <<'PY'
sft={'2B':[.632,.604,.685,.502,.501,.502,.503,.561],'4B':[.696,.739,.750,.510,.505,.505,.510,.602],
     '9B':[.730,.737,.743,.520,.513,.510,.519,.610]}
atr={'2B':[.782,.967,.821,.945,.909,.905,.932,.894],'4B':[.784,.960,.841,.955,.926,.916,.944,.904],
     '9B':[.786,.974,.862,.964,.931,.970,.952,.920]}
for k in sft:
    a,b=atr[k],sft[k]; g=[x-y for x,y in zip(a[:7],b[:7])]
    print(k,'rel %.1f%%'%(100*(a[7]/b[7]-1)),'abs +%.3f'%(a[7]-b[7]),
          'temporal share %.3f'%(sum(g[3:])/sum(g)),'mismatch +%.3f'%g[0],
          'above-chance ratio %.1f'%((a[7]-.5)/(b[7]-.5)))
for k,s in {'2B':.884,'4B':.895,'9B':.910}.items(): print(k,'seed-mean gain %.1f%%'%(100*(s/sft[k][7]-1)))
print('rerank',0.479/0.316-1,'s2c vs isochrony',0.746/0.656-1)
PY

Expected: 2B 59.4%, 4B 50.2%, 9B 50.8%; temporal share 0.810 at 9B; mismatch +0.056 at 9B; seed-mean gains 57.6%, 48.7%, 49.2%; rerank 0.516; script-to-clip 0.137. Table 1 is on page 6 of the PDF, Tables 2 and 3 on page 7, Table 4 on page 8, Tables 7 to 9 on page 15.

Release state, run on 4 October 2026 at 19:05 UTC:

curl -s https://huggingface.co/api/papers/2610.00825 | python3 -c "import sys,json;d=json.load(sys.stdin);print(d['numTotalModels'],d['numTotalDatasets'],d['numTotalSpaces'],d['organization']['name'])"
# 0 0 0 netflix
curl -s https://huggingface.co/api/arxiv/2610.00825/repos      # {"models":[],"datasets":[],"spaces":[]}
curl -s "https://huggingface.co/api/models?author=lr10260"     # 19 models, newest createdAt 2026-05-21, none ATR
for p in 1 2 3; do curl -s "https://api.github.com/users/Netflix/repos?per_page=100&page=$p"; done \
  | grep '"name"' | grep -iE 'lip|sync|dub|judge|align|reason'  # 239 repos, none relevant

What would prove this wrong

Our claim is that ATR's reported advantage is concentrated in coarse synthetic timing corruptions, and that its edge on telling a right line from a plausible wrong one is small (+0.056 AUC on mismatch at 9B, behind Auto-AVSR in English).

It would be wrong if the authors, or anyone with released weights, publish an offset sweep showing ATR at 0.85 AUC or above on shifts of three frames or fewer (about 120 ms at 25 fps), or a human-rated dubbing test where ATR's mismatch-type AUC beats a fine-tuned lip reader by 0.10 or more. We predict that by 31 March 2027 neither will be public, and that if weights are released, an independent re-run of the mismatch axis lands within 0.03 of 0.786.

Sources

  1. Rui Liu, Bhavin Jawade, Haoqi Li, Shivam Mehta, Karan Saxena, Yinghong Lan, Cameron R. Wolfe (University of Maryland, College Park; Netflix). Align Then Reason: A Multimodal Lip-Sync Judge for Dubbing. arXiv:2610.00825v1, submitted 30 September 2026. Sections 2 to 3, Tables 1 to 9, Appendices A to D.
  2. Hugging Face paper page for 2610.00825, Netflix organisation, claimed by the first author 3 October 2026; API checked 4 October 2026: 0 linked models, datasets or spaces.
  3. github.com/Netflix, 239 public repositories listed via api.github.com on 4 October 2026; none matches the paper.
  4. Anwar et al. MuAViC: A Multilingual Audio-Visual Corpus. arXiv:2303.00628, 2023. Source of the German, Arabic and Russian transfer test.
  5. Ma et al. Auto-AVSR, ICASSP 2023; Nguyen et al. XPhoneBERT, Interspeech 2023. The public encoders ATR builds on.
  6. BLOMEGA computations, 4 October 2026: Table 1 means and per-axis splits, seed-mean gains from Table 9, Table 8 to Table 4 cross-check, downstream ratios from Tables 5 and 6, release checks.

FAQ

Is the 50.8% AUC improvement in Align Then Reason inflated by a baseline near 0.5?

No, the absolute gain is large: ATR-9B mean AUC 0.920 against 0.610 for Qwen3.5-9B SFT, +0.310 AUC, or 3.8 times the baseline's distance above chance. What the single number hides is where the gain sits. Recomputed from Table 1, the four synthetic temporal axes (reverse, shift, freeze, swap) contribute 81% of the summed per-axis gain, while the mismatch axis, a wrong line of similar length, moves only from 0.730 to 0.786.

Does ATR test small lip-sync offsets of a few frames?

The paper does not say. Temporal negatives are full reversal, a circular shift, a frozen frame held for a span, and swapped halves. Neither the shift size in frames or milliseconds, the freeze span, nor the video frame rate is reported in arXiv:2610.00825v1, so there is no evidence either way on offsets of one to three frames.

Can a dubbing team download and run the ATR lip-sync judge?

Not as of 4 October 2026. The paper contains no code or data link, the Hugging Face paper page lists 0 linked models, 0 datasets and 0 spaces, none of Netflix's 239 public GitHub repositories matches, and the first author's 19 Hugging Face models predate the paper (newest 21 May 2026). Its parts are public: Auto-AVSR, XPhoneBERT and the Qwen3.5, LLaMA-3.1 and Mistral backbones.