A static web application for native-speaker review of ASR-system transcriptions, hosted on GitHub Pages
# ASR Experiment Review Tool
A static web application for native-speaker review of ASR-system transcriptions, hosted on GitHub Pages.
Click here to check out the current prototype
## Project Structure
```
/
├── index.html # Main application entry point
├── app.js # Application logic
├── style.css # Styles
├── data.json # Aggregated transcription data (generated)
├── audio/
│ ├── audio_files_transcriptions/ # .gitignored input data
│ └── audio_files/ # Audio files, one sub-folder per location
│ ├── Casablanca/
│ ├── Tangier/
│ └── Oujda/
├── scripts/
│ └── aggregate_asr_data.py # Generates data.json from raw data
├── README.md
└── ROADMAP.md
```
## UI Layout concept
```
┌─────────────────────────────────────────────┐
│ [Casablanca ▾] [File 01 ▾] ▶ Play │
├─────────────────────────────────────────────┤
│ Spectrogram + playhead │ ← wavesurfer.js
├─────────────────────────────────────────────┤
│ moulsot_v0_3 │ وقال الرئيس... │ ← selectable text
│ qwen3_asr │ قال الرئيس... │
│ whisper_darija │ و قال... │
│ ... │
├─────────────────────────────────────────────┤
│ [Annotation panel — per file notes] │
│ [Export Annotations JSON] │
└─────────────────────────────────────────────┘
```
## Setup
**Prerequisites:** Python 3.8+ (for the aggregation script and local server). No other installation required — the app runs entirely in the browser with no build step.
---
**1. Place input files**
Audio files, transcriptions, and TextGrids belong under `audio/` as follows:
```
audio/
audio_files/
/
.wav
audio_files_transcriptions/
/
__ .TextGrid (optional, per-system)
transcriptions- .csv
```
Supported locations: `Casablanca`, `Oujda`, `Tangier`.
---
**2. Regenerate `data.json` (only needed …