- crates/speech (L2): Transcriber trait, FixedTranscriber, Whisper model catalogue (pinned, SHA-256 verified) with optional downloader (feature `download`: ureq + rustls + RustCrypto), pure-Rust Whisper inference on candle with word timestamps (feature `whisper`), log-mel, VAD word tightening, MFCC speaker clustering. Both features off by default and for wasm. - project: per-media-item transcripts (Project::transcripts); schema v9 with a no-op v8->v9 migration and a v8 fixture. - edit::transcript: sequence transcript derived from clip transcripts, search, paragraphs, word ranges, pause/filler detection, ripple delete of many ranges, caption layout. - engine: transcript.* commands (generate, set, delete, inspect, search, select, extract, lift, renameSpeaker, removeFillers, removePauses, createCaptions, models, downloadModel); Session::transcriber for hosts/tests; features `whisper` / `speech-download` (also on the desktop and CLI apps). Without whisper, transcript.generate fails with a clear error. - ui: Text panel Transcript tab (Transcribe button, speaker paragraphs of clickable words, Shift+click selection -> In/Out, extract/lift/remove fillers/create captions, search) with text.transcript.* automation ids; headless UI test. - docs/transcripts.md, crates/speech/README.md, architecture and project-files updates. whisper-tiny measures 12.2% WER over 797 words on local samples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| tests | ||
| Cargo.toml | ||
| README.md | ||
README.md
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.