Reference

Repository map

Every file and folder, with its purpose and whether it is in version control.

Layout

.
|-- asr.py                    ASR wrapper (Whisper-family), optional denoising
|-- llm.py                    LLM wrapper (chat template, greedy generation)
|-- pipeline.py               SpeechPipeline + JSON CLI + load_config
|-- denoise.py                spectral-subtraction front end
|-- evaluate.py               WER/CER/RTF/F1 metrics + batch evaluation CLI
|-- prepare_data.py           folder/manifest -> evaluator JSON
|-- synthesize_corpus.py      TTS corpus generator (clean + noisy)
|-- plot_results.py           headless plots from evaluation outputs
|-- hallucination.py          correct / abstained / hallucinated classifier
|-- bootstrap.py              paired bootstrap intervals
|-- verify_task2.py           setup checks + mock end-to-end run
|-- config.yaml               baseline configuration
|-- config_denoised.yaml      same, with asr.denoise: true
|-- requirements.txt          dependency ranges
|-- README.md                 operating manual
|-- AGENTS.md                 repository workflow rules
|-- DraftTask1.md             original long-form Task 1 draft
|-- tests/                    30 offline unit tests (8 files)
|-- reports/                  papers: report (unified), task1, task2 (.tex/.md/.pdf)
|-- docs/                     this documentation site
|
|-- corpus_clean/  corpus_noisy/        generated audio + labels     [git-ignored]
|-- data/                               evaluator manifests          [git-ignored]
|-- outputs/                            evaluation, plots, verify    [git-ignored]
|-- .cache/huggingface/                 downloaded model weights     [git-ignored]
|-- tmp/                                scratch/diagnostics          [git-ignored]
|-- moshi.pdf  "qwen omni.pdf"          source papers (local copies) [git-ignored]

Source files

PathDescriptionDocs
asr.pyASRWrapper, resolve_runtime, synchronizeReference
llm.pyLLMWrapperReference
pipeline.pySpeechPipeline, PipelineResult, load_config, CLIReference
denoise.pyspectral_subtract_denoiseExtension
evaluate.pyMetric functions, paired evaluation, report writing, CLIMetrics
prepare_data.pyManifest builderDataset formats
synthesize_corpus.pyCorpus generatorDataset
plot_results.pyPlotsPlots
hallucination.pyFact-based classifierDefinition
bootstrap.pyBootstrap CIsMethod
verify_task2.pyVerifierReference

Configuration and project files

PathDescription
config.yamlBaseline models, decoding and paths. Reference.
config_denoised.yamlIdentical but asr.denoise: true.
requirements.txtDependency ranges, checked by verify_task2.py.
README.mdThe repository's operating manual: running, data preparation, evaluation, plotting, verification, hallucination, bootstrap, extension.
AGENTS.mdWorkflow rules: commit each completed logical step with concise Conventional Commits messages; run appropriate checks first; keep generated outputs, model caches, temporary dependencies and local reference documents out of version control.
DraftTask1.mdThe original, longer Task 1 draft (with figure specifications and a verification checklist). The shorter reports/task1.md is the cleaned-up version.
.gitignoreIgnores bytecode, virtualenvs, caches, outputs/, data/, tmp/, corpus_clean/, corpus_noisy/ and the local reference PDFs.

tests/

test_evaluate.py, test_pipeline.py, test_prepare_data.py, test_plot_results.py, test_verify_task2.py, test_denoise.py, test_hallucination.py, test_bootstrap.py. See Tests.

reports/

FileDescription
report.tex, report.pdfThe single ACL-style paper (11 pages) covering both parts.
task1.md, .tex, .pdfStandalone Task 1 write-up (13 pages), with the three TikZ diagrams.
task2.md, .tex, .pdfStandalone Task 2 write-up (7 pages), with the plots and the model-compatibility story.

docs/

PathDescription
*.htmlThe pages of this site, content only.
assets/style.cssTheme (light and dark), layout, components.
assets/app.jsBuilds the navigation, on-page contents, search, theme toggle and copy buttons. No libraries.
assets/search-index.jsGenerated search index (python docs/build_search_index.py).
assets/fonts/Inter variable font (Latin subset, SIL Open Font License 1.1), self-hosted so the site needs no network.
assets/img/Three diagrams cropped from the paper and six result plots (copies of the ignored outputs/plots).
assets/pdf/Copies of the three PDFs, so the site links work when docs/ is served on its own.
build_search_index.pyRegenerates the search index from the pages' headings and text.

Generated, git-ignored folders

PathMade byContents
corpus_clean/, corpus_noisy/synthesize_corpus.py129 x (.wav, .txt, .response.txt) each
data/prepare_data.pytest_clean.json, test_noisy.json and metadata files
outputs/evaluation/{clean,noisy_baseline,noisy_denoised}/evaluate.pyreport.json, samples.csv, failures.csv, wer_vs_quality.csv
outputs/evaluation/hallucination.jsonhallucination.pyCorrect / abstained / hallucinated counts per condition and arm
outputs/plots/<condition>/plot_results.pywer_vs_quality.png, latency_breakdown.png
outputs/verification/verify_task2.pyverification.log, checks.json, summary.md, mock/
.cache/huggingface/Hugging Face downloadsModel weights (about 1 to 3 GB)