Raven Web Graphical User Interface
Raven Web GUI Overview
The Raven Web GUI is a User Interface designed to primarily facilitate "batch runs" consisting of a large number of files through "workflows" consisting of multiple technologies. The Raven GUI can be used to run either local audio or serverside/shared audio through one of several preconfigured HLT workflows.
Below is a basic example of the Raven Web GUI landing page:
OLIVE TLS/Secure Mode Disclaimer
If you have launched OLIVE / Martini with TLS enabled for secure communication, you will need to install a valid client certificate (with respect to the certificates Martini is using) into your browser before you will be able to access Raven.
Please work with your IT department to obtain valid certificates.
Using the Raven Web GUI for Analysis
In order to submit audio to a workflow on the WebGUI you must:
- Add Media
- Select an available OLIVE Workflow from the Workflows List
- Submit the analysis request
1. Add Media
There are two ways to do this. Local Media
and Remote Media
.
Local Media
The primary method is by using the "Local Media" tab, and adding media to the job by dragging them into the gray + Add media file(s)
box, or by clicking within this box to open a file browser dialog to select files.
If dragging files in, make sure to 'drop' them on the box. If the box is missed, and the files are dropped elsewhere on the Raven page, the browser itself will attempt to open the media files, instead of adding them to the submission.
As of the OLIVE 5.6.0 release, files can now be added incrementally, i.e. dragged in one at a time or in multiple batches. However, due to browser limitations, duplicate filenames are not allowed within the same request, even if they are unique files from a different location on disk. If duplicate files are detected, the user must resolve the conflict with one of the following actions:
- Rename the new file
- Overwrite the old file with the new file in the submission
- Delete the new file from the submission
Once media is added and chosen, proceed to step #2.
Remote Media
If many files or large files are intended to be processed, or the same files will be processed many times - and if the OLIVE server shares a file system with the audio file location, the "Remote Media" feature is provided as a convenience to save the overhead of uploading files through the browser with Raven for each analysis submission. To use this feature, first the audio must be copied, moved, or linked to a location that is mounted by the OLIVE Martini container.
By default, Raven will look in this location for files to populate the "Remote Media" tab:
olive5.6.0/oliveAppData/olive-data/media/shared/
For convenience, once the OLIVE Martini container is started for the first time, this location is created if it doesn't exist already. Any files here should be automatically added to the "Remote Media" tab in Raven and be allowable choices as Raven input.
Advanced users may be able to mount additional volumes and configure this to a different location. Please contact SRI if this is a requirement.
Once the desired audio is selected, job submission is exactly as previously described.
2. Select an available OLIVE Workflow from the Workflows List
Below the Media panel, a list of available, validated workflows is displayed. When first connecting to the Raven UI, it has to query the server to retrieve a list of valid, available workflows - this can take a few moments, and the UI will prompt with a "Please wait while workflows are loading ..." message until this handshake is completed.
Once the list is provided, select the desired workflow and move to the next step. Each workflow displays the workflow name, and information about which Tasks it performs (i.e. plugins it runs, or results it provides).
If any workflows fail to validate, due to missing plugins or for any other reason, there will be a message in this pane offering more details on why a given workflow is unavailable when selected. This message should only be encountered by advanced users.
3. Submit Analysis Job
By selecting the "rocket" multi-action button in the lower right:
And choosing "Analyze".
Analyzing Results
After running a set of data through a workflow you'll be directed to the results page which displays the HLT results for all plugins within the workflow that was run for each file that was submitted. The results page has a menu bar with several different ways to organize the files and scores on the page.
Saving/Exporting Results
Raven now offers the capability of exporting batch results to an archive that can be later re-ingested by Raven to recall or revisit the results of an OLIVE Workflow analysis request without repeating the processing.
To export results, once you the batch submission has completed, select the "Save Results" option adjacent to the Workflow name at the top of the results page:
This will save a .olive
results bundle to your browser's default "Downloads" location. The name will include the date and time the submission was performed, and will resemble: olive_result_2023-08-14T21_57_12.olive
. You are free to rename as desired after the download completes.
Due to web browser file permission access limitations, for audio to be reviewable in the context of the results at a later time, all submitted audio must be saved with these results. For batches of many files, or file batches containing very large files, this bundle can be quite large.
Importing/Recalling Past Results
To revisit saved results, select the "Load Results" folder icon from the Raven landing page:
And choose to import the file saved in the saving/exporting step above. The bundle should be unpacked and populate the Analysis
page just as it appeared directly after processing the files initially.
Enrollment and Unenrollment
Some workflows support enrollment and unenrollment through the Raven UI if the workflow uses enrollable plugins and is configured properly.
Enrollment and unenrollment is performed on a plugin and domain level; not on the workflow level. This means that if you enroll a model using a workflow, it's actually enrolling for the specific plugin/domain that that workflow is using, and will be accessible if running that plugin directly, or if running other workflows that call on this plugin. For example, if you enroll a new speaker using a workflow enrollment, it is enrolled into the same location that it would be if enrolling with that plugin directly, and scores for the new model will be reported if scoring with this plugin directly. Workflow enrollment/unenrollment is provided as a convenience.
Enrollment
Enrolling through Raven is a similar process to scoring. Begin by adding media to the job as described above, and then selecting a workflow. If the workflow supports enrollment, then the option will appear on the next step: Selecting the "rocket" multi-action button in the lower right, and choose "Enroll".
This will present the Enrollment Configuration dialog, that allows
Enrollment Type
First, the "Enrollment Type" must be chosen. This determines what the enrollments for this job will represent, and each enrollment job can have only one type. Most workflows will also only have one "Type" available, so this step should be simple. The most common "Enrollment Type" is going to be "Speaker", for enrolling candidates into Speaker Identification or Speaker Detection plugins. You may encounter "Keyword" enrollment types if the workflow is configured to use Query-by-Example Keyword Spotting, for example.
Class Name Mapping
The next section configures how to select and assign class names to the enrolled models. There are a few options provided for convenience. After configuring this section, select "Submit" to continue.
Class Name
If all data is one "Speaker" (or whatever the corresponding Enrollment Type class is), this method can be used. The user inputs a single class name that is used for all of the enrollment input. If there are multiple classes that are going to be enrolled, each class requires a separate enrollment request when using this method.
You can choose to augment an existing class enrollment, by choosing it from the drop-down. Or select "Add a new class" to enroll a new class completely.
Delimiter
If the input data filenames are already named in such a way that the start of the filename corresponds to the desired name of the enrollment class, the 'Delimiter' mapping mode may be used. This mode will use a character input by the user to split a filename and automatically extract a class name to use for enrollment. This allows many files from different classes all to be enrolled at once.
As an example, if the chosen delimiter was -
, and the input filenames:
philip-radio_21Aug2023.wav
philip-studioMic_12Nov2021.wav
george-unknown.wav
suzie-greetingCard_storytime.wav
This would allow philip
, george
, and suzie
to all be enrolled with a single Raven submission.
The beginning part of the media file name until the first occurrence of the delimiter character will be used as the class name. That is, if the delimiter is "-", and the file names are "jane-california-1.wav" and "john-oregon-1.wav", "jane-california-1.wav" is enrolled with the class, "jane", and "john-oregon-1.wav" is enrolled with the class, "john".
Class Mapping File
The most flexible method of assigning class names is using a Class Mapping File. This allows the user to provide a text file listing all of the input files, and manually assigning an enrollment class name for each. If the input data isn't named in a manner that suits the delimiter method, and several different classes need to be enrolled, this is the best option.
The Class Mapping File
formatting is a tab-separated, two column list, where the columns are:
<input filename 1> <className A>
<input filename 2> <className B>
...
<input filename N> <className Z>
It is possible to mix and match multiple files for a given classname, and as many distinct classes as desired as long as the mapping file follows the format above. An example:
20131212T064501UTC_10831_A.wav philip
20131212T084501UTC_10856_A.wav philip
20131212T101501UTC_10870_A.wav suzie
20131212T104501UTC_10876_A.wav chuck
20131212T111501UTC_10878_A.wav suzie
20131212T114501UTC_10880_A.wav aaron
20131212T134501UTC_10884_A.wav philip
No part of the filename is used to assign or determine the enrollment class name.
Note that every input filename must be accounted for in the Class Mapping File.
Unenrollment
Unenrollment is used to remove a previously enrolled class from the system. It is the only Raven job submission feature that is accessible without adding media. To reach it, select the "rocket" multi-action button in the lower right, and choose "Unenroll".
To proceed, choose the desired class type (again, likely "Speaker") from the dropdown list that corresponds to the unenrollment action to perform. Next, select the class
Only single-class unenrollment is currently supported through Raven. If multiple unenrollments are to be performed, they must be submitted one at a time.
Currently, a class must be enrolled in its entirety, even if several audio files contributed to its enrollment - support is not in place to selectively remove audio from an enrollment.