Py学习  »  docker

收费NAS音乐软件做不到的事,这个开源 docker 做到了,极空间部署「AudioMuse」

可爱的小Cherry • 3 月前 • 140 次点击  

AudioMuse-AI 是一个开源、自托管、Docker 一键部署的声波分析引擎。它通过直接读取你音频文件的波形、频谱、节奏、能量等物理特征,在本地构建一套「音乐 DNA 数据库」。

从此,你的歌单不再靠「歌手」「流派」这种标签,而是靠「听起来像不像」这种人类真实的听觉逻辑。

AudioMuse-AI 兼容 Jellyfin / Navidrome / LMS / Lyrion / Emby,X86/ARM 通吃。

QQ_1778047771869.png

只需先进行初步分析 ,你就能解锁以下功能:

1️⃣ 智能聚类— 按声波相似度自动分组,打破「摇滚/爵士」标签束缚,后摇与 Ambient 也能成为近邻。
2️⃣自然语言点歌— 输入"高节奏低能量"或"深夜写代码的冷静钢琴",秒出歌单。
3️⃣音乐地图— 整张曲库投影为 2D 彩色散点图,颜色代表流派,距离代表相似度,一眼发现隐藏宝藏。
4️⃣以歌找歌— 丢给它一首心头好,自动从库底翻出所有"声波签名"相近的曲目。
5️⃣歌曲路径— 从 A 歌到 B 歌,AI 计算最佳"声波桥梁",生成无缝聆听路径。
6️⃣声波指纹— 分析近期播放习惯,自动生成"你此刻最想听"的列表。
7️⃣炼金术调歌— 标记 ADD / SUBTRACT 像调鸡尾酒一样微调氛围,2D 地图实时预览,一键导出到媒体服务器。
8️⃣语义搜索 — v1.0.3 新增,直接搜"calm piano""angry guitar",AI 懂语义,非文件名匹配。

🔻侧边栏是 AudioMuse 的功能清单,音乐地图可以看到你所有歌曲的聚合情况

QQ_1778076881273.png

一、音乐分析与 AI 歌单

这里我以 Navidrome 为例,将 AudioMuse 接入后,可以对库里的音乐进行全量分析。

第一次分析系统会占用比较多的 CPU 和内存,尽量放在晚上去跑。

从分析结果可以看到,整个库的分析结果包含类型、情绪覆盖、节奏三大类。类型就是常见的女声、pop、rock、爵士等等种类。

QQ_1778077372336.png

情绪包含激昂、派对向、跳舞、悲伤、欢乐、舒缓六大类,包括具体的占比信息。节奏就是快歌、中等、慢歌等等。

QQ_1778077382939.png

基于音乐的分析,我们可以进行相似歌曲检索。

QQ_1778047872520.png

每一个类型都支持深度下钻,每一个层级都支持检索。

举个例子,你现在想听一些激昂的音乐,那么可以在激昂的情绪基础上进一步选择是舞蹈、Rock、Hip-hop 等类型。也可以在任意层级直接搜索歌曲。

QQ_1778047897083.png

AudioMuse 支持根据音乐生成波形可视化。

QQ_1778076968738.png

好了,这下轮到 AudioMuse 的重头戏 —— 基于自然语言生成歌单

加入 LLMs 之后,我们只需要说一句我想要一种什么类型的音乐,系统就可以自动从上千首歌的音乐库里挑选出拥有最合适音波的音乐,并且帮你组建成一套播放列表。

QQ_1778076099907.png

这一套播放列表,可以直接生成到对应的音乐平台里,无需手动操作。这一点是我认为最强大的部分。

QQ_1778076113846.png

可以看到我的 Navidrome 里,秒级同步了 AudioMuse 推荐的音乐歌单,单独创建成了一个歌单。

QQ_1778076735100.png

二、配置方法

AudioMuse 的配置方法也很简单。登录系统后,首先连接到你的音乐库。

QQ_1778038539343.png

这里要提一点的,就是极空间的极影视应用目前已经支持以 Emby 兼容服务模式向外提供服务。所以如果你平时有用极影视来管理音乐的习惯,现在也可以将极影视接入 AudioMuse。

QQ_1778080254060.png

具体开启方法,在媒体库设置的媒体库服务里,去配置账号密码,然后在 AudioMuse 这里选择 Emby。

QQ_1778080204873.png

当然,也别忘记配置系统的管理员账号密码。

QQ_1778038782076.png

AudioMuse 还支持接入歌词 API,其内置了 Whisper 模型为 fallback 选项,也可以用来生成歌词。

QQ_1778038805118.png

全部设置完成并重新登录后,点击左侧的管理页面,选择设置向导,在这里找到  openai_api_key 相关信息。

这里可以填入 OpenAI 兼容的 LLMs,用于歌单推荐、自然语言检索等等功能。

QQ_1778048219527.png

点击左侧第二个按钮,可以对音乐库的音乐进行分析、聚集。这是系统使用的第一步,也是最重要的一步。

QQ_1778038864972.png

三、极空间部署 AudioMuse

打开极空间 Docker 应用,选择 Compose 服务创建应用。AudioMuse 项目需要使用到 yaml 和 .env,如果你还没有配置页面,请尽快更新 NAS 系统以激活新的 docker 面板。

QQ_1778037231605.png

🔻docker-compose.yaml 文件

services:
  redis:
    image: redis:7-alpine
    container_name: audiomuse-redis
    volumes:
      - ./redis-data:/data
    restart: unless-stopped

  postgres:
    image: postgres:15-alpine
    container_name: audiomuse-postgres
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-audiomuse}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-audiomusepassword}
      POSTGRES_DB: "audiomusedb"
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    restart: unless-stopped

  audiomuse-ai-flask:
    image: ghcr.io/neptunehub/audiomuse-ai:latest
    container_name: audiomuse-ai-flask-app
    ports:
      - "33320:8000"
    environment:
      SERVICE_TYPE: "flask"
      TZ: "Asia/Shanghai"
      POSTGRES_USER: ${POSTGRES_USER:-audiomuse}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-audiomusepassword}
      POSTGRES_DB: "audiomusedb"
      POSTGRES_HOST: "postgres"
      POSTGRES_PORT: "5432"
      REDIS_URL: "redis://redis:6379/0"
      TEMP_DIR: "/app/temp_audio"
    volumes:
      - ./temp-audio-flask:/app/temp_audio
    depends_on:
      - redis
      - postgres
    restart: unless-stopped

  audiomuse-ai-worker:
    image: ghcr.io/neptunehub/audiomuse-ai:latest
    container_name: audiomuse-ai-worker-instance
    environment:
      SERVICE_TYPE:
      TZ: "Asia/Shanghai"
      POSTGRES_USER: ${POSTGRES_USER:-audiomuse}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-audiomusepassword}
      POSTGRES_DB: "audiomusedb"
      POSTGRES_HOST: "postgres"
      POSTGRES_PORT: "5432"
      REDIS_URL: "redis://redis:6379/0"
      TEMP_DIR: "/app/temp_audio"
    volumes:
      - ./temp-audio-worker:/app/temp_audio
    depends_on:
      - redis
      - postgres
    restart: unless-stopped

🔻.env 文件

POSTGRES_USER=audiomuse  # 这里自己改
POSTGRES_PASSWORD=audiomusepassword  # 这里自己改
POSTGRES_PORT=5432
FRONTEND_PORT=8000

总结

说到音乐库打造,下载可以用 Sqmusic、go-muisc-dl、musicn 等项目解决,刮削和元数据可以用 muisc-web-tag 等项目解决,管理建议用 navidrome、道理鱼等等。

而 AudioMuse 这个项目,则是独树一帜的,它可以作为家庭音乐中心的最后一块拼图,为每个用户搭建属于自己的音乐指纹,在庞大的音乐库里推荐最适合的音乐歌单。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/196439