 So, good afternoon, everyone. This is Chris Cox from Carleton University. Thank you so much for the chance to participate in this workshop and sorry not to be able to join you in person. I'm actually filming this from here in the Yukon Territory in far northwestern Canada, where my wife and I are helping out with a language workshop this week. I wish I were able to join you in person, but I hope that this video will be helpful. This is meant to be a short introduction to a small tool that I've been working on called Persephone Alon. So over the next 15 minutes or so, I'm hoping to introduce you to some of the basic features of Persephone Alon, some of the things that it currently does and doesn't do, and hopefully give you a sense of how you might be able to apply it to some of your own projects. As I understand it, you already have covered or will be covering this afternoon how to train up your own Persephone phoning recognition models. As we'll see in a few moments, that's going to be important for you to use Persephone Alon in your own work. I need to start with a few acknowledgments here. A number of the examples that we'll be seeing in the slides to come are from the Tsutana language. Danny language spoken in southern Alberta in western Canada. These come primarily from the Tsutana Language Commissioner Bruce Starlight. I need to thank him for his help and support throughout all of this work. With regards to Persephone, Oliver Adams and Alexi Michaud have both provided substantial support for this work. And within Canada, there's also been support from Compute Canada and the Centre for Advanced Computing in developing some of the Persephone models that we'll be seeing today. So what is Persephone Alon then? This is a small open source plugin or recognizer that brings in some of this automatic phoning recognition provided by Persephone into Alon's user interface. What it does more specifically is take an existing phoning recognition model that you've trained for Persephone as well as a tier that contains a number of blank annotations in Alon, applies that model to those segments, and then returns the corresponding phonemes that Persephone recognizes and gives them back to you on a new tier. So essentially if we have a blank annotation in Alon, we would pass that tier off to Persephone Alon and after some crunching, it would return back the corresponding phoneme string that it recognized. Now Persephone Alon has a number of software requirements that are important to note at the outset. It's currently macOS or Linux only. There's no support for Windows written in at the moment. The people that I'm working with on related projects don't really have much need for that feature. If this is something that would be useful for people at this workshop or elsewhere, please let me know. This wouldn't necessarily be that hard to implement though it would take some planning to do. Persephone Alon also works well with recent versions of Alon. It's been tested with versions 5.6, 5.7, all the way up to the current 5.8 release. It may work well with earlier versions as well, but they haven't been tested. To run Persephone Alon, you'll need to have a version of Python 3 installed, either 3.6 or 3.7, as well as FFMPEG. Now this is the tool that Persephone Alon uses to convert some of its media files behind the scenes. You should be able to find installers for both of those programs fairly easily online. Again, if you have any problems there, please let me know and I'll be glad to provide more pointers. Probably most importantly, for Persephone Alon to work, it currently requires that you've installed Persephone system-wide. So for the copy of Python that you have installed in your computer, you need to make sure that Persephone is installed so that any application that can access it, so not just in a virtual environment. If you're a Mac user and you open up Terminal, you can usually do this by putting in the command given in green there, pip3 install Persephone. And that'll do the trick. Lastly, and as I mentioned before, Persephone Alon relies on having at least one existing Persephone model that it can apply to your transcripts. Developing those models, training them on the basis of existing documentation is outside of the scope of this little tutorial, but I've included a link here to the documents for Persephone where they describe exactly how this is done. Now there are also a number of important limitations to take into consideration here. For one, Persephone Alon is very much early alpha version software. I have a number of improvements still in the works, but the current version as we'll see is still a little rough around the edges and places. So if it breaks on you unexpectedly, if something doesn't work quite as planned, if it's a little slower than you might hope it would be, don't panic. Please let me know. A number of these things are issues that can be addressed in ongoing development, but just be aware, this is still very much in the early days. Persephone Alon is currently being developed under macOS, and that's where most of the testing has happened. So as it stands, it should run reasonably well under Linux without any adjustments, but as I mentioned before, more work would be needed to create a Windows-friendly version. So Windows users, this tool currently won't do much for you, although, again, if there's interest, it wouldn't be necessarily all that hard to add that as a feature. Lastly, and I can only stress this so much, Persephone Alon really does need to have an existing Persephone model. So we don't, at least we won't be talking about here, how to train up a new model. On the basis of, say, existing recordings or existing texts that you may have, it only makes the process easier of applying a model that you developed to new recordings. So over the next few slides, I'd like to just take us briefly through the steps that we need to use to actually go download, configure, install, and actually start using Persephone Alon with your own materials. So Persephone Alon is currently hosted on GitHub. There's a small repository there with the current version of the source code. I've included the link at the bottom of the screen. Where you want to go to find the current release is under releases, right? So close to the top of the page where it says three releases there currently. The current version, as of today, is version 0.1.2. All you'll need in order to run Persephone Alon is the top source code link to this zip file. If you download that zip file onto your computer, you can expand it on a Mac. That would just be double clicking. And you'll see it's just a single folder. That folder contains all the files that you'll need to run Persephone Alon. Now, before we can actually move those files inside of Alon, that is install the software, we do need to make sure to edit one configuration file first. This is where we tell Persephone Alon where it can find the version of Python that it needs to use and where it finds a version of FFMpeg that's going to use to clip and edit media files. So the file we need to edit specifically is one called Persephone-Alon.sh. So on most Mac computers, you can just right-click or command-click on that file, go to open with, and use the text editor of your choice. Here I've opened it using text edit. In this file, there's two lines that you'll likely need to edit. You can see them highlighted in blue here. The first is the location of the version of Python that Persephone Alon should use. So in this case, we're using Python version 3.6. So this is the full path on your computer that takes you to Python 3. That's the first line. The second line is to the directory or the folder where your copy of FFMpeg is located. Now, if you're not sure where either of those programs is located on your computer, again, if you're a Mac user, you can open up the terminal application and then type in both of these commands that are in green, which Python 3, that should give you the full path to that version of Python, assuming it's installed in your system, and which FFMpeg, which, again, if FFMpeg is properly installed, should you give you the full path and you can copy and paste those paths directly in between the double quotes on the appropriate lines. Now, once you've made those two edits and saved that file, Persephone Alon is ready to be installed. Now, again, under macOS, this actually involves moving this Persephone Alon folder inside of Alon's application bundle. So in your applications folder, we're going to find Alon, right-click on it, open up its package contents, and then move your Persephone Alon folder inside the application itself. So here's a short video to show what we mean. So again, I've opened my applications folder, I go and find my copy of Alon, I right-click on it and go Show Package Contents. Now this opens up what's inside the Alon application. Then I drill down to Contents, Java, Extensions, and it's this extensions folder that holds all the Alon plugins. And I can just drag and drop my Persephone Alon folder into there, right? So that's all we need to do to install Persephone Alon. In that way, it's just like any other plugin, any other recognizer that's been developed for Alon so far. Once it's installed, we can open Alon and actually apply an existing Persephone Phonium Recognition Model to a tier of our liking in one of our transcripts. Now, to do that, we do need to tell Persephone Alon a little bit about our Persephone Alon. So specifically, we need to let it know the folder where Persephone Model or Experiment is, how that model was configured, specifically which feature types we used for phonetic features and what labels we used to provide the text, and where the original training data for that model are. Persephone Alon feeds that information back into Persephone behind the scenes to reboot that model, essentially, and then apply it to these new unseen snippets of audio that we're getting from our Alon transcript. Now, I'm hoping over time that we can make changes to the Persephone Source Code to actually save these settings inside the models themselves so that the only thing we need to provide to Persephone Alon is the path to our pre-trained model. But for now, this is information that we have to enter manually into the Persephone Alon interface. For myself, once I've trained up a model in Persephone, I usually just keep a small text file that has all of this information there. In the example we'll see in a second, I've entered this information in the appropriate fields already, but again, these are the things that you should be able to recover from your model training process fairly easily. So again, here's a short video showing what this looks like. So here we have a transcript, and this is again the Tutana language with Elder Bruce Starlight. So you can see we have a number of empty annotations or textless annotations on a main tier. What we want to do is provide that tier to Persephone's Phoneme Recognizer. So in the Recognizer's tab, we select Persephone Phoneme Recognizer, and then we provide the settings I was just describing. So in this case, we trained our model using F-Bank for phonetic features. The text that was provided this model, all those text snippets had this file extension. Again, this will look a little bit different for your particular model. We've built in support for Tutana's orthography here, but again, in your case, you'd most likely choose none. And what you'll get then are the actual phoneme strings that come out of Persephone with no conversions happening behind the scenes. We want to provide this BRS tier. That's the tier that contains all of the empty annotations that Persephone is going to try to recognize. Lastly, we want to provide a reference to the directory where the original training data is. So in this case, for the Tutana model that we're using here. And lastly, to the model itself, to the source experiment directory. There's a final field here as well for output recognized text. This is essentially just a junk file we can't get away with producing. Elan makes us do this. Don't worry too much about it. Once we hit start, Persephone Elan will start picking out all the individual clips from that tier, reload the Persephone model that we provided, and then actually ask Persephone to start transcribing each of the clips on that tier. So each annotation is being fed to it. When we're ready, it'll load the corresponding tier and we can listen to the results. So you can see here it's recognized in only segments but also the tones that are marked with diacritics. So as we mentioned before, there are a number of settings that you need to have for your model. At that point, once you've entered that information, it's as simple as selecting the tier you want to apply this to and pressing start. Now you'll notice that the Persephone output here appears on its own tier. This is again a limitation of Elan's current plugin infrastructure. If you need to copy the contents of that text from one tier to another, though, that's something you can do through the annotations menu in Elan. So concluding then, Persephone Elan is definitely still in its early days. There are a number of important features that I'm still working on at the moment that I'm hoping to improve upon, some of which will potentially require changes to the Persephone code base. But even in its current state, I'm hoping that Persephone Elan and tools like it might help make Persephone more accessible to other documentary linguists and other users of Elan. If you have any feedback or comments or possible bug reports related to the software, they're certainly welcome. Feel free to submit any of them via GitHub or if you prefer by email to the address given here. Thank you.