Audita
Audita takes raw audio transcripts, deterministically merges short same-speaker segments into speaking turns, and uses an LLM to identify and fix misheard words, jargon, domain-specific terms, and conservative readability issues.
Development
This project is set up for uv.
uv sync --extra dev
uv run pytest
Usage
Set an OpenRouter API key, then process a transcript with a glossary:
export OPENROUTER_API_KEY=...
uv run audita process transcript.json --glossary glossary.yaml --output corrected.json
From a checked-out repository, you can also use the root launcher:
./audita process transcript.json --glossary glossary.yaml --output corrected.json
For a system-wide command, install the source tree under /usr/local/src/audita, sync dependencies there, and symlink the root launcher into your PATH:
cd /usr/local/src/audita
uv sync --extra dev
ln -s /usr/local/src/audita/audita /usr/local/bin/audita
audita process transcript.json --glossary glossary.yaml --output corrected.json
Without --output, Audita writes the corrected transcript JSON to stdout and progress logs to stderr.
Useful configuration can be supplied by CLI flag or environment variable:
AUDITA_MODEL, defaultopenrouter/mistralai/mistral-small-3.2-24b-instructAUDITA_BASE_URL, defaulthttps://openrouter.ai/api/v1AUDITA_MAX_SECTION_TOKENS, default16000AUDITA_GLOSSARY_CONFIDENCE_THRESHOLD, default0.60AUDITA_GRAMMAR_CONFIDENCE_THRESHOLD, default0.60AUDITA_MAX_RETRIES, default3AUDITA_GLOSSARY_MAX_LLM_PASSES, default3, for total glossary correction passesAUDITA_GRAMMAR_MAX_LLM_PASSES, default3, for total grammar/readability correction passesAUDITA_NORMALIZE_MAX_SEGMENT_GAP, default5.0, for same-speaker gaps eligible for mergingAUDITA_NORMALIZE_ELLIPSIS_GAP, default2.0, for same-speaker gaps that should be joined with...AUDITA_NORMALIZE_MAX_SEGMENT_DURATION, default60.0, for maximum merged segment durationAUDITA_NORMALIZE_MAX_SEGMENT_TOKENS, default2048, for maximum merged segment prompt payload sizeAUDITA_WORK_DIR, default/tmp/audita
AUDITA_WORK_DIR stores per-run diagnostics while processing. Successful runs clean up their run directory unless corrections are skipped; failed runs and skipped-correction runs preserve diagnostics for debugging.