Project

azure-transcription-helper

experimental

Extract audio from media files and build transcripts and subtitles via Azure Speech Services.

Overview

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.

How it works

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.

Features
🎙️
Media file input

Accepts any format ffmpeg can decode -- MP4, MKV, MOV, MP3, M4A, and more.

📝
Transcript output

Produces normalised transcript data with speaker attribution where the Azure model supports it.

🎬
WebVTT subtitle export

Generates WebVTT subtitles with per-phrase timestamps for video players and editing tools.

☁️
Azure Speech backend

Uses Azure Speech batch transcription for longer recordings and server-side speaker metadata.

📦
Simple CLI

Single Python script with minimal dependencies -- python transcribe.py input.mp4 and you're done.

Architecture
Media file MP4 / MOV / MP3 / MKV ffmpeg extract 16 kHz mono WAV Azure Speech batch transcription Transcript data normalised JSON Subtitles optional WebVTT batch transcription returns speaker-attributed JSON and optional WebVTT