Skip to main content

EquAI - Smart Audio Engine & Dynamic Equalizer (Real-Time DSP & ML)

Python Streamlit scikit-learn SQLite

📖 Overview

EquAI is a cutting-edge, Python-based digital signal processing (DSP) application that actively monitors your system's audio output via Loopback. By extracting over 20 digital audio features (such as MFCC, RMS, ZCR, and Spectral Centroid) in real-time, EquAI leverages a Random Forest Machine Learning model to apply dynamic EQ optimization directly through Equalizer APO.

Whether you're listening to Spotify, watching YouTube, or gaming, EquAI acts as an intelligent layer that adapts your audio profile on the fly.


Key Features

  • 🧠 AI-Powered Automated EQ: Continuously analyzes system audio, predicts the music genre, and applies smooth, ISO-standard EQ transitions with Preamp limiters to prevent clipping.
  • 🎛️ Advanced Manual Control: Take the wheel with a 15-band vertical slider architecture backed by SQLite. Load built-in profiles (Rock, Pop, Jazz) or save your custom sonic signatures.
  • 🎧 Universal Audio Capture: Employs the soundcard library for lossless capture of all audio outputs—including Bluetooth headsets—eliminating the need for virtual audio cables.
  • 🛡️ Seamless APO Integration: Directly writes configurations to dynamic_eq.txt within the project directory, cleanly bypassing strict Windows Administrator restrictions.
  • 📊 Live DSP Telemetry: Monitor dynamic audio data via a sleek Streamlit interface. Track live BPM, A-Weighted Loudness, Danceability, and spectral power distribution with interactive charts.

Architecture

EquAI is built with a highly modular architecture to ensure low-latency performance and easy scalability:

  • /core (The Engines):
    • audio_processor.py: The ear of the system, capturing audio via C-Level DLL bindings.
    • ml_engine.py & librosa_engine.py: The brain. Manages ML predictions, Q-Factor math, and smoothing algorithms.
    • db_manager.py: The memory. Handles SQLite database operations for user presets.
    • eq_controller.py: The hand. Translates calculations into Equalizer APO configuration parameters.
  • /views (The Frontend): Streamlit modules serving the Real-Time EQ dashboard, Manual EQ controls, and Smart Playlist interfaces.

🛠️ Installation & Setup

⚠️ Prerequisites

  1. Python 3.11 (Strictly recommended. Versions 3.12/3.13 may face Windows DLL compatibility issues with audio libraries).
  2. Equalizer APO installed and configured on your primary audio device.

⚙️ Quick Start

# 1. Clone the repository
git clone [https://github.com/BButcher-435/Drupe.git](https://github.com/BButcher-435/Drupe.git)
cd Drupe

# 2. Set up a virtual environment
python -3.11 -m venv venv

# 3. Activate the environment
# Windows:
.\venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# 4. Install dependencies
pip install -r requirements.txt

# 5. Launch the application
streamlit run app.py

Contributing

Contributions are always welcome! Feel free to open an issue or submit a pull request if you have ideas to improve the DSP pipeline, UI, or ML models

Metadata

Release files for equai 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for equai 1.0.0
File Size Uploaded
equai-1.0.0.tar.gz 4.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for equai 1.0.0
File Interpreter ABI Platform
equai-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.4 kB

Release files / equai-1.0.0.tar.gz

Download URL equai-1.0.0.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c4ad7ab8ba4dde807e04559ec235660e55af491dcea22864811c952e088ece70
BLAKE2b-256 checksum
How to use checksums
8b32b001a99edb2ddae5ef06523aab3f22f81ec0210c89ebce9a4bdf132883df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0

Release files / equai-1.0.0-py3-none-any.whl

Download URL equai-1.0.0-py3-none-any.whl
Size 4.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a521f385c86a67d1469e3cc87f069d92d28d3348b835c9291774bc270e11e28d
BLAKE2b-256 checksum
How to use checksums
4f28ac7ea17a1e4da946d536df2cd9c5c50e459baa328d43eb9530b75abb3f59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page