Giter Site home page Giter Site logo

cuda_audio_fft's Introduction

This project helps in prallelizing audio processing. It plays around with .wav audio files and plots an audio spectrum with the help of cuda FFT library. The goal of this project is:

  1. To capture 2-channel stereo, 16 Bits, Little Endian, .wav audio files at a sampling rate of 16000 Hz
  2. Convert that file into single channel mono raw file.
  3. Convert into the PCM data set.
  4. Analyzing the PCM data and plotting the time domain graph for that.
  5. Applying the cuda fft library to get the graph in frequency domain.
  6. Create an audio spectrum.

This project contains two different cuda kernels:

  1. Kernel to convert stereo to mono audio file.
  2. Kernel to convert stereo audio to PCM (Pulse Code Modulated) data.

To start using the project, you need to have the following system requirement:

  1. Nvidia Jetson Tx1 board running Tegra Ubuntu.
  2. A USB microphone and a USB speaker.
  3. Pre-installed ALSA library.
  4. Gnuplot for plotting the graphs.

Steps for downloading and using the application are:

  1. Download the project:

     $git clone https://github.com/shauryajai/Cuda_Audio_FFT.git
    
  2. Open the project home directory and compile the application.

     $cd ~/Cuda_Audio_FFT
    
     $make
    

    These commands will create two executables (i.e. audio and cuda_audio).

  3. Now, get the name of the audio recording and playback device:

     $aplay -l
    
     $arecord -l
    
  4. Open the run.sh bash script and update the audio device name in that file.

     $sudo nano run.sh
    

    I.e. change the "-Dsysdefault:CARD=CinemaTM" to your own device name.

  5. Now, you are all set up too record and get the audio spectrum. Just run the script updated above:

     $./run.sh
    

Incase you don't have a USB microphone and a speaker, you can run this project by directly using the "test.wav" sample audio file. Follow these steps if you don't have a microphone or a speaker:

  1. Follow the 1 and 2 steps given in the section above.

  2. Run the executables:

     $./audio
    
     $./cuda_audio
    

cuda_audio_fft's People

Contributors

shauryajai avatar ankitasinghalp avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.