55 lines
4.1 KiB
Plaintext
55 lines
4.1 KiB
Plaintext
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(先从远程复制完整正式结果)。
|