Skip to content

Audio · A practical explainer

Estimate transcription cost from audio duration

Measure the workload first. Audio minutes, model choice, billing rules, retries and correction work belong in separate rows before you compare a subscription with usage pricing.

Edited by Clinton FeyisitanPublished

Review scope: Silent audio fixtures, duration measurements and hypothetical cost calculations.

Start with duration and the exact service

A folder's size in megabytes is not its duration. For PCM WAV files, the downloadable script reads the frame count and sample rate, then calculates seconds = frames ÷ samples per second. Python's wave module provides the header values used here. This script is limited to WAV formats supported by that runtime; it is not an MP3, MP4 or universal media probe.

Define the transcription route separately. Whisper's repository documents local model configurations and hardware-dependent speed. ElevenLabs' speech-to-text documentation distinguishes its transcription products. A text-to-speech allowance, a local model and a hosted transcription API are different scopes.

Reproduce our silent-fixture budget

The generator creates a 1.5-second mono file and a 2.25-second stereo file, both silent PCM. The inventory reports 3.75 elapsed seconds, or 0.0625 minutes. Stereo has two channels; our elapsed-duration calculation does not double the timeline. A provider might use different channel billing rules, which must be checked separately.

For demonstration only, supplying an assumed rate of 0.02 per minute produces a raw arithmetic result of 0.001250 currency units. The rate has no provider or currency attribution. This is not a quote, invoice or realistic minimum charge. Running without a rate leaves the hypothetical cost null.

python3 make-audio-fixtures.py
python3 audio-budget.py mono.synthetic.wav stereo.synthetic.wav --rate=0.02

Build the budget in layers

  1. Workload: measured duration, file count, channel layout, language and the kind of output needed.
  2. Quoted usage: exact model or endpoint, currency, rate unit, source date, minimums and rounding increments.
  3. Plan commitment: subscription base, included usage and the treatment of overage. Avoid adding an allowance as if it were a second charge.
  4. Repeated work: retries, revised settings or other runs that are actually billed.
  5. Human review: measured correction time and your explicit labor-rate assumption.

Taxes, foreign exchange, storage and transfer costs may require additional rows. The teaching script excludes these items and lists those exclusions in its JSON. It never fills a missing vendor rate from a remembered subscription price.

Local processing has a different cost record

A local model need not have a hosted per-minute charge, but its work can still require setup, hardware, energy and review time. Record the machine and elapsed execution when you actually run it. Do not convert a vendor's relative-speed chart into a promised runtime for your laptop. No local recognizer, GPU timing, power measurement or hosted API was executed for this article.

The silent files only test header arithmetic. They cannot establish speech accuracy, diarization, latency, language support or a useful transcript. Their generated byte hashes and the saved output make that narrow result inspectable.

Measure the cost of usable output

After an authorized real transcription trial, keep the original input, output, billing evidence and correction log. Evaluate critical words and the downstream task alongside the raw charge. The word-error-rate explainer shows why a transcript score needs a reference and a normalization policy. Keep those accuracy checks separate from this duration budget.

If a quote or rate is unresolved, leave it unknown in the worksheet. A smaller number produced by a missing cost is not evidence of a cheaper service.

Sources and scope

Factual explanation and local teaching examples. Source reads and local executions have separate scopes. No native provider workflow, send, payment, deliverability result or comparative winner is claimed. Send a correction.