BLOMEGA

A trim-and-pad script beats Index-Homura's 81.92% syllable hit rate on SandGlass, so dubbing teams must read the quality column

Lab note · 4 October 2026 · BLOMEGA

Abstract technical illustration of an hourglass of fine luminous grains feeding a row of evenly spaced bars, cyan and orange on a dark navy ground

Bilibili's Index team says its Index-Homura dubbing model lands 81.92% of SandGlass outputs within 10% of a requested syllable count, against 47.64% for GPT-5.6-Sol. We downloaded SandGlass when it went public on 3 October 2026 and ran the official syllable scorer on two dumb baselines. A script that just trims or pads the English reference hits 93.33%. The untouched reference hits 18.67%, about where DeepSeek-V4-Flash (16.36%) and Hy-MT2-7B (18.86%) land. So the syllable column measures whether a system tries to hit the count. Whether the line still means anything is up to the quality judge, and every Homura gain in control came with a drop there.

A trim-and-pad script beats Index-Homura's syllable hit rate, so the quality column carries the result

SandGlass (released as IndexTeam/Sandglass-Bench, MIT licence) has 3,600 cases: 300 Chinese subtitle lines, 4 target languages and 3 length targets each. Only the 900 English rows carry a reference translation. On those 900 we ran syllable_metrics() from the release's own evaluate.py, unchanged, on two inputs. First, the reference unchanged for all three targets. It gets 18.67% within 10%, 20.22% within one syllable, and a slope of 0 (it can't respond to the target). Second, the reference with trailing words cut until it fits, padded with "yeah" when it falls more than one syllable short. That gets 100% within one syllable, 93.33% within 10%, mean relative deviation 0.049 and a slope of 0.962.

Compare that with paper Table 9. Index-Homura-9B (RL) gets 74.42% within one syllable, 81.92% within 10%, deviation 0.0693 and slope 0.968. Table 10 puts its English-only rate at 78.67%. Our script's outputs read like "If we go by the yeah yeah yeah" for a 9-syllable target, so they would fail any quality check. That's the point. In our judgement, syllable adherence on SandGlass is easy to game and close to meaningless on its own. Homura's real claim is the pair: 81.92% adherence at 0.7863 judged quality. Table 9 also shows that pair is worse on quality than the Homura-9B SFT checkpoint (0.8581), GPT-5.6-Sol (0.8715) and DeepSeek-V4-Flash (0.8742).

SandGlass: share of outputs within 10% of the requested syllable count Orange = BLOMEGA runs of the official syllable scorer (English subset); blue/grey = paper Table 9 and 10 0% 25% 50% 75% 100% Trim-and-pad script on the reference (ours, English, 900 cases) 93.33% Index-Homura-9B RL (paper, 4 languages) 81.92% Index-Homura-9B RL, English only (paper Table 10) 78.67% Index-Homura-2B RL (paper) 63.08% GPT-5.6-Sol, low (paper) 47.64% Index-Homura-9B SFT (paper) 45.75% Hy-MT2-30B-A3B (paper) 22.39% Hy-MT2-7B (paper) 18.86% Unconstrained reference, same line for all 3 targets (ours, English) 18.67% DeepSeek-V4-Flash, no thinking (paper) 16.36% within 10% of target (higher = closer to requested length)
Within-10% rates on SandGlass. Orange bars are our runs of the release's syllable_metrics() on the 900 English cases (no quality judge). Other bars are from arXiv 2609.40181 Tables 9 and 10, which cover all 3,600 cases unless marked English.

One caveat: our baselines cover English only, because only English has a reference to trim, and they were not run through the Gemini-2.5-Flash quality judge. The comparison holds the syllable metric fixed. It does not compare full benchmark scores.

What Bilibili's Index team released between 28 September and 3 October 2026

The paper is arXiv 2609.40181v1, Index-Translate: A Multilingual Translation Model Family: Text, Speech, Controlled Dubbing, and Long-Document Translation. It was submitted 30 September 2026 by Tianjiao Li (project lead) and ten co-authors of the Index LLM Team, copyright Bilibili Index Team. All models start from Qwen3.5 base models. They get 167.77B tokens of multilingual mid-training (Table 2), then General, Instruction and Meme specialists merged at 0.8/0.1/0.1 and refined with multi-teacher on-policy distillation (MOPD). Three specialists sit on top: Index-Echo (speech-to-text and speech-to-speech), Index-Homura (syllable-controlled translation) and Index-NativeLong (whole-book translation in one generation).

The weights came out before the paper. We checked the Hugging Face API on 4 October 2026. The 2B and 9B checkpoints of Index-Translate, Homura, NativeLong and both Echo variants all have createdAt 28 September 2026. Index-Translate-35B-A3B-preview followed on 2 October, and GGUF, FP8 and FP4 variants arrived on 2 and 3 October. Every IndexTeam model repo is tagged Apache-2.0 and none is gated. The four benchmark repos (SandGlass, InstTrans, Meme, NAtIveLong) were created on 3 October 2026. The GitHub repo bilibili/Index-Translate (Apache-2.0, created 15 September 2026) showed 40 commits and 584 stars when we checked.

ArtifactHugging Face idCreatedSize / contentLicenceSource
Index-Translate 2B / 9BIndexTeam/Index-Translate-2B, -9B28 Sep 20262.27B / 9.65B params (safetensors)Apache-2.0HF API, our check 4 Oct 2026
Index-Translate 35B-A3BIndexTeam/Index-Translate-35B-A3B-preview2 Oct 202635.95B params, 71.9 GB; labelled previewApache-2.0HF API
Index-Homura 2B / 9BIndexTeam/Index-Homura-2B, -9B28 Sep 20262.27B / 8.95B paramsApache-2.0HF API
Index-NativeLong 2B / 9BIndexTeam/Index-Nailong-2B, -9B (sic)28 Sep 20262.21B / 8.95B paramsApache-2.0HF API, model card
Index-Echo S2TT / S2ST 2B and 9BIndexTeam/Index-Echo-S2TT-*, -S2ST-*28 Sep 20265.9 to 30.6 GB per repoApache-2.0HF API
SandGlass benchmarkIndexTeam/Sandglass-Bench3 Oct 20263,600 rows, scorer, judge prompt; no model outputsMITHF API, our download
NativeLong benchmarkIndexTeam/NAtIveLong3 Oct 202684 BWB + 84 GuoFeng case indexes, no text; General Books absentother (upstream terms)dataset card
InstTrans, Meme benchmarksIndexTeam/InstTrans-Bench, Meme-Translation-Bench3 Oct 2026test JSONL plus judge codeCC BY-NC 4.0HF API

Parameter counts are the safetensors.total field of the HF model API; GB is the sum of file sizes. Checked 4 October 2026.

Which Index-Translate numbers hold up against the tables and the release

We rechecked each headline claim against the paper's own rows and the released files. Most of the arithmetic holds. The weak points are scope and one copied cell.

Claim or quantityWhat the tables or files showSource
Vertical mean (Table 4) equals the mean of the five domain columns (Table 5)Matches to 4 decimals for all 14 modelsTables 4, 5; our recomputation
"Comparable to 100B-scale translation models"The only 100B-plus row is North-Small-Translate (218B-A25B). Index-Translate-9B beats it on all 9 columns of Table 4(a) and all 6 of 4(b)Table 4; our count
"Comparable to frontier models"9B beats GPT-5.6-Sol on 6 of 9 columns but trails by 13.75 points on the WMT26 judge (75.35 vs 89.10) and on IFMTBench IFscore (0.8760 vs 0.9367)Table 4(a); our count
DeepSeek-V4.1-Flash and Gemini 3.5 Flash Lite instTrans scoresIdentical in both columns: Quality 0.6068, IFscore 0.6374. Every other column differs, so this looks like a copied cellTable 4(a)
"Translation in 150 languages"150 inventory entries; at most 83 have any reported text score (21 FLORES + 62 low-resource, if disjoint); 81 in the expansion studyAppendix C, Tables 3, 15
SandGlass size and target rule3,600 rows, 300 lines, 60 per genre; all 3,600 targets equal round(round(duration x rate) x factor); prompts match targetsOur script on sandglass_bench.jsonl
Targets under 10 syllables, where within-10% means an exact hit240 of 3,600 overall; 33.3% of English short targetsOur count
Homura-9B SFT to RLWithin 10%: 45.75% to 81.92%; quality 0.8581 to 0.7863Table 9
Homura-2B syllable reward weight 1 to 2Within 10%: 63.08% to 74.19%; quality 0.7615 to 0.6900Section 5.3, Figure 5
Syllable control after merging0.1-weight video expert in a 4-way 2B merge: hit rate 0.1544 vs 0.5439 for the specialistSection 5.2
NativeLong release vs paperPaper tests 3 corpora (GuoFeng, BWB, General Books en to zh). Release covers 2, metadata only, zh to enTable 11, NAtIveLong card
Released Homura client vs benchmark settingsClient: temperature 0.3, no video context. Paper: greedy decoding, 512-token cap, prompt with summary and neighbouring linesIndex-Homura-9B card, Section 4.5

Paper values from arXiv 2609.40181v1. Counts, recomputations and dataset checks are BLOMEGA's, 4 October 2026.

The "100B-scale" claim holds against the one 100B-plus model in the table, and decisively. The "frontier" claim depends on which column you read. On the reference-based metrics (FLORES and WMT24++ COMET-22) the 9B model and the 35B-A3B preview edge GPT-5.6-Sol: 0.8789 and 0.8794 against 0.8650 on FLORES. On the one reference-free, LLM-judged score (WMT26), every frontier row leads: GPT-5.6-Sol 89.10, DeepSeek-V4.1-Flash 83.55, Gemini 3.5 Flash Lite 79.52, Index-Translate-35B-A3B 76.76. In our judgement a localization buyer should weight the WMT26 gap more than the 0.014 COMET margin.

"150 languages" is the inventory; the measured scope narrows by task Languages in the supported inventory (Appendix C) 150 Max languages with a reported text score (21 + 62 FLORES) 83 Target languages in the mid-training expansion study (Table 15) 81 Core languages incl. English and Chinese 22 Languages the syllable counter supports 22 S2ST directions (Index-Echo) 6 Target languages Index-Homura is measured on 4 Directions in the released NativeLong client 4 Counts from arXiv 2609.40181 Tables 1, 3, 15, Appendix C; syllable_calculation.py docstring; Index-Nailong-9B model card.
How many languages each part of the family is measured on, from the paper and the model cards. The 83 assumes the 21 FLORES languages and the 62 low-resource FLORES languages do not overlap; the paper does not list the 62.

How SandGlass turns a subtitle's duration into a syllable target and a score

The target comes from the clock, not the source text. Each Chinese line has a timed duration (0.84 to 7.0 seconds, median 2.3). The anchor is duration times a fixed speaking rate per language: 6.19 syllables per second for English, 7.84 for Japanese, 7.82 for Spanish, 8.4 for Arabic. The short and long targets are 0.75 and 1.25 times the anchor. We recomputed all 3,600 targets from the metadata, and none deviate from that rule. Median natural targets come out at 14 syllables (English), 18 (Japanese and Spanish) and 19 (Arabic). The rates are calibrated to roughly natural length. The English reference translations have a median of 13.5 syllables against a median natural target of 14.

SandGlass: the requested length comes from the clock, the score from two separate checks Benchmark card and evaluate.py of IndexTeam/Sandglass-Bench (public-v1, 3 Oct 2026) Chinese subtitle line 0.84 to 7.0 s, median 2.3 s 300 lines, 5 genres x 60 anchor = duration x rate en 6.19, ja 7.84 es 7.82, ar 8.4 syll/s 3 targets x0.75 / x1.0 / x1.25 3,600 cases prompt: translate into N syllables, with video context model output one line of text rule-based syllable counter pyphen / script rules; ar rated 'medium' Gemini-2.5-Flash judge, no reference 0 / 0.5 / 1, told the length limit reward 1.0 if within 1 syll or 5%, 0 at 50% quality mean over cases score = (syllable_reward + quality) / 2 -> a fitted output with quality 0 still scores 0.5 Only English rows carry a reference translation (900 of 3,600). No per-model outputs are in the release, so Table 9 cannot be re-scored. Japanese (7.84) and Spanish (7.82) rates give identical median targets: 14 / 18 / 22 syllables.
SandGlass construction and scoring, from the benchmark card and evaluate.py in IndexTeam/Sandglass-Bench (public-v1, data SHA-256 88cb4506...). The 0.5 floor for a fitted but meaningless output follows from the release's own score formula.

Two scorers then run independently. A rule-based counter (syllable_calculation.py, "V3", 22 languages) counts the output. Its own docstring rates zh, en, ja and es as high reliability and Arabic as medium. Homura-9B's Arabic within-10% rate of 79.89% (Table 10) is therefore measured with the counter's weaker setting. A Gemini-2.5-Flash judge then grades quality on 0, 0.5 or 1 with no reference, and it is told the length limit. The README adds a composite: score = (syllable_reward + quality) / 2. That gives a perfectly fitted output with zero quality 0.5 points. A faithful, natural line that misses the count by 50% or more gets only half its quality score.

Homura is trained against the same kind of target. GRPO jointly optimises a quality reward and a length reward on the requested count (Section 3.2, following HOMURA, arXiv 2601.10187). The paper is candid about the result: "precise syllable control transfers poorly" through merging and distillation, and MOPD "performs poorly at following length-related constraints". Both statements point to the same thing as our trim-and-pad run. Hitting a count and translating well are separate skills, and when they compete in training the count wins.

Every gain in syllable control on SandGlass was paid for in judged quality Paper Table 9 and Section 5.3; arrows mark the two training changes the paper measures 0% 20% 40% 60% 80% 100% 0.65 0.70 0.75 0.80 0.85 0.90 within 10% of requested syllable count judged quality (0 to 1) 9B RL (81.92%, 0.7863) 9B SFT (45.75%, 0.8581) 2B RL w=1 (63.08%, 0.7615) 2B RL w=2 (74.19%, 0.6900) 2B SFT (43.06%, 0.7965) GPT-5.6-Sol (47.64%, 0.8715) DeepSeek-V4-Flash (16.36%, 0.8742) Hy-MT2-7B (18.86%, 0.8560) Hy-MT2-30B-A3B (22.39%, 0.7554) Qwen3.5-35B-A3B (13.25%, 0.7863) Index-Homura checkpoints external baselines
Quality against syllable adherence for Homura checkpoints and baselines, from Table 9 and the Section 5.3 reward-weight study. Arrows show the two training changes the paper reports: 9B SFT to RL, and 2B reward weight 1 to 2.

What this changes for dubbing and localization teams

For a related check on how a judge model's verdicts can drive a localization metric, see our note on TermJudge's terminology lead and its empty code repository.

How to reproduce every number here in 10 minutes

Release state, straight from the Hugging Face and GitHub APIs:

curl -s "https://huggingface.co/api/models?author=IndexTeam&limit=200&full=true" \
  | python3 -c "import json,sys;[print(m['id'],m['createdAt'][:10],[t for t in m['tags'] if t.startswith('license')]) for m in json.load(sys.stdin) if m['createdAt']>'2026-09']"
curl -s "https://huggingface.co/api/datasets?author=IndexTeam" | python3 -m json.tool | grep -E '"id"|createdAt'
curl -s "https://huggingface.co/api/models/IndexTeam/Index-Homura-9B" | grep -o '"total":[0-9]*'
curl -s https://api.github.com/repos/bilibili/Index-Translate | grep -E '"(created_at|stargazers_count)"'

The SandGlass baselines use the release's own scorer, unmodified:

hf download IndexTeam/Sandglass-Bench --repo-type dataset --local-dir sg && cd sg
python3 -m venv v && v/bin/pip install pyphen num2words fugashi unidic-lite
v/bin/python - <<'PY'
import json,statistics,sys; sys.path.insert(0,'.')
from evaluate import syllable_metrics, controllability
import syllable_calculation as sc
R=[json.loads(l) for l in open('sandglass_bench.jsonl')]
EN=[r for r in R if r['metadata']['target_language']=='en']
cnt=lambda s: sc.cal_syllable_count(s,lang='en')
def fit(ref,t):
    w=ref.split()
    while len(w)>1 and cnt(' '.join(w))>t: w=w[:-1]
    s=' '.join(w)
    while cnt(s)<t-1: s+=' yeah'
    return s
for name,f in [('reference',lambda r:r['label']),('trim_pad',lambda r:fit(r['label'],r['metadata']['target_syllables']))]:
    rows=[dict(uuid=r['metadata']['uuid'],target_kind=r['metadata']['target_kind'],target_language='en',
               target_syllables=r['metadata']['target_syllables'],quality=None,**syllable_metrics(f(r),r['metadata'])) for r in EN]
    print(name,{k:round(statistics.mean(x[k] for x in rows),4) for k in ['dev','hit_pm1','hit_10']},
          'slope',round(controllability(rows)['slope'],3))
PY

Expected output: reference {'dev': 0.3649, 'hit_pm1': 0.2022, 'hit_10': 0.1867} slope 0.0 and trim_pad {'dev': 0.049, 'hit_pm1': 1, 'hit_10': 0.9333} slope 0.962. To check the target rule, compare metadata.target_syllables with round(round(duration*speech_rate)*target_factor); all 3,600 rows match. The data file's SHA-256 should be 88cb4506ff5dd95ba171ab746bbf7fcf3d4e12df27b51d6554673c3f4bc4b6f1, as recorded in manifest.json. The duplicated DeepSeek and Gemini instTrans cells are on page 7 of the PDF, Table 4(a).

What would prove this wrong

Our claim: on SandGlass, syllable adherence alone does not separate a dubbing model from a trivial length fitter, and Index-Homura's gains in adherence were paid for in judged quality.

It would be wrong if, by 31 March 2027, the Index team or anyone else publishes per-case SandGlass outputs showing an Index-Homura checkpoint at 80% or more within 10% and Gemini-2.5-Flash quality of 0.85 or more on the same 3,600 cases, matching the SFT checkpoint's 0.8581 without losing control. It would also be wrong if human raters on a sample of Homura-9B RL outputs prefer them over the 9B SFT outputs for dubbing use, which would mean the judge's 0.0718 quality drop does not reflect what adapters see. We predict neither appears by that date. We also predict the next Homura release will report a composite or a paired metric rather than adherence alone.

Sources

  1. Tianjiao Li, Mengran Yu, Chenyu Shi, Lusheng Zhang, Qisi Chen, Yanshan Zhou, Ji Qi, Jingying Liu, Yuang Feng, Ziang Cui, Tianxing Yan (Index LLM Team, Bilibili). Index-Translate: A Multilingual Translation Model Family. arXiv 2609.40181v1, submitted 30 September 2026. Tables 1 to 20, Sections 3.2, 4.5, 4.6, 5.2, 5.3, Appendix C.
  2. IndexTeam. Sandglass-Bench on Hugging Face, public-v1, created 3 October 2026, MIT. Downloaded and scored by BLOMEGA on 4 October 2026.
  3. IndexTeam. Index-Homura-9B model card, created 28 September 2026, Apache-2.0; client defaults and per-language table.
  4. IndexTeam. Index-Translate-35B-A3B-preview, created 2 October 2026, and Index-Nailong-9B (Index-NativeLong-9B), created 28 September 2026.
  5. IndexTeam. NAtIveLong dataset card, created 3 October 2026: 84 BWB and 84 GuoFeng cases, metadata and reconstruction only.
  6. bilibili. Index-Translate on GitHub, Apache-2.0, created 15 September 2026, 40 commits on 4 October 2026.
  7. Ziang Cui et al. HOMURA: Taming the Sand-Glass for Time-Constrained LLM Translation via Reinforcement Learning. arXiv 2601.10187, 2026. Origin of SandGlass and the length reward.
  8. BLOMEGA computations, 4 October 2026: SandGlass target-rule check, English reference and trim-and-pad baselines with the release scorer, Table 4/5 recomputation and win counts, HF API release dates, sizes and licences.

FAQ

Does Index-Homura actually hit the requested syllable count for dubbing?

On SandGlass, Index-Homura-9B (RL) lands within 10% of the requested count on 81.92% of 3,600 cases and within one syllable on 74.42% (paper Table 9), against 47.64% within 10% for GPT-5.6-Sol. Judged quality is 0.7863, below its own SFT checkpoint (0.8581) and GPT-5.6-Sol (0.8715). Using the benchmark's own scorer, we found that a script trimming or padding the English reference hits 93.33%, so the count is easy to hit and the quality score decides whether the line is usable.

Is Index-Translate open source and under what licence?

Yes for weights. On 4 October 2026 every IndexTeam model repo for the family (2B, 9B, 35B-A3B-preview, Homura, NativeLong published as Index-Nailong, Echo S2TT and S2ST) was tagged Apache-2.0 and ungated. The 2B and 9B checkpoints were created on 28 September 2026 and the 35B-A3B preview on 2 October. SandGlass is MIT. InstTrans and Meme benchmarks are CC BY-NC 4.0. NativeLong ships case metadata only, under upstream corpus terms.

Does Index-Translate really cover 150 languages?

150 is the supported inventory in Appendix C (22 core plus 128 additional entries). Reported text scores cover at most 83 languages (21 in FLORES and 62 low-resource, if disjoint), and the expansion study uses 81 targets. Syllable control is measured on English, Japanese, Spanish and Arabic only, speech-to-speech on 6 directions, and the released NativeLong client on 4 directions.