Podcast audio to clean subtitles in .NET with Whisper and s1-mini
Bruno Capuano shows a local .NET pipeline that turns podcast audio into SRT or WebVTT subtitles. Whisper handles speech recognition and timestamps, while the s1-mini model only cleans each cue's text, so timing stays untouched. The post also covers the limits he found with long Spanish recordings.
Key points
- Enable timestamps explicitly with EnableTimestamps; otherwise Segments is null.
- SubtitleCue.FromTimes formats timing lines: commas for SRT, periods for WebVTT.
- NormalizeSubtitlesAsync cleans cue text, strips tags like <i>, joins multi-line cues and keeps timing strings untouched.
- Pass dropEmptyCues: true to remove cues that are pure filler instead of leaving empty ones.
- For Spanish, use a multilingual Whisper model with --language es; s1-mini v1 cleans only English text.
- Pass SubtitleFormat.WebVtt for WebVTT output.
A reader asked whether ElBruno.S1Mini could clean the SRT files his podcast tool produces. Bruno Capuano's answer is a local pipeline from audio to subtitles: Whisper transcribes with segment timestamps, each segment becomes a subtitle cue, and s1-mini cleans only the text. The model never hears audio or sees timestamps, so timing stays with Whisper.
The post is candid about limits. Whisper's own mistakes stay in the output, long recordings need windowed processing, and Spanish needs a multilingual Whisper model because s1-mini v1 is English-only. Timing values are preserved but not independently verified, so coarse cues need review before production use. WebVTT output is also supported.
Real-world use
- Turning a weekly podcast recording into SRT or WebVTT captions without uploading audio to a cloud service.
- Cleaning existing subtitle files exported from another transcription tool, skipping the Whisper step.
- Testing subtitle logic offline with a fake IChatClient in unit tests.
Why it matters
You can add local speech-to-subtitle processing to a .NET app and keep timing exact, but you still need to review transcription errors and coarse cue boundaries.