AudioMuse-AI is an Open Source Dockerized environment that brings automatic playlist generation to Jellyfin, Navidrome, LMS, Lyrion and Emby. Using powerful tools like Librosa and ONNX, it performs sonic analysis on your audio files locally, allowing you to curate the perfect playlist for any mood or occasion without relying on external APIs. https://neptunehub.github.io/AudioMuse-AI/
  • Python 77.4%
  • HTML 16.6%
  • JavaScript 3.6%
  • CSS 1.1%
  • Dockerfile 0.6%
  • Other 0.5%
Find a file
2026-06-15 17:55:12 +02:00
.github Windows release workflow fix - #646 2026-06-14 14:52:26 +02:00
deployment Change PostgreSQL image version to 15-alpine 2026-06-10 15:44:30 +02:00
docs Add FAQ entry for Jellyfin connection test issue 2026-06-13 12:36:06 +02:00
error gemini review 2026-05-29 17:02:09 +02:00
lyrics import fix 2026-06-14 10:52:23 +02:00
native-build native safeguard 2 2026-06-14 16:35:09 +02:00
query Code cleaning 2026-06-12 15:53:03 +02:00
requirements Code cleaning 2026-06-12 15:53:03 +02:00
screenshot readme update 2026-05-29 13:05:47 +02:00
scripts Move native build directories under /native-build 2026-06-12 15:46:02 +02:00
static Code cleaning 2026-06-12 15:53:03 +02:00
tasks Lyrion lirc call fix - #647 2026-06-15 08:39:27 +02:00
templates Code cleaning 2026-06-12 15:53:03 +02:00
test sonarqube fix 2026-06-14 16:46:44 +02:00
.dockerignore Move native build directories under /native-build 2026-06-12 15:46:02 +02:00
.gitattributes windows build fix - removed unused msi 2026-06-07 21:31:07 +02:00
.gitignore Move native build directory 2026-06-12 15:49:57 +02:00
.sonarcloud.properties sonarcloud review fix 2026-06-12 16:38:07 +02:00
app.py native build fix 2026-06-14 15:57:41 +02:00
app_alchemy.py Code refactoring: function cleaning 2026-06-14 02:54:48 +02:00
app_analysis.py import fix 2026-06-14 10:52:23 +02:00
app_artist_similarity.py Search infinite scroll first test - #328 2026-03-13 11:34:04 +01:00
app_auth.py Security Fix + improved integration and unit test 2026-06-04 11:59:12 +02:00
app_backup.py backup restore fix on all native platform 2026-06-08 00:27:38 +02:00
app_chat.py Revert "Added Radio functionality - #476" 2026-06-11 11:23:03 +02:00
app_clap_search.py 星 char fix in search 2026-06-12 01:13:31 +02:00
app_clustering.py import fix 2026-06-14 10:52:23 +02:00
app_cron.py Gemini, Copilot, Sonarqube review and fix 2026-06-14 10:41:34 +02:00
app_dashboard.py import deep improvement + index build fix 2026-06-12 20:46:57 +02:00
app_external.py 星 char fix in search 2026-06-12 01:13:31 +02:00
app_helper.py fix and improvement 2026-06-14 13:25:34 +02:00
app_helper_artist.py Code refactoring: function cleaning 2026-06-14 02:54:48 +02:00
app_logging.py fix and improvement 2026-06-14 13:25:34 +02:00
app_lyrics.py 星 char fix in search 2026-06-12 01:13:31 +02:00
app_map.py import deep improvement + index build fix 2026-06-12 20:46:57 +02:00
app_path.py Code refactoring: function cleaning 2026-06-14 02:54:48 +02:00
app_provider_migration.py fix and improvement 2026-06-14 13:25:34 +02:00
app_sem_grove.py Improving AI parameters + shared table list for ll the functionality 2026-05-20 23:43:25 +02:00
app_setup.py Code refactoring: function cleaning 2026-06-14 02:54:48 +02:00
app_sonic_fingerprint.py Improving AI parameters + shared table list for ll the functionality 2026-05-20 23:43:25 +02:00
app_sync.py import deep improvement + index build fix 2026-06-12 20:46:57 +02:00
app_users.py updated /apidocs 2026-05-10 19:00:59 +02:00
app_voyager.py Code refactoring: function cleaning 2026-06-14 02:54:48 +02:00
app_waveform.py import deep improvement + index build fix 2026-06-12 20:46:57 +02:00
AudioMuse-AI.spec Move native build directories under /native-build 2026-06-12 15:46:02 +02:00
CODE_OF_CONDUCT.md Fix formatting in CODE_OF_CONDUCT.md 2025-10-31 22:41:23 +01:00
config.py AI Brainstorming tool improvement - #643 2026-06-14 16:32:36 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md for clarity and details 2026-06-13 20:04:40 +02:00
database.py Gemini, Copilot, Sonarqube review and fix 2026-06-14 10:41:34 +02:00
Dockerfile CLEAN UNUSED HF FROM Dockerfile 2026-05-31 23:27:12 +02:00
Dockerfile-noavx2 copy model to pass to 5.0.0-model release 2026-05-29 18:31:05 +02:00
flask_app.py macos build FIRST COMMiT 2026-05-29 19:06:35 +02:00
LICENSE Update LICENSE to reflect changes in model licensing 2026-03-20 16:25:17 +01:00
mkdocs.yml Add Authentication section to mkdocs 2026-03-22 10:29:59 +01:00
mood_centroids_real_080_clap.json Song Path - added mood 2026-04-02 14:54:56 +02:00
numeric_bootstrap.py Move native build directories under /native-build 2026-06-12 15:46:02 +02:00
pytest.ini Analysis integration test 2025-11-07 23:30:28 +01:00
README.md Update mirrored repository description in README 2026-06-12 11:56:07 +02:00
restart_listener.py centralized log fix 2026-06-11 12:45:35 +02:00
restart_manager.py ci windows build fix 3 2026-06-07 18:38:28 +02:00
rq_janitor.py Centralize and remove duplicated functionality 2026-06-12 16:07:17 +02:00
rq_worker.py import fix 2026-06-14 10:52:23 +02:00
rq_worker_high_priority.py sonarquebe fix 2026-06-11 12:59:50 +02:00
sanitization.py fix and improvement 2026-06-14 13:25:34 +02:00
ssrf_guard.py Code refactoring: function cleaning 2026-06-14 02:54:48 +02:00
taskqueue.py Windows sigalarm fix - #624 2026-06-10 10:38:06 +02:00
tz_helper.py standardize timezone dispaly - #499 2026-05-09 18:37:10 +02:00

GitHub license Latest Tag Media Server Support: Jellyfin 10.11.8, Navidrome 0.61.0, LMS v3.69.0, Lyrion 9.0.2, Emby 4.9.1.80

Leave a star on this project: One shines alone; together, they make it visible and keep it alive.

AudioMuse-AI - Where Music Takes Shape

AudioMuse-AI Logo

AudioMuse-AI is an opensource and self-hosted tool that uses sonic analysis to rediscover forgotten songs in your music library and generate groove-aware playlists that also capture the meaning behind each track, without relying on metadata or external APIs.

You can run it locally with Docker Compose or Podman, or deploy it at scale in a Kubernetes cluster (AMD64 and ARM64 supported). It integrates with major self-hosted music servers including Jellyfin, Navidrome, LMS, Lyrion, and Emby, with more integrations planned.

Prefer not to self-host? We're proud that Elestio picked AudioMuse-AI as a managed cloud service, happy to see the project reach more people.

Atlas Cloud Logo

Need a hosted LLM provider? AudioMuse-AI supports OpenAI-compatible APIs through the existing OPENAI provider. Atlas Cloud is one hosted option you can configure this way; see the configuration parameters for details.

AudioMuse-AI lets you explore your music library in innovative ways, just start with an initial analysis, and you’ll unlock features like:

  • Clustering: Automatically groups sonically similar songs, creating genre-defying playlists based on the music's actual sound.
  • Instant Playlists: Simply tell the AI what you want to hear—like "high-tempo, low-energy music" and it will instantly generate a playlist for you.
  • Music Map: Discover your music collection visually with a vibrant, genre-based 2D map.
  • Playlist from Similar Songs: Pick a track you love, and AudioMuse-AI will find all the songs in your library that share its sonic signature, creating a new discovery playlist.
  • Song Paths: Create a seamless listening journey between two songs. AudioMuse-AI finds the perfect tracks to bridge the sonic gap.
  • Sonic Fingerprint: Generates playlists based on your listening habits, finding tracks similar to what you've been playing most often.
  • Song Alchemy: Mix your ideal vibe, mark tracks as "ADD" or "SUBTRACT" to get a curated playlist and a 2D preview. Export the final selection directly to your media server.
  • Text Search: search your song with simple text that can contains mood, instruments and genre like calm piano songs.
  • Lyrics Search: search your library by theme, story or meaning, like love songs, not just the sound.

Lyrics language support: the Lyrics Search feature works only with the 72 languages listed below.

Show the 72 supported languages

Afrikaans, Albanian, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bulgarian, Burmese, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Korean, Lao, Latvian, Lithuanian, Macedonian, Malay, Malayalam, Marathi, Mongolian, Nepali, Norwegian, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Serbian, Sinhala, Slovak, Slovenian, Somali, Spanish, Swahili, Swedish, Tagalog, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, Welsh, Yoruba.

More information like ARCHITECTURE, ALGORITHM DESCRIPTION, DEPLOYMENT STRATEGY, FAQ, GPU DEPLOYMENT, CONFIGURATION PARAMETERS AUTHENTICATION and can be found in the docs folder.

The full list or AudioMuse-AI related repository are:

And now just some NEWS:

  • Version 2.1.4 introduces the Windows native version. Attached to each release you will find AudioMuse-AI-amd64-windows.zip.
  • Version 2.1.3 introduces the Linux native version. Attached to each release you will find .deb and .rpm file.
  • Version 2.1.2 introduces the MacOS native version. Attached to each release you will find AudioMuse-AI-arm64.zip.
  • Version 2.1.0 re-exports the GTE lyrics model so it produces correct embeddings on every CPU. The only affected users are those who analyzed lyrics on an older CPU without VNNI (avx512_vnni/avx_vnni), where the previous model could produce degraded vectors, they should re-analyze the lyrics. To check if your CPU has VNNI, run on the host: grep -oE 'avx512_vnni|avx_vnni' /proc/cpuinfo | head -1 , if it prints nothing, you have no VNNI and we suggest to re-analyze. Before re-analyzing, drop the old lyrics tables:
docker compose exec -e PGPASSWORD=audiomusepassword postgres \
  psql -U audiomuse -d audiomusedb \
  -c "DROP TABLE IF EXISTS lyrics_embedding; DROP TABLE IF EXISTS lyrics_index_data; DROP TABLE IF EXISTS lyrics_axes_index_data;"
  • Version 2.0.0 introduces a new faster and reliable multilangue model for lyrics search. Follow the release note to drop the old lyrics index and re-analyze the lyrics.

Disclaimer

Important: Despite the similar name, this project (AudioMuse-AI) is an independent, community-driven effort. It has no official connection to the website audiomuse.ai.

We are not affiliated with, endorsed by, or sponsored by the owners of audiomuse.ai.

Table of Contents

Quick Start Deployment (Containerized)

Get AudioMuse-AI running in minutes with Docker Compose.

If you need more deployment example take a look at DEPLOYMENT page.

For a full list of configuration parameter take a look at PARAMETERS page.

For the architecture design of AudioMuse-AI, take a look to the ARCHITECTURE page.

From v1.0.0, only PostgreSQL, Redis, and TZ configuration must still be configured via environment variables. All other configuration values are managed through the browser setup wizard and persisted in the database. For compatibility with legacy installations, environment variables are imported into the database automatically on first startup. The Setup Wizard is shown on clean installation as lending page and is also available later from the menu under Administration > Setup Wizard.

Prerequisites:

  • Docker and Docker Compose installed
  • A running media server (Jellyfin, Navidrome, Lyrion, or Emby)
  • See Hardware Requirements

Steps:

  1. Create your environment file:

    cp deployment/.env.example deployment/.env
    

    You can customize the setup by editing deployment/.env before startup. As a minimum, it is suggested to change the default database user and password, but you can also override other PostgreSQL and Redis connection parameters if needed:

    POSTGRES_PASSWORD=your-secure-password
    
  2. Start the services:

    docker compose -f deployment/docker-compose.yaml up -d
    
  3. Access the application:

    • Web UI: http://localhost:8000
    • Interactive API documentation (Swagger UI): http://localhost:8000/apidocs/ (when authentication is enabled, log in via the Web UI first — /apidocs/ is gated by the same JWT cookie as the rest of the app.)
  4. Run your first analysis:

    • Navigate to "Analysis and Clustering" page
    • Click "Start Analysis" to scan your library
    • Wait for completion, then explore features like clustering and music map
  5. Stopping the services:

docker compose -f deployment/docker-compose.yaml down

Important: AudioMuse-AI is designed to work with PostgreSql v15 as in the deployment example. Different version could create error.

Native Deployment

Prefer not to use Docker? We ship native packages for macOS, Linux and Windows, attached to each release. Each bundles the whole stack (embedded PostgreSQL, Redis, web UI and workers), so you don't need Docker or an external database. Once started, open http://127.0.0.1:8000.

The apps are not signed, so your OS may warn you on first launch, see the per-platform notes below for how to allow them.

macOS — Apple Silicon, AudioMuse-AI-arm64.zip (from v2.1.2)
  • Unzip and move AudioMuse-AI.app to /Applications.
  • Remove the quarantine flag (the app is unsigned), either way:
    • Terminal: xattr -dr com.apple.quarantine /Applications/AudioMuse-AI.app, then double-click — the icon appears in your menu bar.
    • No Terminal: double-click and dismiss the warning, then System Settings → Privacy & Security → "Open Anyway", authenticate, and launch again.
  • Runs only on Apple Silicon (ARM) on recent macOS (tested on macOS 15.3.1, Mac Mini M4 / 16 GB).

Files: data (database, Redis, temp audio) in ~/Library/AudioMuse-AI, log at ~/Library/Logs/AudioMuse-AI/audiomuse.log

Linux — x86_64 / arm64, .deb or .rpm (from v2.1.3)
  • Install as root (writes to /opt and the system app/service dirs):
    • Debian/Ubuntu: sudo dpkg -i AudioMuse-AI-x86_64.deb
    • Fedora/RHEL: sudo rpm -i AudioMuse-AI-x86_64.rpm
  • Run as your normal user (never with sudo/root — it stores data in your home and won't start as root):
    • audiomuse-ai start (stop with audiomuse-ai stop), or auto-start on login with systemctl --user enable --now audiomuse-ai.
  • Verified on Debian 12 (bookworm) (glibc 2.36). The .rpm is the same payload, expected to work on recent Fedora / RHEL 9, but too old for RHEL/Rocky/Alma 8 (glibc 2.28). Feedback on RPM-based distros is welcome.

Files (under the launching user's home): data (database, Redis, temp audio) in ~/.local/share/AudioMuse-AI, log at ~/.local/state/AudioMuse-AI/logs/audiomuse.log (newest entries first)

Windows — x86_64, AudioMuse-AI-amd64-windows.zip (from v2.1.4)
  • Unzip the portable archive anywhere.
  • From a terminal you can start with AudioMuse-AI.exe start and stop with AudioMuse-AI.exe stop.
  • Runs only on x86_64 (Intel/AMD) on Windows 10/11.

Files: data (database, Redis, temp audio) in %LOCALAPPDATA%\AudioMuse-AI, log at %LOCALAPPDATA%\AudioMuse-AI\logs\audiomuse.log (newest entries first)

Hardware Requirements

AudioMuse-AI has been tested on:

  • Intel: HP Mini PC with Intel i5-6500, 16 GB RAM and NVMe SSD
  • ARM: Raspberry Pi 5, 8 GB RAM and NVMe SSD / Mac Mini M4 16GB / Amphere based VM with 4core 8GB ram

Minimum requirements:

  • CPU: 4-core Intel with AVX2 support (usually produced in 2015 or later) or ARM
  • RAM: 8 GB RAM
  • DISK: NVME SSD storage

For more information about the GPU deployment requirements have a look to the GPU page.

IMPORTANT: If you use virtualization (e.g. Proxmox), make sure to pass through the host CPU. QEMU's virtual CPU lacks AVX2 support, which will prevent AudioMuse-AI from starting.

Docker Image Tagging Strategy

Our GitHub Actions workflow automatically builds and publishes Docker images with the following tags:

  • :latest Last build from the main branch. Recommended for most users.

  • :devel Development build from the devel branch. May be unstable — for testing and development only.

  • :X.Y.Z (e.g. :1.0.0, :0.1.4-alpha) Immutable images built from Git release tags. Ideal for reproducible or pinned deployments.

  • -noavx2 variants Experimental images for CPUs without AVX2 support, using legacy dependencies. Not recommended unless required for compatibility.

  • -nvidia variants Images that support the use of GPU for both Analysis and Clustering. Not recommended for old GPU.

Versioning is Major.Minor.Patch release. Eventually (rare) model change that could require a new analysis could happen in Major and Minor release. Read the release note before any update especially for Major and Minor release.

How To Contribute

Contributions, issues, and feature requests are welcome!

For more details on how to contribute please follow the Contributing Guidelines

Code Mirror

AudioMuse-AI repository code is mirrored here:

DO NOT USE MIRROR TO RAISE ISSUE, PR OTHER ACTION DIFFERENT FROM GET THE CODE

Star History

Star History Chart