18 Feb 2018
With the ability to display the results, the next step in the GUI was to allow
the user to upload more types of files than just wav files. While the audio
analysis functions require the audio in wav format, the original data files are
more commonly in video form. (Our data set is specifically avi files, although
I intend to support at least both avi and m4v file types) This would allow for
a more intuitive local functionality for the user, as previously we had to
manually extract the audio from the video files using a tool like audacity.
My research on this found that while there was no native tools for python to
accomplish this, there is a terminal program, FFmpeg, which
can convert between audio and video formats. There are a few python wrappers
for ffmpeg. However, instead of using those, I decided to call it as a
subprocess from python as that simplified both the decencies required for the
GUI tool and the event handler code.
Despite a large amount of time and effort put into continuing to try to figure
out how to exporting MATLAB code to an other form that does not require a
license to run and can ideally be trigged by a python event, I still have not
made any determinable process. The documentation suggests that there is both a
way to compile a MATLAB script into a standalone executable and a way to export
it to a python module. Using a simple proof-of-concept “hello world” script
I’ve been attempting to try both paths. I did find some new information about
the MATLAB Runtime Engine yesterday, so hopefully that will lead to more
success next week.
11 Feb 2018
I still haven’t had much success exporting MATLAB code to python yet.
Despite my research I continue to run into compilation and linker errors, and
am still not sure what the all of the dependencies required are.
In addition I’ve continued work on the GUI. I’ve been learning about Tkinter
frames so that I can call mine and the lab’s previous work from it and plot the
results. I’ve started by taking the Matplotlib results generated from the
functionality and working to embed those plots in Tkinter frames.
04 Feb 2018
This week I continued to work on the exporting Matlab into callable executable
problem. It has taken many iterations of failure and crashing Matlab runtime
environments, but so far I have managed to update my version of Matlab to the
most recent one and then determine which add-on applications were needed to
install (libraryCompilation, etc.) Currently I have theoretically exported
a function into a python module, however when I try to install those binaries
I run into linker errors, and I’m still working to figure what is not working
in that step.
In addition through discussing with the team to pin down more specific goals,
I’ve been able to refine my literature review as well as Speech API search.
28 Jan 2018
Before break we discussed building a GUI for the existing applications that
the team has, to make it easier for other people without as much technical
knowledge to use as well as allow people to run the code without needing access
to the MatLab backend.
To the first end I’ve been researching GUI modules for python. The built in
Tkinter module looked like it might useful and I spend much of the week
learning how about the objects it has and how to nest them properly such that
what appears on the window is usable. I found the this tutorial particularly helpful. I have had some prior experience with
event based programing, but not with the style of graphical monitors that
Tkinter uses. One of the first steps I’ve taken there is to figure out how to
embed a file selection dialog, and retrieve the data from the various widgets.
In addition, I’ve started to look into how to port Matlab code, which is much
of our backend, into python. So far I have not had much success with that, so
hopefully I will understand that better next week.
21 Jan 2018
This was the last week of winter break, and I look forward to going back to
working with the team and continuing next week.