云计算百科
云计算领域专业知识百科平台

用Remote HTTP API解锁Vocalinux进阶玩法:自建语音识别服务器,手机电脑共享

【免费下载链接】vocalinux

Free, open-source, 100% offline voice dictation for Linux. Speak and type anywhere via whisper.cpp, Whisper & VOSK engines, GPU-accelerated, works on X11 + Wayland!

项目地址:
https://gitcode.com/gh_mirrors/vo/vocalinux

点击查看 免费下载

Vocalinux 是一款免费、开源、100% 离线的 Linux 语音听写工具,按住快捷键说话,文字就会出现在当前窗口。除了本地识别,它还内置了 Remote HTTP API 引擎:你可以自建语音识别服务器,把最耗算力的 Whisper 转录环节交给网络中任意一台更强的机器,笔记本和手机再共享同一台服务器——全程不经过任何第三方云服务。本文从零讲清楚三种自建服务器方案、客户端配置、手机配对和常见故障排查。

Vocalinux 宣传图:多设备共享的本地语音听写体验

Remote HTTP API 如何工作:音频不落地,算力可外移

启用 Remote API 引擎后,Vocalinux 的工作流程是:

  • 在本地采集麦克风音频(16 kHz、单声道、16-bit PCM);
  • 一句话结束时,在内存中打包成 WAV 文件(不写磁盘);
  • 按你配置的 HTTP 格式上传到远程服务器;
  • 从 JSON 响应中读出文本,自动输入到当前焦点窗口。
  • 关键点:语音活动检测(VAD)和分句始终留在本地,只有 ASR 转录这一步是远程的。这样做的收益很直接:

    • ⚡ 用更强的 GPU 机器做转录,响应更快;
    • 📱 一套模型多台客户端共享,笔记本、手机说出来的文字风格一致;
    • 🪶 笔记本不再承担模型加载和 GPU 占用的开销。

    核心实现在 recognition_manager.py,协议细节(请求/响应格式、超时参数)完整收录在官方文档 HTTP_REMOTE.md 中。

    三种自建语音识别服务器方案对比

    Vocalinux 原生兼容两种 API 格式:OpenAI 兼容(POST /v1/audio/transcriptions)和 whisper.cpp server(POST /inference)。常见部署方案有三种:

    方案端点适合场景难度
    whisper.cpp server /inference 最通用的自建 Whisper 服务,模型自由 ⭐⭐
    Speaches / LocalAI /v1/audio/transcriptions 一行 docker 命令起步,想要标准 OpenAI 接口 ⭐
    FunASR / SenseVoice /v1/audio/transcriptions 中文识别,支持 Paraformer / SenseVoice 模型 ⭐⭐⭐

    方案一:whisper.cpp server(最常用)

    克隆 whisper.cpp 仓库后编译自带 HTTP 服务器,下载一个模型即可:

    make server
    ./models/download-ggml-model.sh medium.en
    ./build/bin/whisper-server \\
    –model models/ggml-medium.en.bin \\
    –host 0.0.0.0 \\
    –port 8080

    服务监听 http://<服务器IP>:8080,端点是 /inference。

    方案二:OpenAI 兼容服务器(一行命令起步)

    任何实现 POST /v1/audio/transcriptions 的服务都可以,比如用 Docker 跑 Speaches:

    docker run –rm -p 8000:8000 ghcr.io/speaches-ai/speaches:latest

    方案三:FunASR / SenseVoice(中文识别优选)

    FunASR 可以启动本地 OpenAI 兼容转录服务,让音频留在自己的机器或局域网内:

    pip install 'torch>=2.13.0' torchaudio
    pip install funasr vllm fastapi uvicorn python-multipart
    funasr-server –device cuda

    服务默认监听 http://localhost:8000,Vocalinux 里把 Model 填 sensevoice 即可;只有 CPU 时加 –device cpu 测试,局域网里另一台 GPU 主机同样适用。

    ⚠️ 网络三件事:防火墙放行端口(如 ufw allow 8080/tcp);绑定 0.0.0.0 才允许其他机器访问;如果手机也要用,记得在手机 App 上禁用明文的 HTTP 连接,大多数移动听写应用默认只接受 HTTPS。

    客户端配置:Vocalinux 中接入自建服务器

    打开 Vocalinux,进入 Settings → Speech Engine → Remote Server,面板长这样:

    Vocalinux 语音引擎设置界面:Remote HTTP API 与 whisper.cpp 引擎配置

    具体四步:

  • 打开 Use remote server 开关——它会覆盖上方选择的任何本地引擎;
  • Server URL:填服务器基础地址,如 http://192.168.1.100:8080(末尾斜杠会自动去掉);
  • API Endpoint:按服务器类型二选一,Whisper.cpp (/inference) 或 OpenAI/FunASR (/v1/audio/transcriptions);
  • Model:OpenAI 兼容服务一般填 whisper-1,FunASR/SenseVoice 填 sensevoice。
  • API Key 为可选项,配置后以 Authorization: Bearer <key> 发送。填完点 Test Connection,成功后设置自动保存并立即初始化引擎,马上就能开始说话;关掉开关则自动回到本地引擎。

    该面板由 _build_remote_server_section() 构建,想改代码行为可以从这里入手。

    不改界面:直接编辑配置文件

    同样的选项存在于 ~/.config/vocalinux/config.json:

    {
    "speech_recognition": {
    "engine": "remote_api",
    "remote_api_url": "http://192.168.1.100:8080",
    "remote_api_key": "",
    "remote_api_endpoint": "/inference",
    "remote_api_model": "whisper-1"
    }
    }

    改完文件后需要重启 Vocalinux 生效。

    不开 GUI 先验证:curl 一行测试

    配置前可以先在命令行确认服务器本身没问题:

    # whisper.cpp server
    curl -F file=@sample.wav -F temperature=0.0 -F response_format=json \\
    http://192.168.1.100:8080/inference

    # OpenAI 兼容 / FunASR
    curl -F file=@sample.wav -F model=sensevoice \\
    http://localhost:8000/v1/audio/transcriptions

    正常响应形如 {"text": "…"}。另外两个行为细节值得知道:连接测试超时 5 秒、转录请求超时 30 秒(超时后该句丢弃、下一句重发);语言选 auto 时不发送 language 字段,由服务器自动检测。

    手机电脑共享:一台服务器,处处说话

    这是 Remote HTTP API 最好玩的地方:因为 Whisper 的 HTTP 格式足够开放,同一台自建服务器可以同时服务电脑和手机。

    • 🖥️ 电脑:Vocalinux 指向服务器,配置如上节;
    • 📱 手机:Android 上 Dictate、Transcribro 等应用说 OpenAI 兼容 Whisper 协议;iOS 可以用 Shortcuts 方案指向同一端点。

    跑一台 Whisper 服务器,笔记本和手机都指过去,各处听写体验一致,而音频从头到尾没有离开你自己的网络。

    懒人玩法:Vocalinux 内置的本地 VocaGateway

    Vocalinux 还能从 Settings → Speech Model → Advanced 一键拉起本地 VocaGateway 容器(优先 podman、回退 docker),管理逻辑在 gateway_embed/manager.py。它自带手机配对功能:开启 Allow LAN access for Phone 后,gateway 会发布到局域网并给出配对 URL 和 Bearer token(QR 安全格式,解码逻辑见 pairing.py),手机扫码即连,模型还在下载时就能先配对。

    两个注意点:

    • 退出 Vocalinux 不会停止容器(compose 配置为 restart: unless-stopped),需要时请手动用托盘菜单的 Stop local Gateway 停止;
    • 网关端口 8765 只在可信网络开放,永远不要暴露到公网。

    常见问题排查清单

    遇到 Remote API 报错时,先看日志:日志文件在 ~/.local/share/vocalinux/vocalinux.log,用内置日志查看器(Settings → Tray 菜单 View Logs)按模块过滤最方便:

    Vocalinux 日志查看器:按模块过滤 Remote API 相关日志

    症状可能原因解决办法
    连接测试失败 主机/端口错误、防火墙、服务器没启动 在客户端 curl <url> 验证,查服务器日志
    HTTP 401 / 403 API Key 缺失或错误 检查 API Key 字段与服务器端配置
    首次发送 404 端点格式不匹配 切换 API Endpoint 为你服务器实际暴露的格式
    转录结果总是空的 服务器拒绝了 WAV 确认服务器接受 16 kHz 单声道 16-bit WAV
    第一句特别慢 服务器模型冷启动 听写前先预热服务器
    外语出现乱码 language 设置不对 把语言从 auto 改成明确语言

    完整排障表见 HTTP_REMOTE.md。

    安全提醒:私有语音别裸奔

    • 音频以原始 WAV 传输,链路上任何人都能听到——可信局域网之外必须上 TLS(Caddy、nginx、Traefik 前置终结)并强制 API key;手机 App 普遍拒绝明文 HTTP,局域网用也建议直接上 TLS;
    • API key 以明文 JSON 存在 ~/.config/vocalinux/config.json,请按对待磁盘上任何密钥的方式来保护这个文件;
    • Vocalinux 不做 TLS 证书 pin 校验,自签证书需要导入系统信任库。

    总结

    目标推荐路线
    快速体验远程转录 Docker 跑 Speaches → /v1/audio/transcriptions
    追求最强控制力 whisper.cpp server → /inference
    中文识别 FunASR/SenseVoice → Model 填 sensevoice
    手机电脑共享 同一台服务器 + 移动端 OpenAI 兼容 App,或内置 VocaGateway 扫码配对

    Vocalinux 默认就是纯本地的,Remote HTTP API 只是给你一个可选的"外脑"。自建服务器之后,你的声音只在自己的网络里流动,算力却可以随你放到任何一台机器上——这就是开源工具给你的自由度。

    赞

    分享

    【免费下载链接】vocalinux

    Free, open-source, 100% offline voice dictation for Linux. Speak and type anywhere via whisper.cpp, Whisper & VOSK engines, GPU-accelerated, works on X11 + Wayland!

    项目地址:
    https://gitcode.com/gh_mirrors/vo/vocalinux

    点击查看 免费下载

    上一篇:
    MPC-BE 媒体播放器完整使用指南:从入门到精通

    下一篇:
    MPC-BE完全攻略:从零开始掌握Windows终极播放器

    创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 用Remote HTTP API解锁Vocalinux进阶玩法:自建语音识别服务器,手机电脑共享
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!