Show HN:一个 .NET 工程师为 Linux 造的「MacWhisper」,用了 AI 编程助手

一年前,一个 .NET 工程师从 Windows 迁移到 Fedora,发现自己需要离线转录采访录音,结果在 Linux 上找不到类似 MacWhisper 的东西,于是决定自己写一个。

这个项目叫 TrueScribe,最近在 Hacker News 上以 Show HN 的形式亮相,目前拿到 5 个赞。作者是 @tinykerneldev,职业是 .NET 软件工程师。帖子里最显眼的一句话是:「我讨厌 Electron 应用,所以这个我用半原生栈重写了。」

这句话背后是一套相当具体的技术选择。前端用 C# + Avalonia.Net,渲染走 SkiaSharp 硬件加速;底层模型绑定用 C++,转录部分用 CTranslate2,说话人识别用 NVIDIA 的 Nemotron 3 NeMo-Speech.cpp,两个模块之间通过 JSON-RPC worker 通信。整体架构不靠浏览器外壳,而是直接啃本地原生。

作者还明确提到,AI 编程助手参与了开发。这在当前开源和小工具领域已经不算新鲜事,但把 AI agent 塞进一个桌面应用的开发流,对很多独立开发者来说仍是个可参照的模板——尤其是那种「我知道自己要什么,但不想手写每一个 binding」的场景。

TrueScribe 的定位很清晰:Linux 上的本地 AI 转录工具,主打离线运行。数据不出本机,这对需要处理敏感采访录音的用户有直接意义。作者说朋友用了之后建议走 Freemium 模式,所以目前项目是免费的,但未来可能会引入付费功能。它也支持 Windows,不算纯 Linux 独占。

从技术栈看,这个项目有几个点值得注意。Avalonia.Net 是跨平台 UI 框架,近年在 .NET 社区热度上升,适合那些想用 C# 写跨平台桌面应用但不想绑死 WPF 的开发者。CTranslate2 是 OpenNMT 维护的推理引擎,对翻译和语音模型有不错的加速支持。Nemotron 3 是 NVIDIA 的开源模型系列,NeMo-Speech.cpp 是其语音识别的 C++ 推理实现。这几个组件拼在一起,构成一条从音频输入到文本输出的完整本地链路,不需要云端 API,也不需要付费订阅。

对真正有本地转录需求的开发者或研究者来说,TrueScribe 提供了一个可参考的实现路径。如果你也在 Linux 上工作,需要离线处理音频,又不想用 Electron 搭一个臃肿的壳,这个项目的技术选型值得拆开来借鉴。

项目地址:https://truescribe.app/
HN 讨论帖:https://news.ycombinator.com/item?id=49923302