FluidAudio
CoreML audio models for text-to-speech, speech-to-text, voice activity detection and speaker diarization in Swift.
GraphCanon updated 3w · GitHub synced 3w · 34 views this month
Decision brief
FluidAudio provides CoreML-based models for tasks like text-to-speech, speech-to-text, voice activity detection, and speaker diarization in Swift, focused on iOS and macOS.
Good fit when
- You need accurate speech-to-text transcription with support for real-time processing in a Swift environment
- Your application is specifically designed for distribution on iOS or macOS platforms
Avoid when
- If your project requires cross-platform compatibility beyond Apple's ecosystem
- For projects that do not require CoreML-based optimizations and can run on more universally adopted frameworks across multiple operating systems
Observed Jul 17, 2026 · Source: enrich:decision_facts
Verify the decision
Maintenance and security
Full trust report- Maintenance
- Very active (4d since push)
- As of 3w
- Provenance
- Not a fork · Organization account
- As of 3w
- Security (OSV)
- No lockfile
- As of 1mo
Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.
Install
git clone https://github.com/FluidInference/FluidAudioSimilar tools
Same-category neighbours. No typed graph edges are catalogued for this tool yet.
Evidence and technical details
Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.
Overview
FluidInference/FluidAudio provides CoreML-based models for handling various tasks related to automatic speech recognition, including real-time processing capabilities. It supports features such as text-to-speech conversion, speech-to-text transcription, voice activity detection, and speaker diarization on iOS and macOS platforms.
Capability facts
- Languages
- swift
Source: github.language · Jul 30, 2026
Categories
Tags
README
Installation
Add FluidAudio to your project using Swift Package Manager:
dependencies: [
.package(url: "https://github.com/FluidInference/FluidAudio.git", from: "0.12.4"),
],
In Xcode:
- Add the FluidAudio package to your project
- In the "Add Package" dialog, select
FluidAudio - Add it to your app target
In Package.swift:
.product(name: "FluidAudio", package: "FluidAudio")
CocoaPods: We recommend using cocoapods-spm for better SPM integration, but if needed, you can also use our podspec: pod 'FluidAudio', '~> 0.12.4'
ASR Quick Start
import FluidAudio
// Batch transcription from an audio file
Task {
// 1) Initialize ASR manager and load models
let models = try await AsrModels.downloadAndLoad(version: .v3) // Switch to .v2 for English-only work
let asrManager = AsrManager(config: .default)
try await asrManager.loadModels(models)
// 3) Transcribe the audio 16hz, already converted
let result = try await asrManager.transcribe(samples)
// 3) Transcribe a file
// let url = URL(fileURLWithPath: sample.audioPath)
// 3) Transcribe AVAudioPCMBuffer
// let result = try await asrManager.transcribe(audioBuffer)
print("Transcription: \(result.text)")
}
---
### VAD Quick Start (Offline Segmentation)
Simple call to return chunk-level probabilities every 256 ms hop:
```swift
let results = try await manager.process(samples)
for (index, chunk) in results.enumerated() {
print(
String(
format: "Chunk %02d: prob=%.3f, inference=%.4fs",
index,
chunk.probability,
chunk.processingTime
)
)
}
The following are higher level APIs better suited to integrate with other systems
import FluidAudio
Task {
let manager = try await VadManager(
config: VadConfig(defaultThreshold: 0.75)
)
let audioURL = URL(fileURLWithPath: "path/to/audio.wav")
let samples = try AudioConverter().resampleAudioFile(audioURL)
var segmentation = VadSegmentationConfig.default
segmentation.minSpeechDuration = 0.25
segmentation.minSilenceDuration = 0.4
let segments = try await manager.segmentSpeech(samples, config: segmentation)
for segment in segments {
print(
String(format: "Speech %.2f–%.2fs", segment.startTime, segment.endTime)
)
}
}
License
Apache 2.0 — see LICENSE for details.
For agents
This page has a .md twin and JSON over the API.