Auracle is a semantic audio search tool built with Tauri and React. It allows you to index your local audio files and search through them using natural language descriptions or files - powered by CLAP (Contrastive Language-Audio Pretraining).
Screen.Recording.2026-04-28.at.15.30.31.mov
- Semantic Audio Search: Search your local audio library using text queries like "electronic drum beat" or "bird sounds".
- Local Machine Learning: Runs CLAP entirely locally using ONNX Runtime. No internet connection required, and your audio never leaves your machine.
- Fast Vector Search: Uses
sqlite-vecfor instant, local vector similarity search directly within SQLite. - Modern UI: Built with React, TailwindCSS, and Radix UI.
- Cross-Platform: Built on top of Tauri for native performance on Windows, macOS, and Linux.
- React 19 & Vite
- TailwindCSS 4
- Radix UI primitives and Lucide Icons
- TypeScript
- Tauri 2 (Rust)
- SQLite (via
sqlx) with sqlite-vec for vector embeddings syntax. - ONNX Runtime (
ort) for running the machine learning models. - Symphonia for audio decoding.
- rubato for audio resampling.
- tokenizers (HuggingFace) for text embeddings parsing.
- Node.js (v18+)
- Rust (Latest stable)
- Tauri prerequisites (depends on your OS)
-
Clone the repository:
git clone https://github.com/ruarim/auracle.git cd auracle -
Install frontend dependencies:
npm install
-
Extract CLAP ONNX Models:
- run
./src-py/export-clap.pyand move the.onnxand.onnx.datafiles to./src-tauri/models
- run
-
Run the development server:
npm run tauri dev
Auracle's core functionality relies on processing audio files into Mel Spectrograms and embedding them into a high-dimensional vector space using the CLAP audio model.
- Indexing: When a file is added, it is decoded and resampled with
symphoniaandrubato, respectively, convolution of the STFT (realfft) with a filter matrix results in a Mel-spectrogram. The ONNX audio model generates an embedding, which is then stored in SQLite utilizingsqlite-vec. - Searching: Text queries are tokenized and passed through the ONNX text model. The resulting text embedding is queried against the
sqlite-vecindex to find the closest matching audio files based on cosine distance.
- Advanced search filters
- Retry failed audio analysis
- Drag and drop folder/file support
- Support and display all audio file types and bit-depths
- Confirmation dialog on "Delete All"
- Comprehensive error handling