命令行工具
FluidInference/FluidAudio avatar
FluidInference/FluidAudio

FluidAudio:把 CoreML 音频模型塞进 Swift 应用,但先看清 ANE 的边界

该项目围绕「FluidInference/FluidAudio」构建,面向真实业务场景提供可复用的开源实践方案,支持稳定落地与可扩展的项目实践。

2,762 个 Star415 个 ForkSwiftApache-2.0

秒懂

它是什么?
FluidAudio 是一个 Swift SDK,把 ASR、TTS、VAD 和说话人分离等模型打包成 CoreML 格式,并在 Apple Neural Engine 上运行。它适合做本地低延迟音频应用,但依赖 Apple 硬件和模型转换工具链。
适合谁用?
FluidAudio 适合那些已经确定在 Apple 生态内做本地音频处理的开发者,尤其是需要低延迟、低功耗且不想碰 GPU/MPS 的实时场景。它不适合需要跨平台部署、或者想用 Python 快速原型但又不熟悉 CoreML 转换的团队。
能商用吗?
可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 Swift(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是 Apple 设备上的本地音频推理问题

FluidAudio 想解决的是一个具体问题:在 iOS 和 macOS 上做实时音频 AI,比如语音转文字、文字转语音、语音活动检测和说话人分离,但不想把数据送到云端。它的做法是把模型转换成 CoreML 格式,并让推理在 Apple Neural Engine (ANE) 上运行。这个选择有明确后果:CPU 占用低,内存占用小,而且完全离线。根据 README 的描述,它完全避开 GPU 和 MPS,这意味着它不是为了跑大模型或者追求极致精度,而是为了在后台常驻、低功耗的场景里保持响应。对于做语音助手、会议记录、实时字幕这类应用的开发者,这个定位很直接。

核心机制:模型转换和 ANE 推理

FluidAudio 的运作方式可以分成两层。第一层是模型来源,它使用开源模型,比如 Parakeet TDT v3 用于批量 ASR,Parakeet EOU 用于流式 ASR,Kokoro 用于 TTS,Silero 用于 VAD,这些模型被 FluidInference 团队转换并优化成 CoreML 格式,放在 HuggingFace 上。第二层是推理运行时,SDK 在 Swift 中加载这些模型,并调度到 ANE 上执行。README 特别强调推理是离线的、低延迟的,并且针对 always-on 工作负载做了优化。这个架构的关键在于 ANE 的利用,因为 ANE 是 Apple 芯片上的专用神经处理单元,它比 CPU 更省电,但能力也有限,不是所有模型都能塞进去。

模型目录:覆盖面广,但有语言限制

从 README 的模型列表可以看出,FluidAudio 覆盖了常见的音频任务。ASR 方面,Parakeet TDT v3 支持 25 种欧洲语言和日语,SenseVoice 和 Paraformer 支持普通话,但流式 ASR 的 Parakeet EOU 只支持英文。TTS 方面,Kokoro 支持 9 种语言,包括中文,PocketTTS 支持 6 种语言但列表里没有中文。VAD 用 Silero,说话人分离有在线和离线两种流程。这个组合对中文用户来说有个明显的坑:流式识别没有中文,TTS 虽然有中文但流式 TTS 没有。如果你要做中文实时对话系统,可能需要等模型更新,或者自己转换模型。

上手体验:从 README 能看到的集成方式

README 没有给出完整的代码示例,但提到了集成只需几行代码,并且有一个 Documentation/Models.md 文件,里面有各模型的详细说明。实际使用中,你大概需要先通过 Swift Package Manager 引入 FluidAudio,然后调用类似 FluidAudio.Transcriber 这样的类来加载模型和音频流。模型需要从 HuggingFace 下载,所以你的应用还得处理模型文件的管理。README 提到可以用 möbius 工具转换自己的模型,这给高级用户留了自定义空间,但也意味着你需要熟悉 CoreML 转换流程。如果你只想快速跑起来,建议先看文档里的示例代码,而不是直接依赖 README。

一个真实的限制:ANE 的适用边界

ANE 不是万能的。FluidAudio 明确说推理在 ANE 上运行,避免 GPU/MPS,这适合小模型和低延迟场景,但如果你需要处理超长音频或者超大模型,ANE 的内存和计算能力可能成为瓶颈。另外,README 中提到的 Supertonic-3 能在 iPhone 17 Pro 上生成 2 分钟音频,用时 3 秒,这听起来不错,但那是特定硬件上的表现,老设备可能没那么快。更重要的是,ANE 是 Apple 专属硬件,这意味着 FluidAudio 无法跨平台,Android 或 Windows 上完全不能用。如果你的应用需要覆盖非 Apple 设备,那 FluidAudio 从一开始就不适合。

替代方案:Whisper.cpp 和 Vosk 的对比

如果 FluidAudio 不适合你,有现成的替代方案。一个是 OpenAI 的 Whisper.cpp,它用 C/C++ 实现,可以在 CPU 上运行,也支持通过 Metal 在 GPU 上加速,但它不专门针对 ANE 优化,也不提供 TTS 或 VAD 的完整 SDK。另一个是 Vosk,它是一个离线语音识别工具包,支持多种语言和流式识别,但它的模型格式不是 CoreML,也没有内置的说话人分离。区别在于,FluidAudio 是深度绑定 Apple 生态的,而 Whisper.cpp 和 Vosk 更通用,但你需要自己处理更多的集成工作,比如音频流管理和模型加载。

维护和升级成本:许可证与依赖

FluidAudio 本身是 Apache-2.0 许可证,这对商业应用友好,但要注意它依赖的模型各有自己的许可证,README 提到是 MIT 和 Apache-2.0,但具体每个模型需要逐一确认。升级方面,项目最近更新频繁,v0.15.6 是 2026 年 8 月发布的,说明维护活跃。但频繁的版本更新也意味着 API 可能变化,你需要跟踪 release notes。另外,模型文件是单独下载的,不包含在 SDK 里,所以你的应用需要处理模型版本和 SDK 版本的兼容性。如果你不想承担这些维护成本,可能需要考虑托管服务,但那会牺牲本地推理的隐私和延迟优势。

编辑结论

FluidAudio 适合那些已经确定在 Apple 生态内做本地音频处理的开发者,尤其是需要低延迟、低功耗且不想碰 GPU/MPS 的实时场景。它不适合需要跨平台部署、或者想用 Python 快速原型但又不熟悉 CoreML 转换的团队。在采用之前,先确认你的目标设备是否支持 ANE,并检查模型列表中是否有你需要的语言和功能,比如 Streaming ASR 目前只支持英文。另外,建议先跑一遍官方文档里的示例代码,验证模型下载和推理延迟是否符合预期,再决定是否集成。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记