把录音转写留在本地:OctoASR 给 M 系列 Mac 做垂直办公 ASR

我电脑上常年跑着几个本地模型,但录音转文字这件事一直没找到顺手的方案。云端 ASR 准是准,可开会内容、临时灵感、甚至微信语音里聊到的工作细节,上传到别人服务器总让我不踏实。Whisper 本地能跑,但中文口语里的中英混说、技术缩写、产品名经常翻车。直到前几天翻到 OctoASR,一个才 49 stars、但非常对味的项目。

它不是要做通用大模型,而是把自己定位成垂直办公场景的本地语音识别服务:MLX 跑在 Apple Silicon 上,完全本地,不联网;专门针对互联网/IT 办公语料优化,Kubernetes、FastAPI、PRD、Code Review 这些词识别得更稳;还顺手做了 VAD 分段和 @ 提及替换。如果你的主力机是 M 系列 Mac,这个工具几乎就是为你量身订的。

项目概况

OctoASR 由 Mininglamp 科技在 GitHub 开源,仓库 Mininglamp-AI/OctoASR,MIT 协议。代码语言主要是 Python,截止我截图时 49 stars、2 forks, Releases 已经发到 v0.1.41(2026-08-08 当天连发多个版本,迭代频率很高)。

OctoASR GitHub 仓库主页,显示 MIT 协议、49 stars、v0.1.41 最新发布
OctoASR GitHub 仓库主页,显示 MIT 协议、49 stars、v0.1.41 最新发布

它的核心卖点可以总结成三点:

  • Apple Silicon 原生:底层用 Apple’s MLX,再加自家 Cider 推理加速框架,跑在 M 系列芯片上比通用方案更省内存。
  • 垂直领域优化:训练语料偏向互联网/IT 办公,擅长中英混说、英文术语、缩写、产品名。
  • 完全本地:音频和转写文本都不出本机,适合会议、口述笔记等敏感场景。

模型方面提供两个可选:

  • OctoASR-1.7B(默认):基于 Qwen3-ASR,8bit 量化,约 1.7GB;
  • OctoASR-0.8B:基于 Fun-ASR-Nano,8bit 量化,约 0.8GB。

两个都支持中英双语,模型会自动从 HuggingFace 或魔搭社区下载,国内环境也能用。

HuggingFace 上的 OctoASR-1.7B MLX 8bit 模型卡,Safetensors 格式
HuggingFace 上的 OctoASR-1.7B MLX 8bit 模型卡,Safetensors 格式

安装与上手

最省心的方式是用 Homebrew。官方给的命令很简洁:

brew tap Mininglamp-AI/tap
brew install octoasr

octoasr start
octoasr doctor

第一次启动会自动初始化并拉取默认模型。如果你不信任第三方 tap,brew 会提示 untrusted tap,按提示跑一下 brew trust mininglamp-ai/tap 就行。

想用源码跑也可以,README 写得比较清楚:clone 仓库、建 venv、pip install -e .、手动下载模型、再用 server.py 启动。源码启动可以指定 host/port、是否加载模型、是否加 token 鉴权。默认监听 127.0.0.1:8787

OctoASR 命令行演示:brew 安装、doctor 检查、transcribe 转写
OctoASR 命令行演示:brew 安装、doctor 检查、transcribe 转写

三种用法

装好服务后,OctoASR 提供 CLI、Python API、HTTP API 三种调用方式,覆盖从快速试水到集成进脚本的不同场景。

最简单的 CLI:

octoasr transcribe meeting.m4a

Python 调用适合需要批量处理或做后处理的脚本:

from core.auto_model import AutoModel

model = AutoModel(
    model="models/Mininglamp-2718/OctoASR-1.7B-Instruct-1.0-MLX-8bit",
    vad_model="models/Mininglamp-2718/fsmn-vad-mlx",
)

text = model.generate(
    "meeting.m4a",
    task="transcribe",
    merge_vad=True,
)
print(text)

HTTP API 则方便把它接到其他服务里:

curl -X POST http://127.0.0.1:8787/v1/voice/transcribe 
  -F "audio=@meeting.m4a" 
  -F "personal_context=## Termsn- FastAPIn- Kubernetes" 
  -F "mode=smart"

这里 personal_context 是个加分项:你可以把容易念错的专业词、人名、项目代号写进去,模型会参考这些热词做修正。官方限制单次最大 30MB、最长 660 秒,日常会议片段基本够用。

@ 提及替换

一个挺有意思的小功能是 octoasr mentions。口语里我们常把同事叫”小明”,但飞书/钉钉里想 @ 的是”王小明”。OctoASR 会把”艾特”先规范成 @,再通过一个可视化管理页把昵称映射到正式姓名。开会录音转出来后,直接就是可复制的 @ 人名,省了一道手工替换。

我看到的几个坑

项目年轻,49 stars 量级,肯定和 Whisper 这类生态没法比。实际用之前建议先心里有数:

  • 平台限制:目前只支持 macOS + Apple Silicon。Intel Mac 和 Linux 暂时无缘。
  • 显存/内存占用:1.7B 8bit 模型虽然不算大,但长音频 + VAD + 热词上下文一起跑,16GB 内存的 Mac 日常用没问题,长时间批量任务还是要看散热和 swap。
  • 版本迭代快:8 月 8 日当天连发 v0.1.37 到 v0.1.41,功能更新快的同时,API 和打包细节可能还会有调整。生产环境用建议固定 tag。
  • 模型热词作用有限personal_context 对常见缩写效果好,但生僻专有名词、跨语种混读还是需要人工校对。
  • 默认无鉴权:如果改绑到 0.0.0.0 让局域网其他设备访问,记得加 --auth-token,别裸奔。

适合谁

如果你符合以下画像,OctoASR 值得试:

  • 主力机是 M 系列 Mac;
  • 经常有会议录音、口述笔记、技术讨论需要转文字;
  • 不想把语音数据传到云端;
  • 被 Whisper 的中文术语和中英混说识别折磨过。
OctoASR 项目 Logo
OctoASR 项目 Logo

它不会取代 Whisper 在通用多语言场景的地位,但在本地、隐私优先、IT 办公语料这个细分赛道上,OctoASR 把易用性(brew 一键装 + HTTP API)和专业性(垂直优化 + @ 提及)结合得不错。我准备在 Mac 上常驻一个实例,把日常录音转写从云端彻底搬回来。

发表评论