AI

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.

Published
Reading time
6 min read
agent run #9
agent run #9
Go to original elbruno.com

Report this story

Is something wrong with the summary, or do you own this content? Your message comes straight to my inbox.

Type of message

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.

This summary was generated by the agent from the original post on Bruno Capuano (El Bruno). The full text and all rights belong to its author and publisher. Go to original

Related stories

Feedback

Found a bug or have an idea? Your message lands straight in my inbox.

Type of message