What Programming Languages and Frameworks Does FluidVoice Support?
FluidVoice is a native macOS dictation app written entirely in Swift and built with SwiftUI, leveraging Apple frameworks including Combine, CoreAudio, and AVFoundation alongside multiple on-device speech recognition models supporting up to 99 languages.
FluidVoice is an open-source automatic speech recognition (ASR) application developed by altic-dev. Understanding what programming languages and frameworks FluidVoice supports helps developers evaluate its architecture, contribute to its codebase, or integrate similar technologies into their own macOS projects.
Core Technology Stack
Programming Language: Swift 5.9+
FluidVoice's entire codebase is written in Swift, with a minimum tools version of 5.9 specified in Package.swift:
// swift-tools-version:5.9
import PackageDescription
let package = Package(
name: "Fluid",
platforms: [.macOS(.v13)],
// ...
)
Source: Package.swift – Swift tools version declaration【/cache/repos/github.com/altic-dev/FluidVoice/main/Package.swift#L1-L4】
User Interface: SwiftUI + AppKit
The app uses SwiftUI as its primary UI framework, with AppKit handling macOS-specific window management. The entry point in fluidApp.swift demonstrates the standard SwiftUI app lifecycle pattern:
import SwiftUI
@main
struct FluidApp: App {
@StateObject private var appServices = AppServices.shared
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(appServices)
}
.defaultSize(width: 1000, height: 700)
}
}
Source: Sources/Fluid/fluidApp.swift – the @main app declaration【/cache/repos/github.com/altic-dev/FluidVoice/main/Sources/Fluid/fluidApp.swift#L8-L28】
Reactive Programming: Combine
FluidVoice uses Apple's Combine framework for reactive data flow. The ASRService class publishes transcription state changes that SwiftUI views observe automatically:
@MainActor
final class ASRService: ObservableObject {
@Published var isRunning: Bool = false
@Published var finalText: String = ""
@Published var partialTranscription: String = ""
// ...
}
Source: Sources/Fluid/Services/ASRService.swift – observable properties for UI binding【/cache/repos/github.com/altic-dev/FluidVoice/main/Sources/Fluid/Services/ASRService.swift#L74-L80】
Audio Processing: CoreAudio, AVFoundation, AudioToolbox
Low-level audio capture relies on multiple Apple audio frameworks. ASRService.swift imports these directly for microphone handling and device monitoring:
import CoreAudio
import AVFoundation
import AudioToolbox
Source: Sources/Fluid/Services/ASRService.swift – framework imports【/cache/repos/github.com/altic-dev/FluidVoice/main/Sources/Fluid/Services/ASRService.swift#L1-L12】
Security: Security Framework
API key storage for optional cloud-AI services uses Apple's Security framework for Keychain access, as shown in ContentView.swift.
Dependency Management: Swift Package Manager
FluidVoice uses Swift Package Manager (SPM) exclusively. Third-party dependencies in Package.swift include:
- AppUpdater – automatic update checks
- FluidAudio – custom audio processing utilities
- PromiseKit – asynchronous programming patterns
- DynamicNotchKit – macOS Dynamic Island-style UI components
- TranscribeCpp – C++ transcription engine bindings
Source: Package.swift – dependency declarations【/cache/repos/github.com/altic-dev/FluidVoice/main/Package.swift#L11-L17】
Spoken Language Support Through AI Models
While FluidVoice itself is Swift-only, it supports extensive spoken language coverage through bundled on-device transcription models:
| Model | Language Coverage | Use Case |
|---|---|---|
| Nemotron Speech 3.5 | ~40 languages | Ultra-fast, low-latency multilingual |
| Nemotron 3.5 Multilingual | ~40 languages | Higher accuracy multilingual |
| Parakeet Flash | English only | Lowest latency beta option |
| Parakeet TDT v3 | 25 European languages | Regional European coverage |
| Parakeet TDT v2 | English only | Stable English transcription |
| Cohere Transcribe | 14 major world languages | Balanced speed/accuracy |
| Apple Speech | System-dependent | Native macOS integration |
| Whisper (Tiny→Large) | Up to 99 languages | OpenAI's open-source models |
Source: README.md – Supported Models section【/cache/repos/github.com/altic-dev/FluidVoice/main/README.md#L121-L130】
Architecture Pattern: Observable Service Layer
The ASRService class abstracts all model-specific logic, providing a unified Swift API regardless of which transcription engine runs underneath:
func startTranscribing(modelName: String) async {
do {
try await AppServices.shared.asr.start(with: modelName)
} catch {
print("Failed to start ASR: \(error)")
}
}
UI components consume transcription output through standard SwiftUI patterns:
struct LiveTranscriptView: View {
@EnvironmentObject var asr: ASRService
var body: some View {
VStack {
Text(asr.partialTranscription)
.font(.title2)
.foregroundColor(.secondary)
Text(asr.finalText)
.font(.title)
}
}
}
Source: Sources/Fluid/ContentView.swift – UI integration pattern【/cache/repos/github.com/altic-dev/FluidVoice/main/Sources/Fluid/ContentView.swift#L90-L100】
Key Source Files Reference
| File | Purpose | Direct Link |
|---|---|---|
Package.swift |
SPM manifest, platforms, dependencies | View |
Sources/Fluid/fluidApp.swift |
App entry point, scene configuration | View |
Sources/Fluid/ContentView.swift |
Main UI, hotkeys, model selection | View |
Sources/Fluid/Services/ASRService.swift |
Speech recognition engine, audio capture | View |
README.md |
Model documentation, language matrix | View |
Summary
- FluidVoice is Swift-only — no Objective-C, C++, or other languages in the main application code
- SwiftUI + Combine provide the modern reactive UI architecture
- Apple frameworks (CoreAudio, AVFoundation, Security) handle platform-specific capabilities
- Swift Package Manager manages dependencies and builds
- On-device AI models enable 1–99 spoken languages without requiring a public SDK or API
The codebase demonstrates contemporary macOS development patterns: pure Swift, declarative UI, reactive data flow, and modular service architecture.
Frequently Asked Questions
Does FluidVoice support any programming languages besides Swift?
No. The entire application is written in Swift 5.9 or later. The TranscribeCpp package dependency contains C++ code for the transcription engine, but this is wrapped and consumed as a Swift package — application developers interact only with Swift APIs.
Can I use FluidVoice's transcription capabilities in my own app?
FluidVoice does not expose a public SDK or framework. However, the source code is available under an open-source license. Developers can study the ASRService implementation in Sources/Fluid/Services/ASRService.swift to understand how to integrate similar on-device models using Swift and CoreAudio.
What macOS version does FluidVoice require?
The Package.swift specifies .macOS(.v13) as the minimum platform, meaning macOS Ventura (13.0) or later is required. This aligns with SwiftUI features and framework APIs used throughout the codebase.
How many human languages can FluidVoice transcribe?
Depending on the selected model, FluidVoice supports between 1 and 99 languages. English-only models like Parakeet Flash offer the lowest latency. OpenAI's Whisper Large provides the broadest coverage with up to 99 languages. Model selection happens at runtime through the ASRService.start(with:) method.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →