Your interview says “the plan costs fifteen dollars,” but the transcript says “50 dollars.” That is one word wrong and a materially different product claim. If you turn recordings into quotes, captions, or a blog post, you need a quick way to decide which lines deserve a second listen. Here is a reproducible ten-minute quality check, with a tiny Python script and a separate review for errors that a single score can hide.
Keep the recording and the unedited output
You can start with SoyJB's free audio-to-text tool, which exports TXT and SRT. Its default browser mode processes audio locally; an optional server mode uses an external provider. Choose deliberately for sensitive recordings. The check below also works with transcripts from other tools. Save the source audio, the untouched first transcript, and when you generated it. Make corrections in a copy so you can later tell an editorial fix from words actually spoken.
Use TXT to inspect words and quotations. Use SRT when you need captions, but review timing as well: text that is accurate yet appears a few seconds late can still mislead a viewer. If more than one person speaks, don't assume the transcript correctly identifies the speaker.

Make a human reference from the same audio excerpt
Pick about 60 seconds representative of what you plan to publish. Include noise, an accent, or speaker changes if those occur in the recording. Listen and write down the words faithfully. Copy the matching interval from the automatic transcript into a second text file. Comparing different intervals produces a meaningless score. For a long or variable recording, sample more than one section; a clean minute does not prove the whole file is accurate.
Hugging Face's ASR evaluation lesson defines word error rate, or WER, from substitutions, deletions, and insertions divided by the number of reference words. This script implements that edit-distance calculation using only Python's standard library. Save it as transcript_qc.py, with your heard words in reference.txt and the machine output for the same excerpt in model.txt.
"""Small, dependency-free word-error-rate check for a human reference and transcript."""
import re
import sys
from pathlib import Path
def words(text):
return re.findall(r"\b\w+\b", text.casefold())
def word_error_rate(reference, predicted):
a, b = words(reference), words(predicted)
if not a:
raise ValueError("The human reference is empty")
previous = list(range(len(b) + 1))
for i, expected in enumerate(a, 1):
current = [i]
for j, actual in enumerate(b, 1):
current.append(min(
current[-1] + 1, # insertion
previous[j] + 1, # deletion
previous[j - 1] + (expected != actual), # substitution
))
previous = current
return previous[-1] / len(a)
if __name__ == "__main__":
if len(sys.argv) != 3:
raise SystemExit("Usage: python3 transcript_qc.py reference.txt model.txt")
reference = Path(sys.argv[1]).read_text(encoding="utf-8")
predicted = Path(sys.argv[2]).read_text(encoding="utf-8")
print(f"WER: {word_error_rate(reference, predicted):.1%}")
Run python3 transcript_qc.py reference.txt model.txt. For “The launch costs fifteen dollars” versus “The launch costs 50 dollars,” the score is WER: 20.0%: one changed word in five. I tested the script locally with that synthetic example, an exact match, an insertion, and a deletion. I did not run a speech-recognition model against a real recording for this article.
A low score is not permission to publish unchecked
WER treats a mistaken article and a mistaken price as one word error each. It also cannot tell whether a quotation belongs to the right person. Listen again to every high-stakes line: prices, dates, quantities, names, units, negations, and commitments. If you cannot make out a word, mark it as unclear instead of guessing. If you tidy spoken language substantially, label the result as a paraphrase rather than a direct quote.
For captions, play the video at the beginning, middle, and end. Check the entry and exit time, the on-screen reading time, and whether a caption obscures something the audience needs to see. Text accuracy and timing are separate checks. A beautiful-looking subtitle file can still be wrong at the moment a claim is made.
A practical publish decision
Use WER to decide where to inspect further, not as an automatic pass/fail certificate. If a representative sample contains errors, review more of the recording or try a different tool before scaling the workflow. Even if the sample looks good, manually verify every line that could change a decision or someone's reputation. If you cannot access the original audio or do not have permission to publish the voice or quote, do not turn an unverified transcript into an attributed claim. Automation saves time on the first draft; a focused human listen protects the final piece.
