Transcription¶
Pipeline¶
- Decode
recording.m4a; delay the mic track bymicDelayMs; AEC3 on the mic against the system track. - Resample to 16 kHz; Silero VAD (FluidAudio) finds speech segments per track.
- ASR per segment with the configured model. A voiced segment that decodes empty is retried with
the model's second pass when
beamRetry = true(Parakeet only; Whisper has its own fallback). - Diarization of the system track (pyannote community-1 via FluidAudio): far-end speakers
become
S1..SNin the order they first speak, capped bymaxSpeakers. The mic track is alwaysyou. - Merge, sort by time, write
transcript.json+transcript.md;pipeline.logrecords every stage's timing, model ids and warnings.
Re-run with different knobs from the meeting toolbar (Re-transcribe) or rex transcribe <folder>.
Models¶
| id | Engine | Notes |
|---|---|---|
parakeet-tdt-0.6b-v2 (default) |
FluidAudio CoreML | English, fast, word timings + confidence |
parakeet-tdt-0.6b-v3 |
FluidAudio CoreML | Multilingual |
whisper-tiny / whisper-base / whisper-small |
WhisperKit CoreML | Small, multilingual, lower accuracy |
whisper-large-v3-turbo |
WhisperKit CoreML | Good accuracy, ≈1.6 GB |
whisper-large-v3 |
WhisperKit CoreML | Best accuracy, ≈3 GB, slow |
whisper-distil-large-v3 |
WhisperKit CoreML | English, between turbo and large |
Settings › Transcription lists every model with its size (approximate until downloaded), download /
remove buttons and the cache folder. Downloads never start while recording. Models unload after
[models] idleMinutes by default (unloadPolicy = keep | idle | immediate).
Speakers¶
[speakers] youis the label for the mic track;unknownLabel = "Speaker {n}"formats the others. Rename a speaker by clicking its chip in the transcript: the label is rewritten intranscript.json,transcript.mdandmeeting.json.speakers.map- segment text never changes.maxSpeakersdrops the least talkative speakers beyond the cap.speakerThreshold(40–90, default 70) is the cosine-distance cutoff in percent for "same voice": lower splits voices more readily, higher merges similar voices. Tune it per meeting from the Re-transcribe sheet before changing the default.
Confidence¶
Segments carry the engine's confidence; words carry theirs when the engine provides them. In the
transcript view a segment under the threshold ([ui] lowConfidencePercent, default 60 %, in
Settings › Transcription) shows a Low confidence (n%) caption, and words a tenth below the
threshold get a dotted underline, so you know where to check against the audio. Exports do not
include confidence except json.
Player¶
The meeting detail view plays the recording with per-track mute/volume, speed, a level-bar scrubber, click-to-seek on any segment, space / ← / → keys, and highlights the current segment.