Files

TurnSense 1.0 FP32 韩泰测试

本机 Apple M4 Mac mini、CPU、16 GB,独立 Python 3.11 uv 环境。锁定依赖见 pyproject.toml / uv.lock,声明规范见 env-spec.json。ONNX Runtime CPU,intra/inter-op 各 1 线程。官方代码与权重版本、SHA256 见 model-manifest.json。

复现

从项目根目录运行:

cd experiments/turnsense-1.0
uv sync --locked
uv run --locked python setup_assets.py
uv run --locked python run_experiment.py smoke
uv run --locked python run_experiment.py all

本机 Hugging Face 直连失败时,使用已配置代理(示例为本机现有 7897 端口)下载公开权重:

HTTPS_PROXY=http://127.0.0.1:7897 uv run --locked python setup_assets.py

已有固定 vendor/ 与 models/ 时,可直接执行 smoke,不需联网。smoke 应输出 WITNESS、三项概率之和为 1、repeat identical;固定 seed=42 噪声输入应主要判为 invalid。all 跑全部六通录音的 200 ms 网格及当前 44 个精确判断点;evaluate 仅跑判断点。输出只写 results,不修改人工标注。

输入与规则

  • 原录音用户左声道 channel 0,int16 / 32768;先裁取 decision_ms 之前已收到的前缀,再用官方依赖 librosa 重采样到 16 kHz,取末尾最多 8 秒。不用转写、未来音频、超时放行或 VAD 停止门槛。
  • 官方前端:kaldi-native-fbank,80 mel,25 ms Hamming 窗、10 ms 帧移,snip_edges=true,dither=0,LFR m=7/n=6,官方 am.mvn。LFR 边界重复的是已收到音频的最后特征,不读真实未来帧。官方完整前端未改动。
  • 保留 complete/incomplete/invalid 三项概率和原生 argmax 类别。主要二类映射为原生 complete=>can_reply=1,其余两类=>0;另报告 P(complete)>=0.5。网页曲线显示 P(complete),0.5 参考线不等同原生三分类 argmax。
  • 每个精确判断点重复推理须完全一致;将之后的音频置零,准备出的输入须保持一致。固定 200 ms 网格是逐次真实独立推理,非插值,也不是原生流式模型。前缀重采样与特征抽取均可重算,因此计算耗时不能声称为在线增量开销。
  • 实际环境、输入文件/脚本/前端/CMVN/权重哈希写入 summary.json。分开记录重采样、特征提取、ONNX 推理耗时;模型构造不含 Python 进程启动和 import。

官方来源:

供应代码 LICENSE 为 Apache-2.0,保留在 vendor/LICENSE;README 还提到附加条件,产品部署前应以所用版本实际许可为准。本目录只做公开模型的本地比较,不重分发权重。

44 个选定点仅为探索性测试,点级误接话率不等于连续对话抢话率,用户声道可能含机器人回声。旧模型若标注时间不同,不能直接用旧汇总排名。结果解读见 results/评估说明.md。