DEV Community

Viktor
Viktor

Posted on

AI QA-Assistant for Freelance Audio Transcribers (Hacktoberfest Week 2)

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

I built Transcriber-QA-Toolkit, an automated QA pipeline designed for freelance audio transcribers and data annotators.

Transcribing the audio is only 20% of the job. The other 80% is formatting the text according to strict guidelines: checking specific tags like , converting numbers (Inverse Text Normalization), fixing mathematical symbols, and recovering accidentally missed words from the audio.

This single-script toolkit solves that problem by automating the Quality Assurance and gap-filling process. It analyzes the timestamps of JSON transcriptions, slices the original audio to recover missing words using Whisper, and strictly formats the entire text batch using an open-weight model.

Who would pay for it: Freelance transcribers are paid per audio minute. By cutting QA time by 90%, this tool effectively doubles their hourly rate. Transcription agencies would also pay a subscription for a local, automated QA tool that ensures their workers' output is 100% compliant with client guidelines before submission.

Demo


Code

How I Built It
The project is built around a single, powerful Python script (groq_batch_fixer.py) running on Groq's high-speed inference API for extreme speed, paired with FFmpeg for audio processing.

  1. Whisper Audio Gap Recovery Human transcribers often miss words. The script analyzes the start and end timestamps in the JSON file. If it finds a silence gap greater than 0.5 seconds, it extracts that specific audio chunk via FFmpeg and runs it through whisper-large-v3 to catch any missed speech.

gap_duration = start - last_end
if gap_duration > 0.5:
gap_text = transcribe_with_whisper(AUDIO_PATH, last_end, start)
if gap_text and re.search(r'[а-яА-Яa-zA-Z]', gap_text):
print(f"➕ [Found missing speech]: {gap_text}")

  1. Strict Batch Normalization Using a strict system prompt and zero-shot/few-shot examples, the script batches the transcription segments and sends them to LLaMA (e.g., llama3-70b-8192 or llama3-8b-8192). The model acts purely as a formatting algorithm, applying Inverse Text Normalization (ITN), fixing punctuation, and managing strict spacing rules around tags, while preserving the original spoken words.

Why Does Open Innovation Matter?
For the transcription side hustle, open-source AI is a strict requirement, not just a preference:

Strict NDA & Privacy: Freelancers work with highly confidential audio (medical, legal, unreleased products). You cannot send this data to closed APIs that might train on user data. Open-weight models like LLaMA and Whisper guarantee that client data never leaks, especially if the user eventually decides to run the inference entirely locally via Ollama.

Cost Efficiency: Running open models on fast inference providers like Groq costs a fraction of a cent per task, making the freelance business model actually viable.

Niche Fine-Tuning: Generic closed models are terrible at following highly specific formatting tags (like keeping without surrounding spaces). Open-weight models follow strict rules predictably for structural tasks without trying to be "chatty assistants".

My First User
I am my own first user! I work as a freelance audio transcriber and data annotation contractor. Before building this, I spent hours manually checking JSON files against strict guidelines. Now, I just run the script, review the automated fixes, and submit my tasks. It saves me hours of manual QA every single day, directly increasing my actual hourly earnings.

Top comments (0)