Files

43 lines
3.1 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.
# LiveKit Turn Detector v1-mini 韩泰评估
执行机器:本机 Apple M4 Mac mini,CPU,16 GB。Python 3.11.15;独立 uv 环境。官方 PyPI `livekit-local-inference==0.2.7`(内嵌模型)与 `livekit-agents==1.8.8`,完整依赖见 uv.lock。
## 复现
从项目根目录执行:
```bash
cd experiments/livekit-v1-mini
uv sync --locked
uv run --locked python run_experiment.py smoke
uv run --locked python run_experiment.py all
```
`smoke` 使用种子 42 生成固定输入,重复推理必须一致,输出 `WITNESS`;`all` 生成 44 点 predictions.csv、summary.json 和六通录音的 score-timeline.json。`evaluate` 只跑标注点。所有输出位于 results,不修改人工标注。
## 输入与评分
- 只用用户左声道 channel 0;先裁取判断时间之前的 int16 音频,除以 32768,再用 scipy resample_poly 重采样到 16 kHz,取最近 19200 样本(1.2 秒),乘以 32767 转为 int16。短窗口由原生模型左补零,不使用未来音频或人工转写。
- 使用 Agents `_LocalTransport._predict` 入口,严格锁定 SDK 版本;原生异常或框架默认回退分数会导致实验失败,不计成真实预测。
- 每 200 ms 及每个原标注精确时刻计算原始分数;不加 VAD 停止门槛、静音等待、超时放行、会话结束信号或前一预测状态。
- 默认阈值为锁定 SDK 的中文阈值 0.355,同时报告 0.5,未在本批数据上搜索最优阈值。
- 每个判断点重复推理并验证分数一致;将该点之后的音频改为零,验证输入不变。该方法的前缀重采样与官方 benchmark 的 librosa 或在线重采样存在实现差异,因此不称为完整官方在线策略复现。
- 单个评估请求依次执行。脚本请求 EOT_PARALLELISM=1;当前原生库实际报告 parallelism=2,记录于结果,不声称原生单线程。OMP/MKL/OPENBLAS 请求线程数均为 1。
## 环境与模型校验
macOS arm64 CPython 3.11 官方 wheel SHA256:`fa4cb2d495c80be6121642dba4def3a88b22a68d52c1b0affccd66c563de6622`。
原生二进制 SHA256:`7afa5899367957328c9916153b5d672392e191c0bfadf1f49325af2e4f3055b4`。模型嵌于二进制,未暴露独立权重文件,不虚构独立权重哈希。结果还记录 Python、依赖、脚本、标注及各录音哈希。环境规范见 env-spec.json。
## 限制与许可
这 44 个手选判断点仅作探索性对比,不是独立大样本泛化评估。点级误接话率不等于整段对话的抢话率,用户声道也可能存在机器人回声。模型分数和 SDK 完整终点策略须分开讨论。
当前 wheel 附带的 MODEL_LICENSE.md 要求模型配合 LiveKit Agents 使用,并限制用其输出改进其他模型;本实验通过 Agents 官方本地传输入口执行。网页仅查看分数;不将其用作其他模型的训练标签。不要将该模型描述为 Apache-2.0 权重。
官方参考:
- https://docs.livekit.io/agents/logic/turns/turn-detector/
- https://github.com/livekit/eot-bench/blob/main/eot_harness/livekit_turn_detector_mini_adapter.py
结果解读见 results/summary.json 和 results/评估说明.md。