Skip to content

abhiraj-ku/go_saz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go_saz

This project is a simplified implementation of the Shazam audio fingerprinting algorithm in Go.

Features

  • Audio Fingerprinting: Extracts unique hashes from audio samples for quick lookup.
  • Spectrogram Generation: Converts audio signals into a time-frequency representation.
  • Peak Detection: Identifies significant points in the spectrogram for robust matching.
  • Database Matching: Compares extracted fingerprints against a database to recognize audio.
  • Go Implementation: Uses idiomatic Go and best practices for efficient processing.

How It Works

  1. Preprocessing: The audio file is converted into a spectrogram.
  2. Peak Extraction: Unique peak points are identified in the spectrogram.
  3. Fingerprinting: Hashes are generated from peak pairs.
  4. Storage & Matching: Hashes are stored and compared for identification.
  5. Recognition: The system returns the best-matching audio file from the database.

Installation

git clone https://github.com/yourusername/shazam-go
cd shazam-go
go mod tidy

Dependencies

  • Go
  • PortAudio (for audio processing)
  • go-audio/wav (for reading wv file)
  • A database (e.g., PostgreSQL, SQLite) for fingerprint storage

Future Enhancements

  • Noise Reduction: Improve robustness against background noise.
  • Real-time Recognition: Implement streaming audio recognition.
  • Distributed Processing: Optimize for large-scale audio databases.

Contributing

Contributions are welcome! Feel free to submit pull requests and issues.

About

Simple working golang implementation of sazam algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages