# 中文会议转录：逐段 CER 证据

> 这是已发布会议结论的可读评分明细，不是一次新的模型推理。

## 怎么看

每个 TSV 一行对应人工参考稿中的一个带时间、说话人的片段。`reference` 是原始人工文本；
`hypothesis_normalized` 是全局字符对齐后归到该片段的模型字符；`S/D/I` 分别是替换、
删除、插入；`segment_cer = (S + D + I) / reference_tokens`。CER 可能超过 100%。

对齐先在整段会议上执行一次，再按人工参考字符范围聚合；**没有把每句单独重算 CER**，
因此所有片段的 S/D/I 相加，严格等于已发布的整场 S/D/I。这样保留了跨句边界的全局最优对齐。

插入归属规则：插入发生在片段内部时归当前片段；恰好在两个片段边界时归后一个片段；
整场末尾的插入归最后一个片段。假设文本位置是规范化字符 token 的左闭右开区间。

## 六条对齐均已闭环

| 模型 | 样本 | 片段数 | CER | S | D | I | 参考字符 | 明细 |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | --- |
| qwen3-asr-1.7b | aishell4_test_l_r003s01c02 | 512 | 26.45% | 720 | 1353 | 365 | 9217 | [qwen3_asr_1_7b__aishell4_test_l_r003s01c02.tsv](qwen3_asr_1_7b__aishell4_test_l_r003s01c02.tsv) |
| moss-transcribe-diarize-0.9b | aishell4_test_l_r003s01c02 | 512 | 24.90% | 764 | 885 | 646 | 9217 | [moss_transcribe_diarize_0_9b__aishell4_test_l_r003s01c02.tsv](moss_transcribe_diarize_0_9b__aishell4_test_l_r003s01c02.tsv) |
| qwen3-asr-1.7b | aishell4_test_m_r003s01c01 | 641 | 28.04% | 667 | 2039 | 55 | 9846 | [qwen3_asr_1_7b__aishell4_test_m_r003s01c01.tsv](qwen3_asr_1_7b__aishell4_test_m_r003s01c01.tsv) |
| moss-transcribe-diarize-0.9b | aishell4_test_m_r003s01c01 | 641 | 25.69% | 670 | 1680 | 179 | 9846 | [moss_transcribe_diarize_0_9b__aishell4_test_m_r003s01c01.tsv](moss_transcribe_diarize_0_9b__aishell4_test_m_r003s01c01.tsv) |
| qwen3-asr-1.7b | aishell4_test_s_r003s01c01 | 716 | 16.58% | 395 | 1208 | 103 | 10288 | [qwen3_asr_1_7b__aishell4_test_s_r003s01c01.tsv](qwen3_asr_1_7b__aishell4_test_s_r003s01c01.tsv) |
| moss-transcribe-diarize-0.9b | aishell4_test_s_r003s01c01 | 716 | 16.54% | 469 | 955 | 278 | 10288 | [moss_transcribe_diarize_0_9b__aishell4_test_s_r003s01c01.tsv](moss_transcribe_diarize_0_9b__aishell4_test_s_r003s01c01.tsv) |

## 快速定位最差片段

下面按错误数（不是百分比）列每条对齐最值得先听、先核的 5 个片段。完整内容见 TSV。

### qwen3-asr-1.7b · aishell4_test_l_r003s01c02

- `2264.846–2265.496s` [S06] · 30 错误 · CER 1500.00%
  - 人工：好的
  - 模型：都听啊嗯那都听嗯就number三对吧不是愿意多去那些地方那个
- `1513.100–1524.904s` [S05] · 28 错误 · CER 73.68%
  - 人工：多增加点儿<sil>投入，你要那个你要刷卡，对吧，对吧做一些那个<sil>门禁卡嗯
  - 模型：多增加点儿投入然后那个对
- `520.057–534.444s` [S01] · 24 错误 · CER 33.33%
  - 人工：咱小区啊没有不分，车位是自己的这个，除非人家买下来，买下来的话这个车位属于人家的嗯，他自己会管理自己的车位，比如在他自己地方加把锁对吧，这是他自己的车位，专车
  - 模型：咱小区这个没有不分离这个车位属于谁的除非人家买下来买下来的话这个车位属于人家的对就属于人家人家嫌自己不能管理嗯自己的车位不如在他自己地方加把锁对吧那是他自己的车位专车
- `2064.505–2079.795s` [S01] · 24 错误 · CER 36.92%
  - 人工：那就是还有就是，这边人员管理咱后边儿，把人员管理人员具体再定一下，该干什么干什么，该配备什么，该谁的职责谁的职责，再就说后期的话就是这个把这个
  - 模型：还有还有就是是不是人员管理然后边儿把这个人员管理咱制度再定一下该干什么干什么该配备什么工作证配备工作证该谁的职责谁的职责再就是后期的话就是呃把这个
- `764.295–777.405s` [S05] · 23 错误 · CER 47.92%
  - 人工：我觉得反正是。呃<sil>，只要种下去活着的这个。这管理到位呃<sil>，修剪啦呃<sil>，施肥呀浇水啦
  - 模型：我觉着反是呃只要种下去活着的这个呃只要管理到位嗯修剪啦嗯施肥啦浇水啦

### moss-transcribe-diarize-0.9b · aishell4_test_l_r003s01c02

- `1883.400–1889.080s` [S01] · 29 错误 · CER 263.64%
  - 人工：物业的安全有没有再这个
  - 模型：安全他那个那个像像你那个你你说两句看看你说的对咱们业主安全你没有点儿这个
- `2064.505–2079.795s` [S01] · 26 错误 · CER 40.00%
  - 人工：那就是还有就是，这边人员管理咱后边儿，把人员管理人员具体再定一下，该干什么干什么，该配备什么，该谁的职责谁的职责，再就说后期的话就是这个把这个
  - 模型：还有还有就是这边儿人员管理咱后边儿把这个人员管理咱制度再注意一下该干什么干什么该废废什么工作证废废工作证该谁的职责谁的职责再就是后期的话就呃把这个
- `1513.100–1524.904s` [S05] · 23 错误 · CER 60.53%
  - 人工：多增加点儿<sil>投入，你要那个你要刷卡，对吧，对吧做一些那个<sil>门禁卡嗯
  - 模型：多增加点儿投入你像那个你像刷卡对吧啊比如说
- `911.054–918.655s` [S05] · 23 错误 · CER 100.00%
  - 人工： 这一块儿应该嗯这应该基本上一般掌握大概花树都行
  - 模型：啊那修剪啦修剪啦对吧嗯这块儿你反正是嗯这应该基本上你看掌握了大概的方方
- `1815.211–1829.733s` [S01] · 22 错误 · CER 30.99%
  - 人工：咱物业只能给他提供一些这个比如你放那儿了我给你提提监控对吧这些人什么时候进来的什么时候出去的我给你提供至于你这的电车你锁没锁咱谁知道啊，你要没锁
  - 模型：咱物业只能给他提供一些这个比如你这儿待会儿放这儿了我给你提些监控对吧啊这些人什么时候儿进来的什么时候儿出去的我给你提供至于嗯对对对对对对嗯你这个电车不是锁你锁没锁咱谁知道啊你要没锁

### qwen3-asr-1.7b · aishell4_test_m_r003s01c01

- `131.918–141.894s` [S01] · 23 错误 · CER 38.98%
  - 人工：呃<sil>，包括<sil>孩子们<sil>来的时候儿是否有感冒的情况。呃<sil>，咱们这个幼儿老师这边儿一定要及时呃报备
  - 模型：啊包括孩子们来的时候是否有感冒的情况啊咱们这个幼儿老师这边儿一定要及时呃报备
- `22.136–34.862s` [S01] · 23 错误 · CER 41.07%
  - 人工：咱开一次会因为毕竟<sil>呃<sil>就是。大半年也要呃快过去了，马上这个要呃，接近这个<sil>这个咱那个要放假啦
  - 模型：开一次会因为毕竟呃就是大半年也呃快过去了嘛上这个也要呃接近那个呃咱那个要放假了
- `34.934–48.095s` [S01] · 22 错误 · CER 31.88%
  - 人工：呃<sil>呃<sil>，我这边儿呢因为也是进入冬天了咱把大家伙儿叫过来看看来咱幼儿园还有什么呃安全啊，包括呃<sil>问题也包括。呃，各个方面的
  - 模型：嗯嗯我这边呢因为也是进入冬天了咱把大家伙叫过来看看咱咱幼儿园还有什么呃安全啦包括呃问题包括呃各个方面的
- `901.089–911.059s` [S01] · 22 错误 · CER 37.29%
  - 人工：出现了这个咱的校园里边儿，在自行逗留就是保安要及<->及时的询问是哪个班的。呃呃<sil>，及时要送到班里给班主任进行<%>联系
  - 模型：出现了这个在那校园里面在争斗里这保安要及及时要询问是哪个班的呃及时要送到班里班主任进行联系
- `969.701–979.916s` [S04] · 22 错误 · CER 45.83%
  - 人工：饮食，还有那个<sil>卫生方面儿吧然后嗯<sil>我我那个啥进那个<sil>给孩子那个<sil>
  - 模型：饮食还有那个卫生方面了然后嗯我我那个啥进那个给孩子那个

### moss-transcribe-diarize-0.9b · aishell4_test_m_r003s01c01

- `1986.685–1991.445s` [S01] · 22 错误 · CER 66.67%
  - 人工：呃<sil>做一些就是呃<sil>用一些这个呃<sil>废弃的一些
  - 模型：呃做一些就是呃用一些这个多做一些手工做手工课儿对嗯呃废弃的一些
- `22.136–34.862s` [S01] · 21 错误 · CER 37.50%
  - 人工：咱开一次会因为毕竟<sil>呃<sil>就是。大半年也要呃快过去了，马上这个要呃，接近这个<sil>这个咱那个要放假啦
  - 模型：开一次会因为毕竟呃就是大半年也呃快过去了嘛上这个也要呃接近那个这个咱那个要放假了
- `969.701–979.916s` [S04] · 21 错误 · CER 43.75%
  - 人工：饮食，还有那个<sil>卫生方面儿吧然后嗯<sil>我我那个啥进那个<sil>给孩子那个<sil>
  - 模型：饮食还有那个卫生方面儿的然后嗯我我那个啥进那个给孩子那个
- `370.186–378.496s` [S01] · 21 错误 · CER 48.84%
  - 人工：咱这次<sil>是，中途招生啊咱以哪个方面为主啊就是以<sil>呃<sil>去<sil>
  - 模型：咱这次就是中途招生呃咱以哪个方面为主啊就是以呃去
- `131.918–141.894s` [S01] · 20 错误 · CER 33.90%
  - 人工：呃<sil>，包括<sil>孩子们<sil>来的时候儿是否有感冒的情况。呃<sil>，咱们这个幼儿老师这边儿一定要及时呃报备
  - 模型：呃包括孩子们就是来的时候儿是否有感冒的情况呃咱们这个幼儿老师这边儿一定要及时呃报备

### qwen3-asr-1.7b · aishell4_test_s_r003s01c01

- `1430.754–1443.614s` [S01] · 20 错误 · CER 28.17%
  - 人工：那你这块儿对这个<sil>那就是冬天了嘛。这个，呃，咱周六周日这个<#>顾客比较多，就儿童比较多，儿童这一块儿的奶的话咱主推的是呃<sil>是<->哪种奶啊
  - 模型：那你这块儿对这个你看进入冬天了嘛对个呃咱周六周日这个顾客比较多这儿童比较多儿童这块儿的奶的话咱主推的是呃是哪种奶啊
- `1717.437–1724.509s` [S01] · 17 错误 · CER 62.96%
  - 人工：这也是这也好比，东北那个大拌菜，什么都有，类似这种的，咱把这个
  - 模型：就是就好比就是东北那个大拌菜里边儿什么都有啊就是就是类似这种
- `1071.501–1083.077s` [S02] · 16 错误 · CER 29.09%
  - 人工：嗯，高档的<sil>日化品应该就是<sil>嗯<sil>应该就是不是特，就是只能是只能是嗯呃比较吸引一下顾客，但是它，
  - 模型：嗯高档的日化品应该就是嗯应该就是不是特就是只能是只能是呃比较吸引一下顾客但是它
- `67.335–74.625s` [S01] · 16 错误 · CER 40.00%
  - 人工：嗯，再还有&<%>&是你们近期的一些工作呃状况，呃<sil>下边儿员工就是包括，呃<sil>
  - 模型：嗯再有还有是你们近期的一些工作状况嗯下边员工就是包括呃
- `1976.458–1981.053s` [S01] · 16 错误 · CER 53.33%
  - 人工：这个就是我就是<sil>下边儿也接了提案了，应该<sil>超过
  - 模型：这个就是我就是下边就这样提下来应该是超过

### moss-transcribe-diarize-0.9b · aishell4_test_s_r003s01c01

- `1430.754–1443.614s` [S01] · 20 错误 · CER 28.17%
  - 人工：那你这块儿对这个<sil>那就是冬天了嘛。这个，呃，咱周六周日这个<#>顾客比较多，就儿童比较多，儿童这一块儿的奶的话咱主推的是呃<sil>是<->哪种奶啊
  - 模型：那你这块儿对这个你看进入冬天了嘛这个呃咱周六周日这个顾客比较多这儿童比较多儿童这块儿的奶的话咱主推的是是是哪种奶啊
- `1976.458–1981.053s` [S01] · 20 错误 · CER 66.67%
  - 人工：这个就是我就是<sil>下边儿也接了提案了，应该<sil>超过
  - 模型：这个呃这个这个就是我就是下边儿就这样提下来应该以超过
- `2166.690–2169.470s` [S01] · 20 错误 · CER 142.86%
  - 人工：这个的话，嗯<sil>咱分两批
  - 模型：协调得得上面也得得合理的安排啊这个的话呃咱是分两批
- `1071.501–1083.077s` [S02] · 18 错误 · CER 32.73%
  - 人工：嗯，高档的<sil>日化品应该就是<sil>嗯<sil>应该就是不是特，就是只能是只能是嗯呃比较吸引一下顾客，但是它，
  - 模型：嗯高档的日化品应该就是嗯应该就是不是特就是只能是只能是呃比较吸引一下顾客但是他对
- `823.064–826.886s` [S01] · 18 错误 · CER 64.29%
  - 人工：啊<sil>有的<sil>咱后期会设立一个<sil>这个
  - 模型：有的咱后期会设立一个这个嗯嗯

## 可复现与证据来源

- 冻结比较输入：`runs/business-meeting-winner-20260721-v1/comparison-input.json`
- 字符规范化：`src/asr_eval/normalize.py::char_tokens`（NFKC、大小写折叠、去标点与空白）
- 全局对齐：RapidFuzz Levenshtein `editops`
- 生成器：`scripts/build_meeting_score_trace_v1.py`（`meeting-score-trace-v1`）
- 机器可读总表：[`trace.json`](trace.json)
- 文件校验：[`SHA256SUMS`](SHA256SUMS)

重新生成：

```bash
uv run python scripts/build_meeting_score_trace_v1.py
```

生成过程会逐条核对参考 token 数、S/D/I 和 CER；任一值与冻结比较输入不一致就失败。
