Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ written is still readable.

## Transcription

Built in, on-device, automatic. The default engine is **Parakeet TDT 0.6B v2**
(English) via [FluidAudio](https://github.com/FluidInference/FluidAudio)'s
Built in, on-device, automatic. The default engine is **Parakeet TDT 0.6B v3**
(multilingual) via [FluidAudio](https://github.com/FluidInference/FluidAudio)'s
Core ML port — roughly 20 seconds per hour of audio on Apple Silicon. Models
(~600 MB) download once on first transcription; `quill doctor` tells you
whether they're already cached so you're never downloading after an important
Expand Down Expand Up @@ -121,7 +121,7 @@ quill install --uninstall
per-process picker if it bothers you).
- If recordings come out silent, check System Settings → Privacy & Security →
Screen & System Audio Recording.
- Parakeet v2 is English-only. Other languages will come with the Whisper
engine.
- Parakeet v3 covers 25 European languages. For anything outside that set,
wait for the Whisper engine.
- The binary embeds its Info.plist (`__TEXT,__info_plist`) so TCC can
attribute permissions to quill itself when running as a LaunchAgent.
4 changes: 2 additions & 2 deletions Sources/quill/Doctor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ enum DoctorReport {
remediation: nil
)
}
let cache = AsrModels.defaultCacheDirectory(for: .v2)
if AsrModels.modelsExist(at: cache, version: .v2) {
let cache = AsrModels.defaultCacheDirectory(for: .v3)
if AsrModels.modelsExist(at: cache, version: .v3) {
return Check(name: "transcription", status: .ok, remediation: nil)
}
return Check(
Expand Down
6 changes: 3 additions & 3 deletions Sources/quill/Transcription/ParakeetEngine.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import AVFoundation
import FluidAudio
import Foundation

/// Parakeet TDT 0.6B v2 (English) via FluidAudio's Core ML port. Models
/// Parakeet TDT 0.6B v3 (multilingual) via FluidAudio's Core ML port. Models
/// download once into FluidAudio's managed cache (~600 MB); after that,
/// transcription runs entirely on-device at roughly 20 seconds per hour of
/// audio on Apple Silicon.
Expand All @@ -22,13 +22,13 @@ actor ParakeetEngine: TranscriptionEngine {
}

nonisolated let name = "parakeet"
nonisolated let model = "parakeet-tdt-0.6b-v2-coreml"
nonisolated let model = "parakeet-tdt-0.6b-v3-coreml"

private var manager: AsrManager?

func prepare() async throws {
guard manager == nil else { return }
let models = try await AsrModels.downloadAndLoad(version: .v2)
let models = try await AsrModels.downloadAndLoad(version: .v3)
let manager = AsrManager()
try await manager.loadModels(models)
self.manager = manager
Expand Down