展开目录
#语音识别#ASR#开源#实时字幕#Whisper#本地运行#多语言

早耳 hayamimi:纯 CPU 实时多语言语音转文字,2GB 内存跑赢 Whisper 精度

一个叫「早耳」的开源项目,用 5 条语言路由 + 量化 ONNX 模型,在纯 CPU、无 GPU、无云 API、不到 2GB 内存下实现实时多语言语音转文字。日语广播实测 CER 5.8%,不到 whisper-large-v3-turbo 13.8% 的一半,还能叠加说话人标签、实时翻译和 OBS 直播字幕。

预计阅读 6 分钟

一句话总结

2026 年 8 月 25 日,开源项目 hayamimi(早耳) 上线 GitHub,两天斩获 253+ Star。它用「按语言路由到专用模型」的思路,在纯 CPU、无 GPU、无云 API、不到 2GB 内存的条件下实现实时多语言语音转文字——日语广播实测 CER 只有 5.8%,不到 whisper-large-v3-turbo 13.8% 的一半,还能叠加说话人标签、实时翻译和 OBS 直播字幕。


数据来源

本文事实依据来自 hayamimi 官方仓库 README(oboroge0/hayamimi,GitHub API 2026-08-27 抓取,⭐253)、其 docs/SCORECARD.mddocs/GOALS.md 性能数据,以及 sherpa-onnx 项目公开文档。


名字的由来:「早耳」要的就是快

「早耳」(hayamimi)在日语里指「耳朵很灵、消息灵通的人」。项目的设计目标也照这个名字来:你还在说话,字幕就已经开始出现;停止说话约 100ms 后,一条定稿的字幕就落地了

这背后是一个很现实的痛点:大多数「纯 CPU 实时转写」的方案,都会退回到一个通用模型(通常是 Whisper),然后接受它的精度上限。hayamimi 反其道而行——把每一句话路由到最适合它语言的专用模型,全部以 INT8 量化 ONNX 的形式通过 sherpa-onnx 运行,不碰 PyTorch、不碰 CUDA。

早耳 hayamimi 的核心设计思路

核心功能:从语言路由到直播字幕

1. 五路语言路由,1600+ 语言兜底

hayamimi 内置了一个「5 路由语言目录」:日语 / 中文 / 韩语 / 粤语 / 英语 + 24 种欧盟语言,每种语言都走各自最擅长的模型;剩下的约 1600 种语言则回退到 Meta 的 Omnilingual ASR。这意味着它不像通用模型那样「一碗水端平」,而是让每种语言都用上「行家」模型。

2. 部分字幕 + 快速定稿 + 两遍精炼

这是它「快」的核心机制:

  • 部分字幕:说话进行中,草稿文字每约 0.5 秒刷新一次
  • 快速定稿:停止说话后约 100ms,一条定稿字幕就落地(日语;其他语言见 GOALS)
  • 两遍精炼:静音 2 秒后,把最近几句话批量重新解码,得到更高精度的「干净」版本(日语广播 CER 从 15.5% 降到 12.0%)

早耳的实时转写流水线

3. 说话人标签 + 实时翻译

用 CAM++ 说话人嵌入,给每句话打上 S1 / S2 / … 标签(轮次切分,非完整说话人分离);--translate en,zh,ko 可以实时把日语翻译成英语 / 中文 / 韩语(英语走 FuguMT,中韩走 M2M-100)。

4. OBS 直播字幕 + 本地仪表盘

--serve 会起一个本地 HTTP 服务,暴露三个视图:

  • /dashboard:实时仪表盘——进行中语音的部分文本条、带语言徽章和说话人标签的定稿流、每行延迟、逐行翻译、以及落地中的两遍精炼结果
  • /:极简 OBS 浏览器源叠加层(在 OBS 里加这个 URL 当 Browser Source 就能出直播字幕)
  • /transcript:纯文本滚动历史记录

5. 网络音频输入(手机 / ESP32 都能喂)

--input ws 会起一个 WebSocket 摄取端点,让手机或 stackchan 级 ESP32 板子通过局域网把麦克风音频流送进来,走同一条转写流水线。协议简单:连到 /ingest,发一条 JSON 文本帧(采样率 16000、pcm_s16le、单声道),然后直接流式发 PCM 音频。仓库里还附带一个零依赖的参考客户端 ws_mic_client.py

6. 内存有上限

用 LRU 模型驱逐,让常驻模型始终控制在一个可配置的上限内(默认 < 2GB 总量)。这对低配机器或长期运行的场景很重要。


性能:为什么它能跑赢 Whisper

这是项目最有说服力的部分。在真实日语广播音频上(见 docs/SCORECARD.md),hayamimi 的路由方案拿到 5.8% CER,而 whisper-large-v3-turbo 在同样片段上是 13.8%——不到后者的一半。同时它在 6 核桌面 CPU 上能跑到 10-50 倍实时(即 1 秒音频只需 0.02-0.1 秒处理)。

早耳 vs Whisper 精度与速度对比

数字背后的逻辑很简单:通用模型要为所有语言兜底,专用模型只为一种语言做到极致。当你明确知道输入是日语时,用日语专用模型自然更准、更快。hayamimi 的价值,就是把这套「按语言选模型」的路由,打包成一个开箱即用的实时工具。


安装与上手

要求 Python 3.10+ 和 PATH 里的 ffmpeg,开发与测试环境是 Windows 11(macOS / Linux 预期可用,端到端 CI 尚未覆盖)。

python -m venv .venv

# Windows
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python scripts\download_models.py

# 实时转写(麦克风输入)
.venv\Scripts\python scripts\realtime_transcribe.py

# 带仪表盘 + OBS 叠加层
.venv\Scripts\python scripts\realtime_transcribe.py --serve
# -> 浏览器打开 http://localhost:8833/dashboard

download_models.py 默认拉取约 3.1GB 预训练模型到 models/;加 --minimal 则只装约 1.1GB 的日英版(ReazonSpeech、whisper-tiny、Silero VAD、日语标点)。各模型的许可证责任在 THIRD_PARTY_NOTICES.md 里列得很清楚,商用前务必过一遍。


适合谁用

  • 直播 / 录播字幕制作者:OBS 浏览器源叠加 + 实时字幕,一条命令搞定,纯本地、零订阅
  • 多语言会议 / 访谈记录:说话人标签 + 实时翻译,日语为主的场景尤其受益
  • 隐私敏感、不能上云的场景:全程无云 API,音频不出本机
  • 低配机器 / 嵌入式玩家:< 2GB 内存 + 纯 CPU,ESP32 还能当远端麦克风
  • 想折腾语音识别的开发者:语言路由 + 两遍精炼 + 量化 ONNX 是干净的参考实现

访问说明

  • 仓库地址github.com/oboroge0/hayamimi
  • 纯本地运行,无在线服务;模型下载约 1.1GB(最小版)~3.1GB(完整版)
  • 中文 / 韩语 / 粤语 / 英语等均在 5 路由目录内,开箱即用

一句话收尾:当「通用」成为精度的天花板,「专一」就成了突破点。早耳用 5 条路由 + 量化 ONNX 证明,纯 CPU 也能做到实时、更准、还不用上云。


数据来源:GitHub API repos/oboroge0/hayamimi(2026-08-27 抓取,⭐253)+ hayamimi 官方 README、docs/SCORECARD.mddocs/GOALS.md + sherpa-onnx 项目文档。

Related

相关文章

延伸阅读

查看全部 →