PrisAImSearch
THE WORKBENCH / Audio / local transcription

Turn a recording into editable captions

Keep the audio on your computer.

Start with the practice files
ILLUSTRATIVE EXPECTED RESULT
OutputPurposeWhat to inspect
practice-captions.txtRaw transcriptAll known words and both numbers
practice-captions.srtEditable numbered cuesTimestamps and line breaks against your recording
practice-captions.vttWeb subtitle formatWEBVTT header and matching cue content

The downloadable SRT demonstrates structure only. Its timings are illustrative, not measured from a recording. Do not use them as timing evidence for your own audio.

01 / EXACT INPUT

Try it with fictional data first.

Read the complete sample input
Record your own voice, with a brief pause between sentences. Export as practice.m4a.
Welcome to the repair workshop.
Bring one small item and arrive ten minutes early.
The session starts at nine thirty, not nine thirteen.

Documentation-based terminal recipe. No audio recording, model download, inference, accuracy or speed test was performed. The SRT is an explicitly illustrative format fixture.

02 / WHY THIS STACK

Know what you need.

Whisper small.en is an explicit English-only baseline with a smaller memory footprint than the large models. The project lists roughly 466 MiB on disk and 852 MB memory for small, not a measured speed or error rate. For other languages use multilingual small, not small.en.

  • A recording you have permission to process
  • Git, CMake, a C/C++ compiler, FFmpeg and disk space
  • macOS/Linux or a configured WSL shell for these commands. Native Windows executable paths differ.
Cost & access

Local inference has no per-minute cloud service fee. Your hardware and review time still cost something. Code and model weights have their own stated licenses.

03 / DO THE WORK

From input to something usable.

STEP 01

Record a known test first

Read the three supplied sentences yourself, pause between them and export practice.m4a. Keep "nine thirty, not nine thirteen"; it is deliberately easy to mishear. No audio or video fixture is supplied, and no recording needs to be uploaded.

STEP 02

Build and download once

Use the official project, build it and download small.en. These setup steps need internet. Save the revision beside your outputs so the workflow can be reproduced.

READY TO COPY
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
git rev-parse HEAD > workflow-version.txt
cmake -B build
cmake --build build -j --config Release
sh ./models/download-ggml-model.sh small.en
Official instructions
STEP 03

Normalize the input container

Copy practice.m4a into that directory. Convert it to mono 16 kHz 16-bit PCM WAV rather than depending on optional codec support in a particular build.

READY TO COPY
ffmpeg -i practice.m4a -ar 16000 -ac 1 -c:a pcm_s16le practice-16k.wav
STEP 04

Produce all three formats together

Run the command below from the repository directory. -of is the output basename; do not append .srt. Check whisper-cli -h against your installed build if a flag differs.

READY TO COPY
./build/bin/whisper-cli \
  -m models/ggml-small.en.bin \
  -f practice-16k.wav -l en \
  -otxt -osrt -ovtt -of practice-captions
Official instructions
STEP 05

Validate text and cue times against audio

After setup, disconnect networking and repeat with a new output basename to check local operation. Open the SRT in a text editor and play the recording in your audio player. Listen to every cue, correcting the exact words and cue boundaries, especially the two numbers. Check start/end offsets and long lines. This is an audio-to-subtitle recipe; it does not create or imply a captioned video.

04 / READY TO USE

Start with an explicit request.

READY TO COPY
./build/bin/whisper-cli \
  -m models/ggml-small.en.bin \
  -f practice-16k.wav -l en \
  -otxt -osrt -ovtt -of practice-captions
05 / EXPECTED RESULT

Check this before calling it done.

Illustrative expected output, not output observed from a model run.

OutputPurposeWhat to inspect
practice-captions.txtRaw transcriptAll known words and both numbers
practice-captions.srtEditable numbered cuesTimestamps and line breaks against your recording
practice-captions.vttWeb subtitle formatWEBVTT header and matching cue content

The downloadable SRT demonstrates structure only. Its timings are illustrative, not measured from a recording. Do not use them as timing evidence for your own audio.

  • Listen to every cue; nine thirty and nine thirteen remain distinct
  • Timestamps follow the recording with no start/end offset or drift
  • Keep both the raw transcript and the edited delivery subtitles
06 / WHEN IT GOES WRONG

Fix the failure, not the wording.

No executable

Resolve the compiler/CMake error before downloading more models.

File not found

Run from the repository directory or provide explicit paths.

Wrong language

Use a multilingual model and set -l to the recording language.

Words invented in silence

Listen and remove those cues. Do not infer a named speaker from voice alone; this command is not reliable speaker diarization.

When another approach is better

A familiar editor’s caption tool is simpler when cloud processing is allowed. A human transcriber remains appropriate when exact wording is critical. Importing into a video editor is a separate workflow with a real video source.

Sources & what was checked.

Documentation-based terminal recipe. No audio recording, model download, inference, accuracy or speed test was performed. The SRT is an explicitly illustrative format fixture.

Setup and model sizesCLI output flagswhisper.cpp licenseWhisper license
Start here: AI basicsNewsCompareWorkshopsDiscovery methodsSearch everything
Browser-local saved list

Clear your saved entries?

This removes your list from this browser only. You can save entries again at any time.