SoulX-Duplug 远程实验

执行机器：2033lab04ztr（Ubuntu 24.04.3，i5-9400F，RTX 3090 24GB，约62GiB RAM）。
远程工作目录：/mnt/58462F4C462F29E8/xiaobailing-turn-detection-experiments
专用Conda环境：/home/wangx/miniconda3/envs/xiaobailing-soulx-duplug
Python 3.10.22，PyTorch 2.6.0+cu124，transformers 4.52.1，ModelScope 1.28.2，FunASR 1.2.6。
完整依赖版本见 results/requirements-freeze.txt，Conda基本包见 results/conda-explicit.txt。

复现运行（在远程机器执行）：
source /home/wangx/miniconda3/etc/profile.d/conda.sh
conda activate xiaobailing-soulx-duplug
cd /mnt/58462F4C462F29E8/xiaobailing-turn-detection-experiments
python -u scripts/run_experiment.py all

all顺序执行：真实录音基本运行、44个标注点独立评估、6段录音的增量计算延迟测试。
可分别执行：
python -u scripts/run_experiment.py smoke
python -u scripts/run_experiment.py evaluate
python -u scripts/run_experiment.py benchmark
重新运行会覆盖对应正式结果；需要保留旧实验时，先另存 results。
原始数据来自本机 labels/EOT标注/工作数据，录音来自 data/韩泰机器人抢话/音频；远程副本位于 data/labels 和 data/audio。

代码及权重：
官方代码提交 a0b9063843df69619b087b95b74597b2176910b8。
Hugging Face权重修订 61701c4ab8193cc1ee2220d3848872ac6c720142。
大权重从Soul-AILab官方ModelScope同名仓库下载，SHA256与固定Hugging Face修订一致。
下载脚本 scripts/download_models.py；清单和校验见 results/model-download.json。
Paraformer及其FSMN VAD、CT-Transformer标点辅助模型由官方接口加载，缓存位于 cache/modelscope。
setuptools固定为官方78.1.1，以提供旧ModelScope依赖的pkg_resources。
配置声明bf16，但官方加载器实际使用FP32，本次没有另加混合精度。
严格核查训练权重：没有缺失键；多出的embed_tokens_func.weight被核实为重复的嵌入权重别名。

can_reply评估口径：
只比较complete/incomplete两个状态token的logit，softmax后complete分数>0.5表示可回复，并列出0.8等阈值。
这是条件两类别分数，不是官方校准的can_reply概率，也不是完整服务层策略。
原生argmax状态和内部修正状态分别保留，不混入超时触发speak、服务结束重置、最终整句ASR。
另有辅助原生状态转can_reply口径：complete置1，incomplete/nonidle置0，idle/backchannel保持前值，开始为0；仅使用当前标注点以前的模型状态，不加入外部结束信号、超时或重置。
每个点重置Python、NumPy、PyTorch、CUDA随机种子及SoulX KV状态；保留原生推理内部的Paraformer ASR。
用户声道0，8kHz原始音频先截取到decision_ms，再重采样到16kHz。
最多20秒真实音频，按160ms分块，后向窗口960ms，前向窗口40ms。
最后处理块在判断点前40ms结束，前向窗口恰在判断点结束，不使用标注点之后的音频或人工转写。
与MaAI（双声道，最多20秒）和Smart Turn（用户单声道，最多8秒）比较时注明输入差异。
44点由22个可回复和22个不可回复组成；29个草稿、15个未明确审核，属于探索性结果。

计算延迟：
CUDA同步后的增量墙钟时间，分别记录音频特征/语音分词器、ASR阶段、状态预测模型和完整调用。
稳态统计去掉每段录音前20秒；六段录音均只处理到其最后一个标注点，不补未来音频。
GPU加载、文件解码、重采样、SSH/网络传输、160ms采集周期和回复策略等待不包含在增量计算时间中。
模型加载和每个标注点的历史重放单独记录；重放十多秒上下文的耗时不当作在线单步延迟。
SoulX在RTX3090+i5上运行；另外两种方法在M4 CPU上运行，结果不是同机速度排名。

本机文件只是远程脚本和结果的留档，SoulX安装、模型加载、推理与计时均在2033lab04ztr执行。
最终逐点对比、指标和分析见本目录 results/comparison-points.csv、results/comparison-summary.json、results/对比分析.txt。
本机汇总命令：python3 experiments/soulx-duplug/compare_results.py（先从远程复制完整正式结果）。
