9.0 KiB
MaAI Mimi ch_kyoto:标准版与降噪版双声道评测
当前主评测口径:流式场景(2026-10-28)
本场景以 VAP 连续流式推理为主:从录音开始持续维护编码器和 VAP 状态,在每个当前标注 decision_ms,取可用时间不晚于它的最后一个分数。判断点不重置模型、不插值、不使用未来音频。分数为 1 - p_now[user],预测规则为严格 > 0.5;这是活动预测到可接话的映射,不是原生校准 EOT 概率。
前端圆点、悬停分数和准确率统一使用这份连续输出。时间戳包括流式重采样缓冲;没有输出或分数年龄超过两倍标称更新间隔时记为不可用,单独计数,不填 0。保存新增或移动的标注后,用已有真实连续记录重新取点,无需重跑模型:
cd experiments/maai-ch-kyoto
uv run --locked python evaluate_streaming.py all
| 配置 | 当前主结果目录 | 正确数 / 有效点 | 准确率 | FP / FN |
|---|---|---|---|---|
| CPC 降噪双声道 | results/streaming/cpc-stereo/ |
30 / 44 | 68.18% | 7 / 7 |
| CPC 降噪机器人静音 | results/streaming/cpc-user-only/ |
24 / 44 | 54.55% | 18 / 2 |
| Mimi 标准双声道 | results/streaming/mimi-standard/ |
31 / 44 | 70.45% | 5 / 8 |
| Mimi 降噪双声道 | results/streaming/mimi-mc/ |
34 / 44 | 77.27% | 5 / 5 |
本次 44 点均有可用输出,来自同六通录音、22 个可接话与 22 个不可接话标签。每个目录包含 predictions.csv、summary.json 和前端 score-timeline.json;CSV 记录判断时间、实际评分时间及分数年龄,JSON 保留源记录、标签和评估代码的哈希。总表为 results/streaming/comparison-summary.json,文字说明为 results/streaming/对比分析.txt。
本次复用已有真实连续推理记录,没有新做模型推理或计算延迟实验。它仍是选定判断点上的分类评估,不等同于 LiveKit 的静音区间误抢话与结束延迟策略评估,也不代表完整在线系统的响应延迟。原始独立窗口结果保留作为历史诊断,不能与本表混用。重新运行原推理入口的 all 模式(CPC 双声道为 export_timeline.py)后会自动刷新对应流式目录;四配置对比统一用上述命令更新。
历史独立窗口及原始连续推理记录
以下记录说明原始实验、权重和独立窗口诊断。所述独立点评分及旧指标不是当前流式场景的主结果;前端已切换为上方流式目录。
两版均输入原录音的用户左声道(索引 0)和机器人右声道(索引 1)。保留两路音频及静音,不混音、不置零、不改变时间轴。当前人工标签从 labels/EOT标注/工作数据 读取,结果另存。
模型与环境
复用本目录现有 uv .venv 和 uv.lock,不与 Smart Turn 环境混装。本次不修改依赖:Python 3.11.15、MaAI 0.2.22、PyTorch 2.14.1、transformers 5.5.3、ONNX Runtime 1.31.0。执行机器为本机 Apple M4 Mac mini、16 GB 内存;CPU 推理,PyTorch 和 ONNX 各 4 个 intra-op 线程、1 个 inter-op 线程。
| 项目 | 标准版 | 降噪版 |
|---|---|---|
| 模型参数 | model_type="normal-ver2", mc=False |
model_type="normal-ver2", mc=True |
| VAP 权重 | vap_mimi_state_dict_ch_kyoto_12.5hz_20000msec.pt |
vap_mc_mimi_state_dict_ch_kyoto_12.5hz_20000msec.pt |
| VAP SHA256 | 2820d2b172a6ddd4696d33edb43933f436a09a3e0d3eb41c7dc390c33b22d5ce |
61c9e186d765cb6c338cb7fdacb68baf4b2533e72cde7c803e52480a62919219 |
| 频率、上下文 | 12.5 Hz(80 ms)、20 秒 | 相同 |
| 编码器 | 官方 FP32 ONNX Mimi | 与标准版共用同一文件 |
VAP 来自官方 vap_ch_kyoto,固定修订 c135cdcfa12ff5aa1cce2fdd23df110941a78f38。编码器来自官方 continuous-mimi-onnx,固定修订 303ef4ec0c70e4c71b67ea166acd26dd0d96655c,文件为 continuous_mimi_fp32.onnx 和配套 JSON;ONNX SHA256 为 c86171a48e1bd46aa31a52e7fe00f74acc310e0d15d11881516cdd1df1639b54。
所有文件保存在本目录 models/mimi/,固定下载 URL、修订、大小和校验值保存在 mimi-model-manifest.json。脚本逐次验证清单,不自动切换或下载其他权重。环境声明为 mimi-env-spec.json,实际环境和输入哈希随结果保存。
复跑
从项目根目录执行:
cd experiments/maai-ch-kyoto
UV_CACHE_DIR=/private/tmp/xiaobailing-uv-cache uv run --locked --offline python run_mimi.py smoke --variant both
UV_CACHE_DIR=/private/tmp/xiaobailing-uv-cache uv run --locked --offline python run_mimi.py all --variant both
UV_CACHE_DIR=/private/tmp/xiaobailing-uv-cache uv run --locked --offline python compare_mimi.py
smoke 在真实双声道历史上检查权重加载、固定种子重复推理和未来音频不变性。all 依次计算两版的判断点和连续曲线;evaluate 只计算判断点。--variant standard 或 --variant mc 可以单独运行一版。已有依赖及本地权重可离线复用。
判断点与连续评分
- 每个判断点独立重置 Mimi 流式状态及 VAP KV cache,使用此前最多 20 秒音频,按 80 ms 帧对齐,最后一帧结束于精确
decision_ms。不足整帧的余量从历史开头丢弃。先裁剪收到的双声道音频,再重采样到 16 kHz;不读取未来音频,不使用人工转写。 - 保留 MaAI 官方启动逻辑:首次 ONNX Mimi 编码输出跳过,后续实际收到评分才使用。当前实现首次有效输出在输入 160 ms 后;不把启动期缺失评分补成 0。
- 主分数与既有 VAP 前端一致,为
1 - p_now[user],主阈值为严格大于 0.5。它是说话活动预测映射,不是官方校准的 EOT 概率;不加入外部结束信号、VAD 等待或超时接话。 - 连续曲线在完整录音上持续维护状态,使用流式重采样,时间戳表示输入实际可用时间,包含重采样缓冲。末尾不足一帧不补虚构音频;空心点保留独立历史窗口结果,可能不落在连续曲线上。
- 模型原生步长是 80 ms,流式重采样可能使更新延后或多帧在同一个输入可用时刻产生,因此页面曲线并非严格每 80 ms 一个点。本批连续评分最早在 240 ms 可用,更新间隔为 80/160 ms;独立窗口不经过流式重采样缓冲,首次模型输出为 160 ms。两种时间均明确记录,不把预测提前显示。
- 本次比较引用
results/user-only/predictions.csv中已在相同当前判断点重跑的 CPC 降噪双声道对照,同时保留 CPC 机器人静音版。复用前严格校验标签、转写、依赖锁和六通原录音的哈希。当前点位变化后,应先重跑run_user_only.py all,不能直接复用旧位置的分数。
加载审计与比较边界
官方本地文件加载路径使用通用 vap 架构标识,即使文件是降噪权重,也不会把对象上的 variant 自动改为 vap_mc。实验因此以指定权重文件及 SHA256 标识标准/降噪版本,并核对全部实际使用的 VAP 参数与对应 checkpoint 完全一致,避免把相同架构误认为相同权重。
Mimi 的两个被冻结的帧率转换卷积在原生 12.5 Hz 路径不参与计算;原始 checkpoint 不包含这些卷积。加载审计单独列出这四个未使用的 weight/bias,核验输入输出帧率均为 12.5 Hz;其余参数必须来自 checkpoint。Mimi 编码器本体使用已校验的独立 ONNX 权重。加载器输出中与初始常量相同的参数提示不代表参数缺失,以逐参数相等性检查为准。
Mimi 标准与降噪版本使用相同编码器、80 ms 帧、输入和评分规则;两者可作为不同 VAP 权重的直接对照。现有 CPC 为降噪版、100 ms 帧,比较时明确这些配置差异,不把所有变化归因于编码器。这里只评价选定判断点,不代表独立测试集或完整话轮策略指标。记录的历史重放耗时也不等于单次在线更新延迟。
结果与前端
| 目录 | 内容 |
|---|---|
results/mimi-standard/ |
Mimi 标准版的 predictions.csv、errors.csv(如有)、thresholds.csv、summary.json、score-timeline.json。 |
results/mimi-mc/ |
Mimi 降噪版的同类结果。 |
results/mimi-comparison/ |
由 compare_mimi.py 汇总的四配置逐点对照、指标 JSON 和中文对比分析。 |
逐点 CSV 保留人工真值、原生 p_now/p_future/vad、接话候选分数、CPC 同点参考分数及输入窗口。汇总包含分类指标、每通话指标、重复/因果输入验证、完整来源哈希和配置差异说明。
工作台展开“模型分数对比”→“选择模型”,可分别勾选 VAP / MaAI Mimi(标准双声道)(蓝灰色)和 VAP / MaAI Mimi(降噪双声道)(金棕色)。它们支持独立开关、0.11 / 0.5 / 0.8 参考线、悬停分数和判断点定位,与现有 CPC、Smart Turn 等共用录音时间轴。原始录音、标签和其他模型结果保持原样。