项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 3281
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- macOS 系统并安装 Xcode(README 以 Xcode 方式添加包)
- 项目使用 Swift Package Manager 管理依赖,或使用 CocoaPods(推荐搭配 cocoapods-spm)
- 命令行示例需本机可执行 swift run(Swift 工具链)
- 目标平台为 iOS/macOS 等 Apple 设备,推理运行在 ANE/CoreML
安装与启动步骤
-
1准备开发环境
在 macOS 上打开 Xcode 新建或打开一个 iOS/macOS 工程,FluidAudio 以 Swift Package 形式接入。
-
2添加 SPM 依赖
在 Package.swift 的 dependencies 中加入 FluidAudio 包,版本从 0.12.4 起。
dependencies: [ .package(url: "https://github.com/FluidInference/FluidAudio.git", from: "0.12.4"), ] -
3Xcode 添加包
把 FluidAudio 包加入项目,在 Add Package 对话框中选择 FluidAudio,并加入你的 app target。
-
4引入产品
在 target 依赖里声明 FluidAudio 产品,之后代码中即可 import FluidAudio。
.product(name: "FluidAudio", package: "FluidAudio") -
5可选:CocoaPods
CocoaPods 用户建议搭配 cocoapods-spm;必要时可直接使用官方 podspec。
pod 'FluidAudio', '~> 0.12.4' -
6跑通 ASR 转写
下载并加载 ASR 模型后转写音频样本,打印识别出的文本。
import FluidAudio Task { let models = try await AsrModels.downloadAndLoad(version: .v3) let asrManager = AsrManager(config: .default) try await asrManager.loadModels(models) let result = try await asrManager.transcribe(samples) print("Transcription: \(result.text)") } -
7命令行转写
在 FluidAudio 包目录下用 CLI 转写音频文件,纯英文场景可用 v2 提升召回。
swift run fluidaudiocli transcribe audio.wav --model-version v2 -
8跑说话人分离基准
离线模式自动下载模型,对 AMI 单文件做基准并输出 DER/JER/RTFx 结果。
swift run fluidaudiocli diarization-benchmark --mode offline --auto-download --single-file ES2004a --threshold 0.6 --output offline_results.json
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
version | 否 | ASR 模型版本,默认 .v3,纯英文可切 .v2 | .v3 |
AsrManager config | 否 | ASR 管理器配置,示例使用默认配置 | .default |
defaultThreshold | 否 | VadConfig 中的语音判定阈值 | 0.75 |
minSpeechDuration | 否 | VAD 分段最短语音时长(秒) | 0.25 |
minSilenceDuration | 否 | VAD 分段最短静音时长(秒) | 0.4 |
--auto-download | 否 | 基准测试时自动下载所需模型资产 | --auto-download |
如何确认成功
控制台打印 Transcription: 文本;benchmark 会生成 offline_results.json。
常见问题
Q:模型需要手动下载吗?
A:不需要。AsrModels.downloadAndLoad 会自动下载并加载模型;跑 diarization-benchmark 时加 --auto-download 也会自动下载。
Q:该用 v2 还是 v3 模型?
A:默认用 .v3;README 说明纯英文场景可切到 .v2 以获得更高召回。
Q:推理会用 GPU 吗?
A:不会。模型推理跑在 Apple Neural Engine 上,尽量降低 CPU 占用且不使用 GPU/MPS。
Q:能用在 Android 或服务器上吗?
A:README 只说明这是面向 iOS/macOS 的 Swift SDK,依赖 CoreML/ANE,未提及其它平台支持。
注意事项
- SPM 依赖版本写作 from "0.12.4",CocoaPods 使用 ~> 0.12.4,请勿低于该版本。
- 录音或音频文件在转写前需重采样,README 示例用 AudioConverter().resampleAudioFile 处理文件。
- 包内模型均为 MIT/Apache 2.0 开源许可,适合本地端侧部署。
- 建议在 Apple Silicon 设备上运行,以充分利用 ANE 的低延迟特性。
核心亮点
- 深度集成 CoreML/ANE,推理速度快,功耗低
- 覆盖 TTS、ASR、VAD、说话人分离等完整音频 AI 能力
- 基于 SOTA 开源模型(如 Parakeet),准确率高
不足之处
- 仅支持 Apple 平台,无法跨平台使用
- 文档/社区待观察
适用场景
- 在 iOS 应用中实现离线语音助手
- 为播客或会议应用提供实时转写与说话人标记
- 构建隐私优先的语音交互界面
替代项目
whisper.cpp、Vosk、Speech Framework (Apple)
同类项目推荐
Cross-Speaker-Emotion-Transfer
开源
让任意声音说出带指定情感的语音,跨说话人情感迁移。
PyTorch Implementation of ByteDance's Cross-speaker Emotion Transfer Based on Speake···
AndroidMaryTTS
开源
在 Android 上离线生成语音,保护隐私且支持自定义声音。
Android MARY TTS - an open-source, offline HMM-Based text-to-speech synthesis system···
speaker_adapted_tts
开源
1分钟语音样本,10分钟训练出你的专属TTS模型
Making a TTS model with 1 minute of speech samples within 10 minutes
PolyLangVITS
开源
一个模型搞定中英日韩语音合成,开箱即用
Multi-speaker Speech Synthesis Using VITS(KO, JA, EN, ZH)
Dia-TTS-Server
开源
自托管对话式语音合成,一键部署,支持声音克隆和 OpenAI API。
Self-host the powerful Dia TTS model. This server offers a user-friendly Web UI, fle···
StyleTTS2
开源
一句话集成人类级 TTS 与声音克隆,快速生成自然语音。
Pip installable package for StyleTTS 2 human-level text-to-speech and voice cloning
CapCut-TTS
开源
免费把剪映 TTS 变成 API,快速接入你的应用
CapCut TTS Wrapper API - CapCut API free tts
TTS-Voice-Wizard
开源
让 VRChat 虚拟形象实时显示说话文字并语音回复
Speech to Text to Speech. Song now playing. Sends text as OSC messages to VRChat to ···
RHVoice
开源
用开源引擎,把俄语等文字流畅念出来
a free and open source speech synthesizer for Russian and other languages
