kbmcgowan / Wildcat-Voices

CS 499 Senior Project for the University of Kentucky. The Wildcat Voices project aims to predict the location of a speaker, given short audio samples.
0 stars 0 forks source link

Anthony Tamasi's Lab Notes #2

Open amtamasi opened 4 years ago

amtamasi commented 4 years ago

Over the weekend, I worked on the Requirements Plan Document for the Project Plan assignment. I primarily worked on the sections describing the Development and Target Environments and the System Model. I used our team's notes from our first meeting with the client, where we talked a lot about their requirements. I also built a rough schedule for our team's schedule for the semester and started to describe the potential resource allocation, although our team should not be very resource-intensive.

Word Count: 80

amtamasi commented 4 years ago

Today, I finished the final draft of my Ethics essay. I made some changes that my reviewer, Chad Nelson, suggested. These included a few MLA formatting changes (header and title structure, works cited page, author citations), along with minor content revisions (added discussion of ethical implications with respect to workplace dynamics). This final version had a word count of 895 words. I'm not sure if the final draft, the initial draft, or both get to count towards the GCCR word requirement, but our group will be sure to ask Dr. Jane Hayes in class tomorrow during our meeting.

Word Count: 98

amtamasi commented 4 years ago

Today our team met Dr. Jane Hayes during class for our "daily stand-up" meeting. We told Dr. Hayes about the issue with the Wildcat Voices database (our client informed us that all voice recording data points for the Wildcat Voices system had been deleted). She suggested that we double-check with our client that the College of Arts and Sciences did not save a backup for the database, since it is the largest college at the University of Kentucky. We will be sure to ask our client about that during our next meeting (Monday, March 2 at 2 pm).

We also confirmed with Dr. Hayes that only the final draft word count for the ethics essay will count towards the GCCR writing requirement word count. The draft will not count towards that final GCCR word count, unfortunately.

Word Count: 136

amtamasi commented 4 years ago

Today, our team met with Dr. Kevin McGowan (and Dr. Jennifer Cramer, via phone call) to talk about the architecture of the Wildcat Voices project. We will be moving towards a client/server model. The machine learning model will run on a server (provided by the University of Kentucky), which can be called by the Wildcat Voices website. The website will be able to make calls to the model for predictions. The website will also be able to write voice recording samples to the Wildcat Voices database. The model backend will also be able to read from that database in order to do training.

We also got a few questions answered by our clients. We will be able to do our work on the machine learning model within a public Github repository, but we will need to have some sort of license to ensure the work done remains open-source. Dr. Kevin McGowan suggested we use the GPL license, a popular option for locking the software being licensed and any software that uses your software into being open-source.

I'm not sure if meeting notes get to count towards the GCCR word requirement, but our group will be sure to ask Dr. Jane Hayes in class tomorrow during class. Dr. McGowan also said that the source code for the current Wildcat Voices website is currently on a University of Kentucky web server, but that he can get that into a Github repository for us to make our project changes to.

In regard to losing the data records in the Wildcat Voices database, we will maintain a similar scope to the project, but will focus on building out a good base architecture that can be expanded on in the future. The clients also told us that the data can not be recovered because the problem lied with a script that Dr. McGowan had developed for processing the data before it was written into the database, in an attempt to save space. This deleted the data (except for the audio surrounding the user selecting the 'save' button), so data backups will not help.

Word Count: 384

amtamasi commented 4 years ago

Over the weekend, our team was able to split up the Architecture assignment into four parts - one part for each teammate. Those sub-assignments were decided as follows: Chad will work on the high-level design architecture, Lucas will work on the testing portion, and Tam and I will split up the detailed design section. In particular, Tam will focus on the user interface design while I will detail the class designs and talk about our design patterns. As of right now, I am thinking we will use the factory design pattern for the machine learning model interface so that our clients can add and test different types of machine learning models and architectures in the future.

I still need to flesh all of this out and work on the slides for our presentation in class on this upcoming Tuesday.

Word Count: 139

amtamasi commented 4 years ago

Today we finished up the architecture assignment for class. I wrote the description for the detailed design of our proposed solution. I built a Unified Modeling Language (UML) diagram showing a sketch of the class governing machine learning models to be used for the location prediction task. The general idea is that there will be a base machine learning model class that defines how any machine learning model will be interacted with by the website. Any machine learning models desired will then be designed as a subclass, inheriting from that base class.

I also performed a review of the testing section of the architecture assignment.

Tomorrow we are presenting on our proposed architecture during class time. I will be covering the sections on our quality review, lessons we have learned thus far, and the conclusion of the talk, before the team fields any questions. We split up the presentation so that each of our speaking parts are about equal.

Word Count: 159

amtamasi commented 4 years ago

Today we presented on our proposed architecture for class. There will be no class on Thursday, so our team will be resuming work after we return from spring break. At that point, we will begin coding for the project.

Word Count: 39

amtamasi commented 4 years ago

Today, we had our first "standup meeting" from home because of the COVID-19 outbreak. We did this over the GroupMe app. I can tell these will be kind of clunky over GroupMe. Sometimes you can see when another member is typing, other times you can't. This can cause confusion. The nature of messaging means it is also slower, and more drawn out, than in-person meetings. We may want to figure out how to coordinate a meeting plan that includes audio for future meetings.

In terms of the actual meeting, I told Dr. Hayes that we will be attempting to meet with our client this week (we may try Zoom or a group phone call, or something simple like that) and start the coding process, at least for the machine learning model.

Word Count: 131

amtamasi commented 4 years ago

Today, I worked on building out a "base template" for our source code's file structure. Hopefully, this covers most of what we need to build, but I will be sure to collaborate with the other team members to make sure I didn't forget anything.

Word Count: 44

amtamasi commented 4 years ago

Last night and today, I have worked on the implementation and unit testing for the Random Model class we are building. This class acts as a baseline to get very basic functionality working with the Wildcat Voices website. Because of how Python treats relative imports (for modules/libraries you include in your code), it was difficult getting my unit tests to work. However, adding an "init.py" file to each subdirectory in our codebase allowed each of those subdirectories to be used as "packages", enabling them to be used as imported libraries. With this fixed, it was simple to get unit tests started up for the Random Model. We will continue to use the unittest framework for our other classes as well. I have also updated our README to reflect how one is supposed to run unit tests.

Word Count: 136

amtamasi commented 4 years ago

This past week and this weekend, I have been working on finishing up the Random Model and implementing the class for the Neural Network model. We heard back from Dr. Kevin McGowan today regarding de-scoping our project to just working on the machine learning model interface. That being said, we are still exploring building the API for this backend, and have discussed ideas like using the popular Flask API framework with Python.

The neural network model isn't completely done - some changes will need to be made after finalizing changes to the Base Model class. I will continue working on that the rest of this weekend.

Dr. McGowan also got us the audio data today. I don't believe it is pre-processed, so it probably won't be useful to train a machine learning model on that. But, it can serve to help us refine the interface so it works smoothly when they go to use it in the future.

We have made some assumptions in our class designs to ensure the classes are streamlined and self-contained (leading toward better maintainability). An example is that we assume the data is pre-processed. This way, the client can run any sort of standard voice data pre-processing and then push that into a machine learning model.

Word Count: 211