Introducing the OpenGlottal App: A Free Desktop Tool for Glottal Visualization
High-speed videoendoscopy (HSV) is the gold standard for understanding vocal fold dynamics, offering a breathtaking frame-by-frame view of human phonation. But for too long, there’s been a massive “usability gap.”
Turning those high-speed frames into usable clinical data — like Open Quotient, Fundamental Frequency or periodicity — usually requires a “black box” of custom scripts.
Introducing the OpenGlottal App. We’ve taken our detection-gated AI pipeline and wrapped it in a cross-platform desktop interface. Now, clinicians and researchers can open a video, see the glottis segmented in real-time, and read off kinematic metrics without writing a single line of code.
What is OpenGlottal?
OpenGlottal is a detection-gated pipeline: a YOLOv8 glottis detector, a U-Net segmenter, and optional motion-based tracking. It turns high-speed laryngoscopy videos into **glottal area waveforms** and kinematic features (open quotient, fundamental frequency, periodicity, etc.), with models trained and evaluated on GIRAFE and BAGLS. The paper describes the full pipeline and clinical findings.
The Qt App doesn’t replace the CLI or the Python API — it sits on top of them. You load a video, pick your detector and U-Net weights from a dropdown, set a frame range, and hit Play. The app runs inference frame-by-frame, draws the segmentation overlay and optional midline (major/minor axes, anterior/ posterior commissure markers), and shows a live waveform plus a status panel with the kinematic numbers derived from it.
Who is it for?
Voice labs and clinicians who want to inspect a recording quickly and see segmentation and metrics without writing code.
Researchers to Prototype on a few videos or checking model behavior before running large batches.
Developers who want a reference implementation for overlay, midline, and waveform logic they can extend or re-use. Open Source contributions to the repo is highly encouraged.
Precision Kinematics: Mapping Asymmetry
The OpenGlottal interface reveals the complex vibratory patterns associated with vocal fold nodules, which often present as an ‘hourglass’ closure pattern and significant L/R asymmetry.
Standard automated tools often give you a single “Global Area” number. But vocal fold pathology is rarely perfectly symmetrical. OpenGlottal App has:
- Dynamic Medial Probe: The blue horizontal line serves as a configurable probe that clinicians can position precisely at the site of a nodule to isolate localized vibratory behavior. This line is automatically detected and adapts to the endoscopic movements
- Segmented Closure Visualization: The U-Net segmenter (green overlay) provides a precise, non-rigid segmentation of the glottal area, clearly showing incomplete closure or irregular edges caused by nodular tissue.
- Asymmetric Displacement Waveforms: The Left/Right displacement waveform (bottom) tracks independent excursions of the left (red) and right (blue) folds. In this pathological case, it quantifies the phase and amplitude differences resulting from the increased mass and stiffness of a localized nodule.
- Motion-Robust: Because the medial line tracks the glottis — not just the frame — your data stays clean even if the patient moves or the endoscope shifts.
- Clinical Kinematics: By extracting objective metrics such as a Periodicity of 0.902 and an Open Quotient of 0.886, the tool provides a standardized baseline for characterizing the severity of glottal incompetence and tracking recovery after voice therapy.
Clinical Insight: By shifting the analysis point toward the PC, you can specifically isolate posterior glottal gaps or quantify the impact of a lesion localized at the vocal process.
What you can do in the app?
Load a video and, if you have one, an optional metadata.json next to it (e.g. for FPS; default is 4000).
Get Harikrishnan (Hari) Unnikrishnan’s stories in your inbox
Join Medium for free to get updates from this writer.
Choose models from your weights/ folder: YOLO detector and U-Net segmenter. GIRAFE or BAGLS weights are provided in the repo. You can retrain or finetune them for your data.
Set a frame range to restrict playback and inference to a region of interest.
Toggle the midline: major/minor axes, AC/PC markers, and a configurable L/R position (a blue line along the medial line). Parameters like β and τ control smoothing and detection; changing them pauses playback and rebuffers so the display stays consistent.
The medial line adapts to the endoscope motion and the region of the vocal fold from which the displacement waveforms; L(Left)/R(Right), L-R, can be moved to any place between Anterior Commissure (AC) and Posterior Commissure (PC). This is powerful to analyze AC — PC or L — R asymmetries.
Switch waveform mode: Left/Right, L−R difference, or Area (segmentation area per frame). The status panel (Open Quotient, F0, periodicity, etc.) updates from the currently selected waveform.
Play, Pause, Step, or seek with the timeline slider. Seeking pauses playback and requests a single frame when you release the slider, so you don’t get jitter or out-of-order frames.
-Crop the display (optional) with left, top, width, and height in pixels.
Everything runs on your machine; no data is sent elsewhere. You keep full control over which weights and which videos you use.
How to run it?
Clone the repo, use a virtual environment, and install with the GUI extra:
pip install openglottal
openglottal-guiThe [gui] extra pulls in PyQt5 (or you can use PySide6). You’ll need Python ≥ 3.9, PyTorch, and the usual OpenGlottal dependencies; the main README has the full list. Put the pre-trained weights in `weights/` (or point the app at your own), and you’re set.
Why open source?
Voice and laryngeal imaging are specialized domains. OpenGlottal — and the Qt app — are released so that labs and clinicians can run, inspect, and adapt the pipeline without lock-in. The app is a practical entry point: run it, see what the models do, then use the CLI or Python API for batch processing or integration into your own workflow. If you build on it or find bugs, contributions and issues are welcome on [GitHub](https://github.com/hari-krishnan/openglottal).
Links
— Installation: PyPI:
pip install openglottal— Repository:
https://github.com/hari-krishnan/openglottal— Zenodo DOI:
https://doi.org/10.5281/zenodo.19076463— Paper: arXiv:2603.02087— A Detection-Gated Pipeline for Robust Glottal Area Waveform Extraction and Clinical Pathology Assessment
— GUI docs: openglottal/qt_app/README.md in the repo







