mirror of
https://github.com/storytold/filmcraft.git
synced 2026-11-02 18:09:21 +00:00
f1f5c55eba
Whisper's alignment makes words contiguous and places a start that follows a pause late, so the previous word's span held the pause and the next word's beginning; vad::tighten_words only trimmed silence at the edges, which were voiced. A run of 200 ms or more of silence with voice on both sides inside a word's span now ends the word, and the next word, when contiguous, starts after it. When the voice before the pause is too short to be the word (under half of 50 ms per letter) the word starts after the pause, and a contiguous previous word takes the scrap only when no pause separates its voice from it. Several pauses in one span cascade through the following words. On a 60 s probe (whisper-small) the 4 pauses that sat inside words are all between words afterwards and no word keeps silence at an edge; on a 48-minute interview the pauses inside a word's span go from 336 of 530 to 0, words longer than 1.5 s from 103 to 28, and the word after a pause starts within 50 ms of the voiced onset 488 times instead of 192. AI assistance: Mystic Intelligence for MysticArt Pictures. Co-authored-by: Brandon Thomas <echelon@gmail.com>
filmcraft-speech
Speech-to-text for FilmCraft's Text panel ▸ Transcript (L2). User-facing behaviour, commands and model handling: docs/transcripts.md.
Transcribertrait (mono 16 kHz in, word-timedfilmcraft_project::Transcriptout) andFixedTranscriberfor tests and agents.models: Whisper model catalogue (pinned revisions, SHA-256, sizes, licences) and, with featuredownload, the verified downloader (ureq + rustls + RustCrypto). Weights are never bundled.whisper(featurewhisper): Whisper inference on candle (CPU, pure Rust).mel,vad,diarize: log-mel front end, word-bound tightening, MFCC-clustering speaker labels.
Both features are off by default and are never enabled for wasm (cargo xtask wasm checks the
crate without them).
References
Implemented from the published description of the model: A. Radford et al., "Robust Speech
Recognition via Large-Scale Weak Supervision" (OpenAI, 2022), the model cards and configuration
files published with the weights (config.json, generation_config.json, tokenizer.json), and
the candle tensor library's public API. Weights: OpenAI Whisper, MIT licence.