Undergraduate Research Work

This research has been primarily done with Dr. Robert Maher and Fraser Robinson The first part of this research was to compile recommendations and best practices for handling user generated audio recordings in a forensic setting. The results of the first part of the research will be published this fall in the Journal of the Audio Engineering Society.

Miller, B., Robinson, F., Maher, R. (2021) Forensic Handling of User Generated Audio Recordings. Journal of the Audio Engineering Society: v. 151.

The second part of the research is in implementing techniques to align and extract data from those audio files. I developed audalign for this very task and uploaded it to PyPI.

More information about that project can be found on the projects page of this website or the github repo. The largest difficulty in handling these audio files is the broad variety of noise between and within files. Clipping, noise, and sound characteristics can vary significantly and the sounds of interest are often tough to separate from the noise. Preprocessing the audio is almost always necessary for real-world recordings.

Noise reduction was implemented using Tim Sainburg’s noiseremove library. It does a really good job! This is also typically used with a uniform leveling gain compression algorithm implemented in audalign.

Four alignment techniques were developed: fingerprinting, correlation, correlation with spectrogram, and structural similarity index measure. Each is better for different situations, so some prior knowledge on the part of the user helps a lot. Locality and fine alignment are the final two techniques to boost the accuracy of the alignments. Rough rankings are given for each alignment, but every alignment should still be manually reviewed.

More information on everything above is given in the wiki of the github repo.

This research is funded by the National Institute of Justice (NIJ).

Coursework

I mainly mean to talk about my computer science coursework and projects, so only the most relevant courses are included.

Current Coursework

  • Advanced Software Engineering: ESOF-422
  • Concepts/Programming Languages: CSCI-305
  • Computer Science Theory: CSCI-338
  • Embedded Systems: Robotics: CSCI-455

Past Coursework

A Sampling

  • Computer systems: CSCI-366
  • Systems Administration: CSCI-351
  • Multidisciplinary Engineering Design: EGEN-310
  • Advanced Algorithm Topics: CSCI-432
  • Software Engineering: ESOF-322
  • Data Mining: CSCI-347
  • Computer/Robot Vision: CSCI-442
  • Principals of Biological Diversity: BIOB-170
  • Data Structures and Algorithms: CSCI-232
  • Web Design: CS-145
  • Intermediate Statistical Concepts: STAT-217
  • Programming in C: CSCI-112
  • Discrete Structures: CSCI-246
  • Intermediate Technical Writing: WRIT-221

Details

  • Computer systems: CSCI-366
    • An overview of computers from transistors through cloud computing
    • Projects
  • Multidisciplinary Engineering Design: EGEN-310
    • Used the full engineering and design process to build a rover Photo of rover in dirt
    • Used the bluedot python app and package to control the rover
    • implemented service files to start the controller and camera services
  • Advanced Algorithm Topics: CSCI-432
  • Software Engineering: ESOF-322
    • Application and infrastructure design
    • UML diagrams
    • Design patters
    • Testing methodologies
  • Data Mining: CSCI-347
    • Topics
      • Data Exploration
      • Cleaning Data, Missing Values
      • Networks
      • Dimensionality Reduction, PCA
      • Clustering, Kmeans, DBSCAN
      • Clustering measures
      • Classification, Naive Bayes
      • Itemset Mining
      • Anomaly Detection, LOF
      • Text Mining
      • Ethical Principles
    • Project 1 (html)
      • Extracting data from an automobile dataset
    • Project 2 (html)
      • Finding stats on a Github graph
    • Project 3 (html)
      • Implemented DBSCAN and analysed clustering on a glass dataset
    • Final Project (html)
      • Coupon Acceptance dataset
      • Kept original data ordered by total variance preserved by PCA and the PCA data itself
      • Used 14 different classifiers on the original data
      • Used 11 different classifiers on the PCA transformed data
      • Used 7 measures to compare the classifiers
      • Compared the performance of the classifiers on the data
      • Used Local Outlier Factor to remove 10% of the anomalies from the PCA data and the original data
      • Trained new classifiers and compared the performances
      • The summary at the bottom has good coverage of the results
  • Computer/Robot Vision: CSCI-442
  • Principals of Biological Diversity: BIOB-170
    • This class features a research project that required a lot of data analysis
    • I merged weather station data with the provided owl diet data
    • Ultimately, no significant correlation was found between seasonal owl diets and weather
    • Paper (pdf)
    • Analysis (zip)
  • Data Structures and Algorithms: CSCI-232
    • Lab 1 (zip)
      • Used priority queues to make a job scheduler
    • Lab 2 (zip)
      • Used different bin packing techniques to find the best one
    • Lab 3 (zip)
      • Implemented Djikstra’s algorithm for finding shortest paths
    • Lab 4 (zip)
      • Implemented a spellchecker using a whitelist
  • Web Design: CS-145
  • Intermediate Statistical Concepts: STAT-217
    • Explored data and performed analyses with R
      • two-sample mean test
      • One-Way ANOVA
      • Two-Way ANOVA
      • Chi-squared independence
      • Chi-squared homogeneity
      • Simple Linear Regression
      • Multiple Linear Regression with quantitative predictors
      • Multiple Linear Regression with a mix of quantitative and categorical predictors.
    • Large focus on assumptions and interpretations
    • Projects
    • Tests
  • Programming in C: CSCI-112
    • First two projects in C, third project in C++
    • Project 1 (zip)
      • Read file of IP addresses and count number of hosts per class screenshot of working program 1
    • Project 2 (zip)
      • Read courselist and created simple CLI course explorer screenshot of working program 2
    • Project 3 (zip)
      • Rewrote Project 2 using object oriented C++ screenshot of working program 3
  • Discrete Structures: CSCI-246
  • Intermediate Technical Writing: WRIT-221
    • Final Portfolio (pdf)
      • Reflection Letter
      • Complaint Letter
      • Discussion Post
      • Resume
      • Cover Letter
      • Non-profit Proposal