Repository navigation
Getting Started
Mohamed Fadil edited this page Oct 6, 2026
·
1 revision
- Python 3.12
-
ffmpeg(decoding MP3/M4A and stress tests) -
espeak-ng(only to build the synthetic dev dataset)
sudo apt-get install -y ffmpeg espeak-ng
pip install -r requirements.txt| Command | What it does |
|---|---|
make dataset |
Builds ./dataset (63 items, about 70 MB, deterministic) |
make test |
Runs 9 tests: determinism, localisation, error handling, API |
make evaluate |
Writes results/evaluation.md and .json
|
make stress |
Writes results/stress.md and .json (takes several minutes) |
make serve |
Starts the API on http://127.0.0.1:8000
|
python -m arachne analyze my_speech.wav --transcript-file transcript.txt --reference gettysburg --out result.json- The reference id is a folder
dataset/references/<id>/withreference.wavandreference.json. - The transcript must contain the same words as the reference text; otherwise you get a
transcript_mismatcherror. - Exit code is
0forok,2otherwise.
- Create
dataset/references/<id>/reference.wav. - Create
reference.jsonwithid,title,transcript,audio,provenance,license. An optional reviewedalignmentlist (text,start,endper word) overrides automatic alignment. - Check the recording's reuse terms, not just the text's.
All thresholds live in arachne/config.py. Every result stores the full config and a config_hash, so any result can be traced to the exact settings that produced it. Alignment backend: align.backend = proportional (default) or whisperx (untested).
| Symptom | Cause / fix |
|---|---|
transcript_mismatch |
Transcript words differ from the reference text |
alignment_failed / transcript_audio_mismatch_suspected
|
Audio doesn't match the text, or implausible speaking rate |
insufficient_evidence |
Very noisy audio or too little voiced speech; scores are withheld on purpose |
| Tests skipped | Run make dataset first |
Arachne · Multimodal AI Hackathon 2026, Track C · Parts of this project were built with assistance from Claude (Anthropic).