Repository navigation
docs(asr): document that a v3 language hint is script-scoped - #1092
Conversation
Every Latin-script Language resolves to .latin, so .spanish and .english filter the same tokens and decode the same audio identically; only .french adds the English blocklist. Say so on Language, in the CLI help and in TokenLanguageFilter.md, with FLEURS es measurements, and point to Canary and Cohere Transcribe for a decode conditioned on one language.
Parakeet EOU Benchmark Results ✅Status: Benchmark passed Performance Metrics
Streaming Metrics
Test runtime: 1m0s • 11/01/2026, 01:54 PM EST RTFx = Real-Time Factor (higher is better) • Processing includes: Model inference, audio preprocessing, state management, and file I/O |
ASR Benchmark Results ✅Status: All benchmarks passed Parakeet v3 (multilingual)
Parakeet v2 (English-optimized)
Streaming (v3)
Streaming (v2)
Streaming tests use 5 files with 0.5s chunks to simulate real-time audio streaming 25 files per dataset • Test runtime: 6m26s • 11/01/2026, 02:19 PM EST RTFx = Real-Time Factor (higher is better) • Calculated as: Total audio duration ÷ Total processing time Expected RTFx Performance on Physical M1 Hardware:• M1 Mac: ~28x (clean), ~25x (other) Testing methodology follows HuggingFace Open ASR Leaderboard |
Supertonic3 Smoke Test ✅
Runtime: 0m26s Note: CI VMs lack a physical Neural Engine; the ANE-bucketed VectorEstimator falls back to CPU here. This validates download + variant resolution + synthesis, not ANE residency/perf. |
Speaker Diarization Benchmark ResultsSpeaker Diarization PerformanceEvaluating "who spoke when" detection accuracy
Diarization Pipeline Timing BreakdownTime spent in each stage of speaker diarization
Speaker Diarization Research ComparisonResearch baselines typically achieve 18-30% DER on standard datasets
Note: RTFx shown above is from GitHub Actions runner. On Apple Silicon with ANE:
🎯 Speaker Diarization Test • AMI Corpus ES2004a • 1049.0s meeting audio • 63.3s diarization time • Test runtime: 4m 26s • 11/01/2026, 02:46 PM EST |
Sortformer High-Latency Benchmark ResultsES2004a Performance (30.4s latency config)
Sortformer High-Latency • ES2004a • Runtime: 4m 0s • 2026-11-01T21:03:06.759Z |
PocketTTS Smoke Test ✅
Runtime: 0m19s Note: PocketTTS uses CoreML MLState (macOS 15) KV cache + Mimi streaming state. CI VM lacks physical GPU — audio quality and performance may differ from Apple Silicon. |
Refs #1063.
Why is this change needed?
A Parakeet v3 language hint only selects a script. Every Latin-script
Languageresolves to.latin, so.spanish,.englishand the rest filter the same tokens. On FLEURS es_419 (dev 408 + test 100 clips),.spanish,.englishand no hint gave byte-identical output on all 508 clips; on 100 clips each of it/pt/de, the native hint matched no hint every time. Only.frenchdiffers, because it also runs the English blocklist from #630.The issue's failure reproduces on read speech: in 6 of 508 Spanish clips v3 emits English function words, and in 2 it renders most of the sentence in English ("…estos plans cayeron in disuso … when most de 80 000 combatientes … and formed the front…").
What changes?
The docs and help text now say what the hint does, so callers don't read it as a per-language constraint:
Languagedoc comment--languagehelpTokenLanguageFilter.mdThey point to the two decoders in FluidAudio that are conditioned on a language: Canary (
CanaryManager(models:source:target:)) and Cohere Transcribe (language:)..spanishNot changed: a Spanish English-blocklist
I tried a Spanish blocklist: the #630 list minus pieces that start a word in the FLEURS es train text, plus
the/The.The, which also hits English titles in Spanish text ("The Guardian", in 11 of 2,796 train sentences).Validating a list like this needs spontaneous Spanish and code-switched audio first (#840).
🤖 Generated with Claude Code