# What Programming Languages and Frameworks Does FluidVoice Support?

> FluidVoice supports Swift and SwiftUI on macOS. Explore its use of Combine, CoreAudio, AVFoundation and 99 languages for advanced dictation.

- Repository: [ALTIC/FluidVoice](https://github.com/altic-dev/FluidVoice)
- Tags: faq
- Published: 2026-08-16

---

**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`](https://github.com/altic-dev/FluidVoice/blob/main/Package.swift):

```swift
// swift-tools-version:5.9

import PackageDescription

let package = Package(
    name: "Fluid",
    platforms: [.macOS(.v13)],
    // ...
)

```

*Source*: [`Package.swift`](https://github.com/altic-dev/FluidVoice/blob/main/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`](https://github.com/altic-dev/FluidVoice/blob/main/fluidApp.swift) demonstrates the standard SwiftUI app lifecycle pattern:

```swift
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`](https://github.com/altic-dev/FluidVoice/blob/main/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:

```swift
@MainActor
final class ASRService: ObservableObject {
    @Published var isRunning: Bool = false
    @Published var finalText: String = ""
    @Published var partialTranscription: String = ""
    // ...
}

```

*Source*: [`Sources/Fluid/Services/ASRService.swift`](https://github.com/altic-dev/FluidVoice/blob/main/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`](https://github.com/altic-dev/FluidVoice/blob/main/ASRService.swift) imports these directly for microphone handling and device monitoring:

```swift
import CoreAudio
import AVFoundation
import AudioToolbox

```

*Source*: [`Sources/Fluid/Services/ASRService.swift`](https://github.com/altic-dev/FluidVoice/blob/main/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`](https://github.com/altic-dev/FluidVoice/blob/main/ContentView.swift).

### Dependency Management: Swift Package Manager

FluidVoice uses **Swift Package Manager (SPM)** exclusively. Third-party dependencies in [`Package.swift`](https://github.com/altic-dev/FluidVoice/blob/main/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`](https://github.com/altic-dev/FluidVoice/blob/main/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`](https://github.com/altic-dev/FluidVoice/blob/main/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:

```swift
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:

```swift
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`](https://github.com/altic-dev/FluidVoice/blob/main/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`](https://github.com/altic-dev/FluidVoice/blob/main/Package.swift) | SPM manifest, platforms, dependencies | [View](https://github.com/altic-dev/FluidVoice/blob/main/Package.swift) |
| [`Sources/Fluid/fluidApp.swift`](https://github.com/altic-dev/FluidVoice/blob/main/Sources/Fluid/fluidApp.swift) | App entry point, scene configuration | [View](https://github.com/altic-dev/FluidVoice/blob/main/Sources/Fluid/fluidApp.swift) |
| [`Sources/Fluid/ContentView.swift`](https://github.com/altic-dev/FluidVoice/blob/main/Sources/Fluid/ContentView.swift) | Main UI, hotkeys, model selection | [View](https://github.com/altic-dev/FluidVoice/blob/main/Sources/Fluid/ContentView.swift) |
| [`Sources/Fluid/Services/ASRService.swift`](https://github.com/altic-dev/FluidVoice/blob/main/Sources/Fluid/Services/ASRService.swift) | Speech recognition engine, audio capture | [View](https://github.com/altic-dev/FluidVoice/blob/main/Sources/Fluid/Services/ASRService.swift) |
| [`README.md`](https://github.com/altic-dev/FluidVoice/blob/main/README.md) | Model documentation, language matrix | [View](https://github.com/altic-dev/FluidVoice/blob/main/README.md) |

## 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`](https://github.com/altic-dev/FluidVoice/blob/main/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`](https://github.com/altic-dev/FluidVoice/blob/main/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.