Using Fourier Analysis to Classify Running Water Noise

Team: 31

School: Capital High

Area of Science: Computer Science


Interim: Team Number: 034
School Name: Capital High School
Area of Science: Computer Science
Project Title: Using Fourier Analysis to Classify Running Water Noise

In the 2020 to 2021 supercomputing challenge, my project in the challenge is about analyzing sound files. The initial intent of the project is to identify the types of noise produced from the inputted sound file. The purpose is mainly to support other projects that are researching the different noise types. The information provided by my program could assist their research into the different noises produced in nature. An example could be research about the mental benefits of each of the various noise types. There is research about the effects of listening to sounds from nature that could improve the mental state. In this project, I am targeting the noise produced from running or moving water.
How I would be able to solve this problem computationally is using graphical libraries and data organization. First, the program would be able to take the inputted sound file with sampled noise from nature. The primary samples would come from moving water or rustling leaves present in nature. The program outputs a spectrogram of the frequencies from the file, allowing me to analyze the data. The spectrogram would be one way to identify what type of noise the sound file is. Additionally, the program would also output something similar to a table or a set of data. The data would contain general data like the name of the sound file, the slope, its noise type, and additional information.
There are many parts of the project I did not know I needed. When I began, I was not familiar with a Fourier transform or what libraries I needed to make the program function. However, with some help from my mentor, I was able to gain some sources that helped me find the information I need. Stackoverflow provided me helpful information on the project, and Freesound provided sound files that I can sample for the project. Additionally, I used available sites that provided me information about the libraries I would need to use and how the process worked in detail.
I understand what information and libraries I need to make the program function. I was able to get the basics of the code of grabbing the sound file and placing it in a variable. Next, I was able to ask the user for a specific sound file and have the program find it and put it in a variable. Then, I was able to graph the file as a basic spectrogram using the scipy, panda, and NumPy libraries to gather and plot the data. Finally, to finish the bare bones of the project, I modified the data further to plot the data on a log-log scale. Additionally, I can make the program output the analyzed file as a png into a specified file instead of opening a new window with the spectrogram. Finally, the program can output the file name, slope, y-intercept, and type of noise into a text file.
The results that I am expecting are first the bare minimum. The program should be able to produce a spectrogram of the selected file, even if the code was to be changed itself. However, I want to add additional features to make it more user friendly and provide more information. Some ideas are that the program can take the input of the user and choose a specific sound file from the given folder, the program can provide information about the spectrogram, and allow more than one file to be analyzed. We are just scraping the bottom of what I could do with the program and how users can use it for their benefit.

Team Members: Juan De La Riva
Sponsoring Teacher: Irina Cislaru

Citations:
Alvarsson, Jesper J, et al. “Stress Recovery during Exposure to Nature Sound and Environmental Noise.” International Journal of Environmental Research and Public Health, Molecular Diversity Preservation International (MDPI), Mar. 2010, www.ncbi.nlm.nih.gov/pmc/articles/PMC2872309/.

Atwood, Jeff, and Joel Spolsky. “Where Developers Learn, Share, & Build Careers.” Stack Overflow, 15 Sept. 2008, stackoverflow.com/.

“Plotting A Spectrogram Using Python And Matplotlib.” Plotting a Spectrogram Using Python and Matplotlib | Pythontic.com, pythontic.com/visualization/signals/spectrogram.

Porter, Alastair, et al. Freesound, 2005, freesound.org/.

Potvin, Dominique A, et al. “Experimental Exposure to Urban and Pink Noise Affects Brain Development and Song Learning in Zebra Finches (Taenopygia Guttata).” PeerJ, PeerJ Inc., 16 Aug. 2016, www.ncbi.nlm.nih.gov/pmc/articles/PMC4991897/.

Thoma, Myriam Verena, et al. “Preliminary Evidence: the Stress-Reducing Effect of Listening to Water Sounds Depends on Somatic Complaints: A Randomized Trial.” Medicine, Wolters Kluwer Health, Feb. 2018, www.ncbi.nlm.nih.gov/pmc/articles/PMC5842016/.

Vink, Ritchie. “Ritchie Vink.” Understanding the Fourier Transform by Example, 23 Apr. 2017, www.ritchievink.com/blog/2017/04/23/understanding-the-fourier-transform-by-example/.


Team Members:

  Juan De la Riva

Sponsoring Teacher: Irina Cislaru

Mail the entire Team