Skip to main content

audio search/retrieval library

Project description

shira 🔖🎧

A simple audio search/retrieval library. (wip)

This is the audio version of ripple. Search through audio files/data with text queries or audio samples.
It's meant to be an neural encoded version of Shazam, but might just be for small scale/local usage.

Methodology

It's basically a semantic search library for audio.

The local audio data/files are indexed and embeddings are generated(with CLAP), then a FAISS vector index is created.
The files are retrieved based on cosine similarity between embeddings. (it could also be adapted for audio recommendation).

This process makes use of contrastively pretrained audio-language model, CLAP(like OpenAI CLIP for audio), specifically LAION's laion/larger_clap_music_and_speech checkpoint/model.

usage

  • Install the library
pip install shira-audio
  • For text-based search
from shira import AudioSearch, AudioEmbedding

embedder = AudioEmbedding(data_path='.') # init embedder class
audio_data_embeds = embedder.index_files() # create embeddings and index audio files

neural_search = AudioSearch() # init semantic search class

text_query = 'classical music' # text description for search

# get k similar audio w/probability score pairs 
matching_samples, scores = neural_search.text_search(text_query, audio_data_embeds, k_count=5)

matching_samples['path'][0], scores[0] # get file path for the top sample

Or you could use it from your terminal:

# -t for text query 
# --dir for [optional] target directory 
shira_text -t instrumental --dir downloads/music
  • For audio-based search
from shira import AudioSearch, AudioEmbedding

embedder = AudioEmbedding(data_path='downloads') # init embedder class
audio_data_embeds = embedder.index_files() # create embeddings and index audio files

neural_search = AudioSearch() # init semantic search class

audiofile = 'beethoven_moonlight_sonata.mp3' # audio file for reference

# get k similar audio w/probability score pairs 
similar_samples, scores = neural_search.audio_search(audiofile, audio_data_embeds, k_count=4)

similar_samples['path'][0], scores[0] # get file path for the top sample

Or for terminal/cli use:

# -f reference audio file path 
# --dir for [optional] target directory 
shira -f sprinter.mp3 --dir downloads/

Acknowldgements

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shira_audio-0.1.292.tar.gz (324.7 kB view details)

Uploaded Source

Built Distribution

shira_audio-0.1.292-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file shira_audio-0.1.292.tar.gz.

File metadata

  • Download URL: shira_audio-0.1.292.tar.gz
  • Upload date:
  • Size: 324.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for shira_audio-0.1.292.tar.gz
Algorithm Hash digest
SHA256 bfa0e472b969b8ecad79157cc598aa12455e6c76f6fc4b8e66a5957a8481c3f4
MD5 882b8a9a6ee7890dddc91ca812c8798e
BLAKE2b-256 f08964d0bc7040424d9f81d0c074d7c4bb2dccb729810ec24ee1eb559ae8da35

See more details on using hashes here.

File details

Details for the file shira_audio-0.1.292-py3-none-any.whl.

File metadata

File hashes

Hashes for shira_audio-0.1.292-py3-none-any.whl
Algorithm Hash digest
SHA256 3f8a1d02fc6a86e02de970a6edf20b94a618239880bb1fbfa3a783fae83cf6b9
MD5 2517c70852d6baf63d4603ed3e496f4a
BLAKE2b-256 7edae1b5fb82baaf78ace23ef3cea57fcf36c4a9b3d720745183a49c7350c51b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page