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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →