This project provides a GUI-based tool to generate the Short-Time Fourier Transform (STFT) for a given WAV audio file. It also supports visualization and basic audio processing functionalities, making it a comprehensive tool for signal analysis and exploration.
- Alice Dragnea
- Taslim Mahbub
- Akshay Nayak
- Jacob Weber
- STFT Generation: Generate and visualize the spectrogram for WAV audio files.
- Inverse STFT: Reconstruct audio from the STFT.
- Line Chart Comparison: Visualize the original and reconstructed signals for quality assessment.
- GUI Interface: A web-based interface for easy interaction.
- Standalone Processing: Perform audio operations without the GUI.
-
Launch the Web Server:
- Run the following command:
go run . - This will launch the Gin web server.
- Run the following command:
-
Access the GUI:
- Open your browser and navigate to:
http://localhost:8080/
- Open your browser and navigate to:
-
Main Functionality:
- The GUI and server logic are in
main.go. - Navigate to
http://localhost:8080/to interact with the GUI.
- The GUI and server logic are in
-
Audio Processing:
- The audio processing logic resides in
ssp.go. - Key functions:
perform_stft_pipeline:- Generates and saves the spectrogram.
- Performs inverse STFT.
- Saves line charts and reconstructed audio files.
perform_stft_standalone:- Performs only the STFT operations without additional processing.
- The audio processing logic resides in
-
GoSSP:
- Ensure you have the GoSSP library installed: https://github.com/r9y9/gossp/tree/master
-
Gnuplot:
- Install Gnuplot for line chart visualization: http://www.gnuplot.info/
-
main:- Contains the GUI web server and the integrated STFT processing code.
-
mfcc-experiments:- Extends the audio processing pipeline by adding MFCC functionality on top of STFT.
-
jacob-STFT:- An earlier branch focused on STFT development (now fully integrated into
main).
- An earlier branch focused on STFT development (now fully integrated into
-
Extend the pipeline to include:
- MFCC generation.
- Inverse MFCC for audio reconstruction.
-
Improve file compatibility:
- Support for non-header WAV files.
- Process other audio file formats.
-
Enhance functionality:
- Correctly handle stereo tracks.
This project is shared for educational purposes and is part of CS 6221 coursework at GWU. Contributions and feedback are welcome.