MaAI ch_kyoto 本机 CPU 基本运行 验证日期:2026-10-13 环境 Apple M4 Mac mini,16 GB 内存,原生 ARM64 Python 3.11.15。 MaAI 0.2.22,PyTorch 2.14.1,PortAudio 19.7.0,PyAudio 0.2.14。 uv 管理独立 .venv 和 uv.lock;PyPI 使用清华镜像。 复跑 cd "/Users/wangx/Code/晓白灵智能打断/experiments/maai-ch-kyoto" uv run --locked python smoke_run.py 指定录音与时长 uv run --locked python smoke_run.py --audio "/录音绝对路径.mp3" --seconds 22 --threads 4 输入须为双声道:索引 0 用户、索引 1 机器人。脚本读取头部指定时长,重采样至 16 kHz;按两路各 1600 样本(100 毫秒)同步调用 process,不启用麦克风或播放音频。末尾不足 100 毫秒的样本不参与推理。 模型 语言 ch_kyoto,降噪 VAP 权重(vap_mc),原版 CPC 编码器(model_type=normal)。 10 Hz,20 秒滚动上下文,KV cache,device=cpu。 两个权重均存储在 models/,脚本逐次验证 SHA256 后离线加载。 VAP 来源:https://huggingface.co/maai-kyoto/vap_ch_kyoto VAP 文件:vap_mc_state_dict_ch_kyoto_10hz_20000msec.pt VAP SHA256:65b8a51aea6a257b5b9139107f0f0cf22f94523cd4b6a2e7a356b6c43a4596a8 CPC 来源:https://dl.fbaipublicfiles.com/librilight/CPC_checkpoints/60k_epoch4-d0f474de.pt CPC SHA256:d0f474de968c7243c20f43dee1626681618f2f150d3e638e82b79e22563b17f1 下载 VAP 时使用 hf-mirror,已核对官方完整 SHA256;CPC 从官方地址下载,并核对文件名哈希前缀及保存完整 SHA256。 验证结果 录音:2c83253a-7977-4e3c-a387-0aa1ea06fbe1.mp3 前 22 秒。 220 帧输出,所有 p_now / p_future / vad 均为两路有限、0–1 范围数值。 模型加载约 0.083 秒,推理约 1.142 秒,RTF 0.052。 跳过前 5 帧后,平均每帧 5.07 毫秒,P95 5.93 毫秒。 计时不包含录音读取、重采样和模型加载;仅代表该录音的一次离线 CPU 测试。 结果位于 results/smoke.json,包括配置、权重校验、逐帧媒体时间及概率。 输出含义 p_now:两个说话者在未来约 0–0.6 秒的相对活动预测。 p_future:两个说话者在未来约 0.6–2 秒的相对活动预测。 vad:两个说话者当前语音活动概率。 这三个输出均按 [用户, 机器人] 排列,不能直接当作 can_reply 或 EOT 概率。 MaAI 的原始 t 是墙钟时间;脚本另记 audio_end_sec 作为录音媒体时间。 兼容处理 使用本地官方预训练权重,避免自动下载或写入全局模型缓存。 旧 CPC 权重含 argparse.Namespace,脚本仅在构造模型时通过 safe_globals 允许该类型,保持 PyTorch weights_only 安全加载。 依赖恢复可用 uv sync --locked。新机器需先 brew install portaudio;构建 PyAudio 必要时添加: CFLAGS="-I/opt/homebrew/opt/portaudio/include" LDFLAGS="-L/opt/homebrew/opt/portaudio/lib" uv sync --locked