Skip to content

Notes on MPAi Code Structure

joshbrun edited this page Feb 12, 2017 · 3 revisions

Preface

The MPAi project has been going on for 8 years. Many developers, languages and iterations have been involved in getting it to its current state. As such, there are various components that have been implemented in different languages, and to an outsider going in, the architecture can seem a little confusing. This document is a general guide to the structure of the application, to aid future developers in understanding the application, so that they can change it with more information at their disposal.

C Sharp

The main portion of MPAi is written in C sharp. The GUI was created using the WinForms library, which Windows Visual Studio includes a designer for. The VideoPlayer and AudioPlayer use the VLC.DotNet open source media player library to play media. The C Sharp code handles all the models, including the database model. It also handles the logic for all the GUI elements, excepting the Formant Plot and Vowel Target.

Python

Python was used to write the Formant Plot, and subsequently the Vowel Target Plot. This is why the GUIs of these components look different to the rest of the application - they use different GUI libraries. This includes the speech analysis needed for the Formant and Vowel Plots to function.

HTML

The Scoreboards are HTML, and are styled using CSS. The actual HTML files are generated in the C Sharp code, in the ReportLauncher class. The HTML files are opened in the default browser by the C Sharp code.

Batch

The HTK Engine (used for the speech recognition: see the page on HTK for further details) is written in Batch files.

Perl

Again, used with the HTK Engine.

TCL

Used by the HTK Engine.

SQL

The database MPAi uses.