Besra: An interactive tool for speech annotation, phonetic analysis, and computer-assisted fieldwork

List of Authors

  1. Kellen Parker van Dam ,  
  2. David Snee ,  
  3. Johann-Mattis List
    ,  
  4. Andre Goderich
    ,  
  5. Luca Ciucci ,  
  6. Carlo Y Meloni ,  
  7. Keen Thaam
    ,  
  8. Nora Muheim
    ,  
  9. Katja Bocklage
    ,  
  10. Arne Rubehn
Article Authors & roles Authors Peer review record Peer review Metrics
Cite

Abstract

Time-aligned speech annotation is typically done in Praat and ELAN, tools developed prior to the current Python-based NLP ecosystem. Taking advantage of moden NLP workflows means exporting files and reimporting the results. We address this with Besra, an open source desktop application for editing and analysing time-aligned annotation, written entirely in Python as a headless core with a cross-platform PySide6 interface. It is extensible, as Plugins are ordinary Python files executed in the host interpreter that receive the running application as an argument. The extension surface is every distribution installed in the environment, including the machine learning stack and the standards infrastructure of comparative linguistics. Waveform, spectrogram, pitch, formant, amplitude, and annotation displays share one time axis and one selection. It offers with a wider choice of estimation methods than annotation editors usually offer. Real-time quality measures are drawn on the same as the annotation is made, including a per-interval score for suitability as speech recognition training data, and a heatmap flagging transcriptions unlike the rest of their tier. Both are computed from the recording and its own annotation, so they need no lexicon or pretrained model and work on undescribed languages. Besra reads and writes Praat TextGrid, ELAN .eaf, and a documented version-controllable tab-separated format, with round-trip fidelity under test, so a project can adopt it for a single task. Besra is released under the GNU Affero General Public License version 3, developed on Codeberg and archived on Zenodo.

Plain Language Summary

Researchers who work on spoken languages spend much of their time marking up recordings: dividing them into utterances, words, and sounds, and writing down what was said and when. The two programs almost everyone uses for this, Praat and ELAN, were designed before the current generation of speech technology, and adding new capabilities to them means learning a special-purpose scripting language or writing Java. Besra does the same job but is written entirely in Python, the language in which most speech and machine learning research is now written. Anything published as a Python package, such as a speech recogniser, a statistical model, or a client for a linguistic database, can be used from inside Besra by writing a short file, with no exporting and reimporting of data. While the annotation is being made, Besra also shows whether a recording is clean enough to be useful for training speech software and whether a transcription has been written differently from the rest of the file, so that problems can be fixed while the speaker is still present. Because Besra reads and writes the file formats that Praat and ELAN use, it can be added to an existing project without disturbing anything else. It is free and open source and runs on macOS, Linux, and Windows.

Corresponding author
Kellen Parker van Dam
0000-0002-7304-1685
Grant information

This project has received funding from the European Research Council (ERC) under the European Union’s Horizon Europe research and innovation programme (Grant agreement No. 101044282). Views and opinions expressed are, however, those of the author(s) only and do not necessarily reflect those of the European Union or the European Research Council Executive Agency, nor any other funding agencies involved. Neither the European Union nor the granting authority can be held responsible for them.

The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.

Copyright
© 2026 Kellen Parker van Dam (Corresponding Author, Co-Author); David Snee (Co-Author); Johann-Mattis List (Co-Author); Andre Goderich (Co-Author); Luca Ciucci (Co-Author); Carlo Y Meloni (Co-Author); Keen Thaam (Co-Author); Nora Muheim (Co-Author); Katja Bocklage (Co-Author); Arne Rubehn (Co-Author) Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

First version published
Latest version published

Comments

Authors & roles

Kellen Parker van Dam

Chair for Multilingual Computational Linguistics, University of Passau, Passau, Bavaria, Germany

Roles
Corresponding Author, Co-Author, Conceptualization, Data Curation, Investigation, Project Administration, Software, Supervision, Validation, Writing – Original Draft Preparation, Writing – Review & Editing
0000-0002-7304-1685

David Snee

Chair for Multilingual Computational Linguistics, University of Passau, Passau, Bavaria, Germany

Roles
Co-Author, Conceptualization, Data Curation, Software, Writing – Original Draft Preparation, Writing – Review & Editing
0009-0006-6624-7235

Johann-Mattis List

Chair for Multilingual Computational Linguistics, University of Passau, Passau, Bavaria, Germany

Roles
Co-Author, Conceptualization, Software, Writing – Original Draft Preparation, Writing – Review & Editing

Andre Goderich

Department of English, National Changhua University of Education, Changhua City, Taiwan

Roles
Co-Author, Conceptualization, Software, Writing – Review & Editing

Luca Ciucci

Chair for Multilingual Computational Linguistics, University of Passau, Passau, Bavaria, Germany

Roles
Co-Author, Conceptualization, Data Curation, Software, Writing – Review & Editing
0000-0003-0206-3913

Carlo Y Meloni

Chair for Multilingual Computational Linguistics, University of Passau, Passau, Bavaria, Germany

Roles
Co-Author, Software, Writing – Review & Editing
0009-0008-0383-7267

Keen Thaam

Department of Linguistics, Nagaland University, Meriema, Nagaland, India

Roles
Co-Author, Data Curation, Investigation, Validation, Writing – Review & Editing

Nora Muheim

University of Helsinki, Helsinki, Uusimaa, Finland

Roles
Co-Author, Conceptualization, Data Curation, Writing – Review & Editing

Katja Bocklage

Chair for Multilingual Computational Linguistics, University of Passau, Passau, Bavaria, Germany

Roles
Co-Author, Writing – Review & Editing

Arne Rubehn

Chair for Multilingual Computational Linguistics, University of Passau, Passau, Bavaria, Germany

Roles
Co-Author, Software, Writing – Review & Editing

Awaiting peer review

Downloads over the last 12 months:

Cited by

via Crossref

View citing articles