Files

40 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。
## 复现
从项目根目录运行:
```bash
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 端口)下载公开权重:
```bash
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。
官方来源:
- https://github.com/Bairong-Xdynamics/TurnSense
- https://huggingface.co/brgroup/TurnSense/tree/main/TurnSense1.0
供应代码 LICENSE 为 Apache-2.0,保留在 vendor/LICENSE;README 还提到附加条件,产品部署前应以所用版本实际许可为准。本目录只做公开模型的本地比较,不重分发权重。
44 个选定点仅为探索性测试,点级误接话率不等于连续对话抢话率,用户声道可能含机器人回声。旧模型若标注时间不同,不能直接用旧汇总排名。结果解读见 results/评估说明.md。