OpenASR 博客

把本地语音识别
做得更简单

这里记录产品进展、真实测试和工程取舍。少一点宣传,多一点可以复现的细节。
OpenASR Desktop 正式支持 Windows

OpenASR Desktop 正式支持 Windows

同一套本地优先的语音识别能力,现在可以在 Windows 上使用了。同样的开源内核,同样的隐私边界,同样的 26 个模型。首次启动会遇到 SmartScreen 提示,这里一并说清楚。

OpenASR 0.1.0:第一个公开版本

OpenASR 0.1.0:第一个公开版本

OpenASR 0.1.0 正式发布——本地语音转文字,音频不离开你的电脑。这篇文章聊聊它现在能做什么,还缺什么,以及代码在哪里。

纯 Rust 推理落地:一套轻依赖的后融合说话人分离方案

纯 Rust 推理落地:一套轻依赖的后融合说话人分离方案

VAD 与说话人分离作为后融合旁路阶段围绕 ASR 核心运行,仅通过时间区间通信——项目首批纯 Rust 前向推理,逐一验证与 ONNX 参考模型的数值吻合度。

你没编译过的模型,凭什么信?

你没编译过的模型,凭什么信?

.oasr 模型包靠内容哈希锁定,目录清单靠 Ed25519 签名,任何一步异常即拒绝——这就是 OpenASR 的 fail-closed 拉取链。

Serve 模式批量解码:GPU 专属的吞吐量杠杆,单流路径逐字节不变

Serve 模式批量解码:GPU 专属的吞吐量杠杆,单流路径逐字节不变

通过 OPENASR_SERVE_BATCH 环境变量开启批量解码,在单张 GPU 上用 moonshine-tiny 实测 N=8 时达到 4.28 倍吞吐提升,而 N=1 路径与现有解码循环逐字节一致。

把 KV cache 搬上显卡:一次从传输瓶颈到计算瓶颈的转变

把 KV cache 搬上显卡:一次从传输瓶颈到计算瓶颈的转变

一次 decode profile 揭示瓶颈在 host-GPU 间的 KV 往返而非计算本身。KV cache 常驻显存后,每 token 的 KV/IO 从 80.6 降到 1.1 ms/token——数据来自单块 AMD GPU 和单个模型。

和 whisper.cpp 比一次:一台机器,一条音频,一个诚实的数字

和 whisper.cpp 比一次:一台机器,一条音频,一个诚实的数字

同一台 macos/aarch64 主机,同一个 whisper-large-v3-turbo q8_0 模型,best-of-N 取最优——OpenASR 跑出 2370 ms 对 whisper.cpp 的 2573 ms,领先约 7.9%。这个数字不是宣传语,而是一道回归门禁。

拆解 .oasr 格式:一个文件装下权重、分词器和元数据

拆解 .oasr 格式:一个文件装下权重、分词器和元数据

一个 .oasr 文件就是一个完整的模型运行时包——权重、分词器、描述符全在里面,拷贝和校验都只需处理一个对象。

本地优先:一条你能亲手验证的隐私边界

本地优先:一条你能亲手验证的隐私边界

音频在本地转写,模型不会自动下载,唯一的网络端口默认只监听回环地址,说话人标签匿名且会话结束即丢弃——每一条都可以在源码中验证。

换个地址就能用:在本地跑通 OpenAI 转录接口

换个地址就能用:在本地跑通 OpenAI 转录接口

三个端点、六种返回格式、默认离线——openasr serve 在 localhost 上回答你的客户端已经在发的那些请求,只是诚实地告诉你:这是子集,不是全量。

量化到底换掉了什么:体积、速度,和质量的长尾

量化到底换掉了什么:体积、速度,和质量的长尾

fp16、q8_0、q4_k,外加 Qwen 的 q3_k——在同一段音频上,哪些压缩几乎免费,哪些体积优势换不来速度,为什么 moonshine-tiny 的 11.76% WER 该怪模型而不是量化。