A command-line utility that takes a video or audio file, extracts the audio track with ffmpeg, sends it to Azure Speech-to-Text, and writes a transcript and subtitle file. I use it to batch-process recordings, meeting videos and podcast archives without running a local model.
ffmpeg extracts the audio stream and resamples it to the format Azure Speech expects (16 kHz mono WAV). The Azure Speech service processes the audio and returns timestamped phrases with speaker attribution. The script assembles these into normalised JSON and an optional WebVTT file for upload or further processing.
Accepts any format ffmpeg can decode -- MP4, MKV, MOV, MP3, M4A, and more.
Produces normalised transcript data with speaker attribution where the Azure model supports it.
Generates WebVTT subtitles with per-phrase timestamps for video players and editing tools.
Uses Azure Speech batch transcription for longer recordings and server-side speaker metadata.
Single Python script with minimal dependencies -- python transcribe.py input.mp4 and you're done.