Persephone-ELAN integrates the automatic phoneme recognition methods offered by Persephone (Adams et al. 2018, Michaud et al. 2018) into ELAN, allowing users to apply automatic phoneme recognition to tiers in ELAN transcripts directly from ELAN's user interface.
Persephone-ELAN makes use of several of other open-source applications and utilities:
- ELAN (tested with v5.6-AVFX, v5.7-AVFX, and v5.8 under macOS 10.13 and 10.14)
- Python 3 (tested with Python 3.6 and 3.7)
- ffmpeg
Persephone-ELAN is written in Python 3, and also depends on the following Python packages:
- Persephone, installed system-wide (currently tested with Persephone 0.3.2 and 0.4.0 under Python 3.6 and 3.7) and all of its dependencies
- pydub, installed system-wide (tested with v0.20.0)
Once all of these tools and packages have been installed, Persephone-ELAN can be made available to ELAN as follows:
- Save a copy of all of the files in the latest release
of this repository in a single directory (e.g.,
Persephone-ELAN
). - Edit the file
persephone-elan.sh
to specify (a) the absolute path of the Python 3 binary that Persephone-ELAN should use, (b) the directory in which ffmpeg is located, and (c) a Unicode-friendly language and locale (ifen_US.UTF-8
isn't available on your computer). - To make Persephone-ELAN available to ELAN, move your Persephone-ELAN directory
into ELAN's
extensions
directory. This directory is found in different places under different operating systems:- Under macOS, right-click on
ELAN_5.8
in your/Applications
folder and select "Show Package Contents", then copy yourPersephone-ELAN
folder intoELAN_5-8.app/Contents/Java/extensions
. - Under Linux, copy your
Persephone-ELAN
folder intoELAN_5-8/app/extensions
. - Under Windows, copy your
Persephone-ELAN
folder intoC:\Users\AppData\Local\ELAN_5-8\app\extensions
.
- Under macOS, right-click on
Once ELAN is restarted, it will now include 'Persephone Phoneme Recognizer' in the list of Recognizers found under the 'Recognizer' tab in Annotation Mode. The user interface for this recognizer allows users to enter the settings needed to apply an existing, pre-trained Persephone phoneme recognition model to all of the annotations found on a specified tier (see the Persephone documentation for details on how to train these models). All of these settings are ones that are specified when a model is being trained (e.g., the directory in which the experiment containing the model is found, the directory of the corpus containing the original training data, the feature and label types used in training, etc.).
Once these settings have been entered in Persephone-ELAN, pressing the Start
button will begin applying the specified Persephone phoneme recognition model to
all of the time-aligned annotations on the selected tier. Once that process is
complete, if no errors occurred, ELAN will allow the user to load the resulting
tier with the automatically recognized phoneme strings into the current
transcript.
This is an alpha release of Persephone-ELAN, and has only been tested under macOS (10.13, 10.14) with Python 3 (3.6, 3.7) and Persephone (0.3.2, 0.4.0). No support for Windows is included in this version.
Thanks are due to all of the contributors to Persephone, including Oliver Adams and Alexis Michaud, whose support and feedback contributed directly to the development of Persephone-ELAN. Thanks, as well, to Han Sloetjes for his help with issues related to ELAN's local recognizer specifications.
If referring to this code in a publication, please consider using the following citation:
Cox, Christopher. 2019. Persephone-ELAN: Automatic phoneme recognition for ELAN users. Version 0.1.2.
@manual{cox19persephoneelan, title = {Persephone-ELAN: Automatic phoneme recognition for ELAN users}, author = {Christopher Cox}, year = {2019} note = {Version 0.1.2}, }