FluidVoice Parakeet Models: A Complete Guide to TDT v3, TDT v2, and Flash ASR Options
FluidVoice supports three distinct Parakeet speech recognition models—Parakeet TDT v3 (multilingual), Parakeet TDT v2 (English-optimized), and Parakeet Flash (low-latency streaming)—each designed for specific transcription use cases on Apple Silicon.
The FluidVoice open-source dictation application for macOS integrates NVIDIA's Parakeet automatic speech recognition (ASR) models through a Core ML pipeline. Understanding which Parakeet model to select depends on your language requirements, accuracy needs, and latency tolerance. This guide examines each model's implementation in the source code, including where the models are defined, how they're surfaced in the UI, and how to switch between them programmatically.
Parakeet TDT v3: The Default Multilingual Model
Parakeet TDT v3 serves as FluidVoice's default voice engine. This model provides automatic language detection and transcription capabilities across 25 European languages, making it ideal for users who dictate in multiple languages or work with multilingual content.
The model name appears in the welcome flow at Sources/Fluid/UI/WelcomeView.swift, where users first select their preferred ASR engine. According to the source analysis, the welcome screen presents "Parakeet v3", "Parakeet v2", and "Parakeet Flash" as distinct options.
Under the hood, TDT v3 leverages Apple's Neural Engine for hardware-accelerated inference. The descriptive text in VoiceEngineSettingsViewModel.swift emphasizes its multilingual capabilities and fast throughput characteristics on Apple Silicon Macs.
Parakeet TDT v2: English-Only Accuracy Focus
Parakeet TDT v2 targets users who require maximum transcription accuracy for English-language content exclusively. Unlike v3, this model does not include the multilingual detection pipeline, reducing computational overhead and potential language ambiguity.
The v2 model excels in scenarios demanding high fidelity:
- Technical documentation dictation
- Code dictation and programming voice commands
- Legal or medical terminology where precision matters
The source code distinguishes TDT v2 through the same UI components as v3, with VoiceEngineSettingsViewModel.swift providing explanatory text that highlights its English-only optimization. Both TDT variants route through FluidAudioProvider for Core ML model loading and inference.
Parakeet Flash: Real-Time Streaming with EOU Pipeline
Parakeet Flash occupies a distinct architectural position in FluidVoice's architecture. This model implements the FluidAudio EOU (End-of-Utterance) pipeline for low-latency streaming transcription.
Key characteristics that differentiate Flash from the TDT models:
- Streaming architecture: Words appear on-the-fly rather than in buffered segments
- Immediate visual feedback: Near real-time transcription display as you speak
- English limitation: Restricted to English language only
- Separate provider implementation: Uses
ParakeetRealtimeProviderinstead ofFluidAudioProvider
The ParakeetRealtimeProvider.swift file explicitly sets its display name to "Parakeet Flash (FluidAudio)" at lines 9–10, establishing this model's identity in the provider hierarchy. This separation enables the streaming use case through a dedicated audio processing pipeline.
Model Selection Implementation
UI Presentation Layer
FluidVoice surfaces model selection through two primary interface points:
- Welcome flow (
WelcomeView.swift): Presents all three Parakeet variants during initial setup - Voice Engine settings (
VoiceEngineSettingsViewModel.swift): Provides descriptive context for each option
The view model contains explanatory text at lines 216–220 that clarifies the trade-offs between multilingual capability (v3), accuracy optimization (v2), and streaming responsiveness (Flash).
Programmatic Model Switching
The ParakeetModel enum exposes three cases that map to the underlying models. Developers can interact with model selection through SettingsStore:
import Fluid
// Query currently active model
let currentModel = SettingsStore.shared.voiceEngineModel
// Available model assignments
SettingsStore.shared.voiceEngineModel = .parakeetTDTv3 // Multilingual default
SettingsStore.shared.voiceEngineModel = .parakeetTDTv2 // English accuracy
SettingsStore.shared.voiceEngineModel = .parakeetFlash // Streaming EOU
The voiceEngineModel property persists user preferences and initializes the appropriate transcription provider on next launch or settings change.
Provider Architecture Mapping
| Model | Provider Class | Pipeline Type |
|---|---|---|
| Parakeet TDT v3 | FluidAudioProvider |
Core ML batch |
| Parakeet TDT v2 | FluidAudioProvider |
Core ML batch |
| Parakeet Flash | ParakeetRealtimeProvider |
EOU streaming |
This architectural separation ensures that Flash's real-time requirements don't compromise the accuracy-optimized batch processing of TDT v2 and v3.
Key Source Files
The Parakeet model implementation spans these critical files:
Sources/Fluid/UI/WelcomeView.swift— Initial model selection interfaceSources/Fluid/UI/AISettings/VoiceEngineSettingsViewModel.swift— Descriptive text and settings logicSources/Fluid/Services/ParakeetRealtimeProvider.swift— Flash streaming implementationSources/Fluid/Persistence/SettingsStore.swift— Model persistence andvoiceEngineModelproperty
Summary
- Parakeet TDT v3: Default multilingual model (25 European languages), Neural Engine accelerated, fastest overall throughput
- Parakeet TDT v2: English-only, accuracy-optimized for technical and code dictation, same provider architecture as v3
- Parakeet Flash: Streaming EOU pipeline through
ParakeetRealtimeProvider, real-time word emission, English only - Model selection persists via
SettingsStore.shared.voiceEngineModelwith three enum cases:.parakeetTDTv3,.parakeetTDTv2,.parakeetFlash - TDT models use
FluidAudioProvider; Flash usesParakeetRealtimeProviderdue to architectural streaming requirements
Frequently Asked Questions
How do I change the Parakeet model in FluidVoice after initial setup?
Access the Voice Engine settings through the application preferences. The settings panel reuses the same three-option presentation from the welcome flow, allowing you to switch between TDT v3, TDT v2, and Flash at any time. Changes take effect on the next transcription session.
Why does Parakeet Flash have higher latency but feel more responsive?
Flash employs the EOU (End-of-Utterance) streaming pipeline, which emits partial transcriptions word-by-word rather than buffering complete utterances. This creates perceived responsiveness through incremental display, though the first word may appear faster with TDT models due to batch optimization. Choose Flash for immediate visual feedback; choose TDT v2 for maximum final transcription accuracy.
Can I use Parakeet TDT v3 for English-only dictation?
Yes, but TDT v2 typically produces more accurate English results since it eliminates language detection overhead and focuses computational resources exclusively on English acoustic and language modeling. The v3 model's multilingual capability introduces small accuracy trade-offs for the convenience of automatic language switching.
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 →