本地语音识别(SenseVoice)配置实录:三个坑与解法

一句话结论:SenseVoice + sherpa-onnx 的纯本地语音识别(不联网、不上传)完全可用,中文识别准确率很高;但官方「下载并准备」在国内网络下必失败,且有三个连环坑,本文逐个给出解法。

项目来源:本文记录个人配置过程;SenseVoice、sherpa-onnx 和 Silero VAD 分别由其原作者及社区开发维护。

架构

  • 识别引擎:SenseVoice ONNX 模型(int8 约 239MB)+ silero VAD,走 sherpa-onnx 原生运行时
  • 特点:纯本地推理,音频不出机器;首次准备 1–10 分钟,占硬盘约 1GB、内存约 1GB

🔴 坑一:官方「下载并准备」在国内必失败

现象:进度反复从 0 重来,最终报 无法下载 model.int8.onnx:UND_ERR_SOCKET。

根因:「模型下载源」默认「自动选择」会探测 huggingface.co / hf-mirror.com 后取先响应的,实际拿到的是 HF 的 AWS CDN(us.aws.cdn.hf.co)——国内直连被墙。

解法:把下载源切成 HF-Mirror(国内镜像) 再点重试,约 20 秒就绪。离线/网慢环境也可以手动从 hf-mirror 用 curl -L -C - 断点续传三个文件(模型、tokens、VAD),SHA256 校验通过后应用会直接跳过下载。

🔴 坑二:「重试准备」在「自动选择」下是假动作

页面上的失败提示是持久化的上次失败快照——在「自动选择」下反复点重试不会发起新任务(判据:下载目录始终没有新的 .part 文件)。必须先切下载源才真正触发。

🔴 坑三:输入设备只有「立体声混音」

如果麦克风下拉里只有「立体声混音」而没有真麦克风:立体声混音是系统播放回环,录到的是电脑正在放的声音。先去 Windows「声音设置 → 录制」启用真实麦克风设备,再回来选。验证链路时可以用「TTS 播放 → 立体声混音回环录入」的方式自测。

实测数据

  • 引擎级:6.4 秒音频,RTF≈28 倍速,中文句子几乎全对(仅「正确地」→「正确的」)
  • UI 级:录音 → 转写文本直接插入输入框,链路全通

排查速查

现象首查
下载失败 UND_ERR_SOCKET下载源改 HF-Mirror,或手动 curl
反复点重试没进展看有无新 .part 文件;无 = 快照复用,先切源
转写出来是系统声音/音乐输入设备选了立体声混音,换真麦克风

技术问题免费答疑。觉得有用?请我喝杯奶茶 ☕