Files

38 lines
3.1 KiB
Plaintext
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.
Smart Turn v3.2 与 MaAI ch_kyoto 的本机计算延迟
2026-10-13,Apple M4 Mac mini,16 GB,CPU 推理。
测量结果(模型已加载并预热,单位毫秒)
Smart Turn v3.2,1线程:平均31.54,中位31.26,P95 33.23,P99 37.66。
Smart Turn v3.2,4线程:平均11.69,中位11.51,P95 12.56,P99 13.58。
MaAI ch_kyoto,4线程,持续增量更新:平均4.91,中位4.79,P95 5.39,P99 7.24。
同为4线程时,Smart Turn的一次判断耗时约为MaAI一次增量更新的2.38倍。两者每次计算的工作量不同:Smart Turn重算最多8秒的用户音频,MaAI处理新到的100毫秒双声道音频并复用20秒滚动缓存。
计算拆分(平均值)
Smart Turn 1线程:重采样0.157、特征提取1.185、ONNX推理30.137,其余补零/整理约0.058。
Smart Turn 4线程:重采样0.162、特征提取1.306、ONNX推理10.168,其余补零/整理约0.051。
MaAI 4线程:两路CPC编码约2.541、VAP预测约2.302,其余缓存/结果队列整理约0.065。
Smart Turn计时包括8kHz到16kHz重采样。MaAI计时从准备好的16kHz音频进入process开始,未计重采样;这一点应与上述数字一起理解。
数据与方法
Smart Turn使用上一轮44个判断点相同的音频切片、int16解码/32768归一化、Pipecat 1.12.0的实际LocalSmartTurnAnalyzerV3。每种线程配置预热5次后,对44个点重复5轮,共220次测量;每次输出分数均与原始回测结果相差小于0.0001。
MaAI使用上一轮6通录音,从文件起点持续推理至该通最后一个标注点,10Hz,20秒上下文,KV cache,CPU4线程。总计433.3秒音频、4333次更新;每通前20秒不纳入满上下文稳态统计,留下3133次更新。
两个基准任务串行运行,避免互相争抢CPU。分阶段计时会带来少量测量开销。
模型载入、Python导入、录音解码、VAD静音等待、ASR/LLM/TTS和网络时间均不计入主要延迟。
如何理解线上延迟
MaAI计算约5毫秒,但当前10Hz配置每100毫秒更新一次;新声音到达与更新边界之间还可能存在0–100毫秒的等待(持续均匀到达时约50毫秒),这属于帧调度间隔而不是模型计算时间。还未计实际流式重采样延迟和系统排队。
Smart Turn可在请求时执行一次约12毫秒(4线程)或32毫秒(1线程)的计算;实际请求何时发生由VAD/业务策略决定,此处不把静音等待混入计算延迟。
MaAI需要持续每秒更新10次,Smart Turn通常按停顿请求触发,因此单次更快不等于整个会话总算力更低。
之前MaAI的标注点评估每次从零重放最多20秒音频,44个点平均重放推理约976.5毫秒。那是离线构造上下文的成本,不是在线每次新结果的延迟。
复跑
在experiments/smart-turn-v3.2和experiments/maai-ch-kyoto两个目录分别执行:
uv run --locked python benchmark_latency.py
请顺序执行,避免并行争抢CPU。
原始记录
experiments/smart-turn-v3.2/results/latency.json
experiments/maai-ch-kyoto/results/latency.json
汇总:experiments/latency-comparison.json
所有均值、P95及样本数已独立核验。