Communitygithub.com

haoyiyin/text-to-bgm

AI 代理技能:從文字描述生成背景音樂,100% 在 Apple Silicon Mac 上本地執行。

text-to-bgm 是什麼?

這個技能讓 AI 代理能透過文字描述,直接在 Apple Silicon Mac 上使用本地 AI 模型生成背景音樂(BGM)。它基於 **mlx-audiocraft**,這是 Meta 的 MusicGen 模型移植到 Apple 的 MLX 框架的版本。完全離線運行,無需雲端服務或 API 金鑰,確保資料私密性,並利用 MLX GPU 加速在 M1/M2/M3/M4 晶片上提供快速生成。支援多種模型,從快速的小模型(300M 參數)到高品質立體聲大模型(3.3B 參數),並提供完整的 CLI 工具、Python API 和包裝腳本,方便整合到各種工作流程中。主要用於生成環境音樂、Lo-Fi 節拍、電影配樂等純器樂,不適用於音效(需使用 audiogen-mlx)或人聲/歌唱。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add haoyiyin/text-to-bgm

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

text-to-bgm 是做什麼的?

使用 Apple Silicon Mac 上的本地 AI,從文字描述生成背景音樂(BGM)。由 mlx-audiocraft 驅動 — Meta 的 MusicGen 移植到 Apple 的 MLX 框架。

  • 100% 離線 — 無需雲端、無 API 金鑰、模型下載後無需網路
  • 私密 — 所有生成都在裝置上完成
  • 快速 — 在 M1/M2/M3/M4 上使用 MLX GPU 加速

使用時機

當使用者要求以下項目時使用此技能:

  • 產生背景音樂 / BGM / 器樂
  • 建立環境音樂、Lo-Fi 節拍、電影配樂
  • 為影片、遊戲、播客或讀書/專注時段製作音訊
  • 任何在 macOS Apple Silicon 上的文字轉音樂請求

請勿用於:

  • 音效 → 使用 audiogen-mlx(包含在 mlx-audiocraft 中)
  • 人聲 / 歌唱 → MusicGen 在人聲方面表現較弱
  • 完整製作歌曲 → 考慮 ACE-Step 以獲得較長、結構化的音樂

需求

  • macOS 搭配 Apple Silicon(M1、M2、M3、M4)
  • Python 3.10+(建議使用 3.11)
  • 記憶體:小模型至少 8 GB,大模型建議 16 GB+
  • 磁碟空間:每個模型 1.2 GB(小)至 ~6.5 GB(立體聲大)

安裝

# 一行安裝
pip install mlx-audiocraft

# 驗證
musicgen-mlx --help

或使用內建的設定腳本:

bash setup.sh

使用方式

基本用法

musicgen-mlx "lo-fi chill study beats with soft piano" -d 30 -o bgm.wav

完整 CLI 參考

musicgen-mlx [-h] [-m MODEL] [-o FILE] [-d SEC] [--no-open]
             [--top-k K] [--temperature T] [--cfg-coef C]
             prompt

引數:
  prompt              欲生成音樂的文字描述

選項:
  -m, --model NAME    HuggingFace 模型(預設:facebook/musicgen-small)
  -o, --output FILE   輸出 WAV 路徑(預設:./musicgen_output.wav)
  -d, --duration SEC  持續時間(秒)(預設:8)
  --no-open           生成後不開啟檔案
  --top-k K           取樣 top-k(預設:250)
  --temperature T     取樣溫度(預設:1.0)
  --cfg-coef C        分類器自由引導係數(預設:3.0)

模型

模型大小品質速度(M4 Max)使用案例
facebook/musicgen-small300M / 1.2GB良好1.3x 即時預設選擇
facebook/musicgen-medium1.5B / 3.4GB較佳~0.6x 即時較佳品質
facebook/musicgen-large3.3B / 5.5GB最佳(單聲道)~0.4x 即時高品質
facebook/musicgen-stereo-large3.3B / 6.5GB最佳(立體聲)~0.3x 即時最終輸出

生成參數

參數範圍效果
--temperature0.5–1.5越高 = 越有創意/多變。越低 = 越可預測
--top-k100–500越高 = 音符選擇越多樣
--cfg-coef1.0–7.0越高 = 提示遵循越嚴格。預設 3.0 為平衡值

使用包裝腳本

為方便起見,請使用 generate_bgm.sh:

bash generate_bgm.sh "cinematic orchestral epic trailer music" -d 45

選項:-m <模型>、-d <秒數>、-t <溫度>、-o <輸出>

Python API

import mlx.core as mx
import numpy as np
import soundfile as sf
from audiocraft_mlx.models.musicgen import MusicGen

# 載入模型
mg = MusicGen.get_pretrained("facebook/musicgen-small")

# 設定生成參數
mg.set_generation_params(duration=30, temperature=1.0, top_k=250, cfg_coef=3.0)

# 生成
audio = mg.generate(["lo-fi jazz hop with smooth saxophone and chill drums"])

# 儲存
wav = np.array(audio[0])  # [通道數, 樣本數]
sf.write("output.wav", wav.T, mg.sample_rate)

提示工程

請參閱 prompts.md 以取得包含範例的完整指南。

快速提示:

  • 以類型/風格開始:"lo-fi hip hop"、"cinematic orchestral"、"ambient electronic"
  • 加入樂器:"warm piano"、"soft synth pads"、"acoustic guitar"
  • 描述情緒/氛圍:"relaxing"、"uplifting"、"mysterious"、"energetic"
  • 包含製作品質:"vinyl crackle"、"reverb"、"80 BPM"、"sidechain compression"
  • 以用途結尾:"perfect for study"、"background for podcast"、"game menu music"

⚠️ MusicGen 在 英文提示 和 器樂 下效果最佳。

流程(適用於 AI 代理)

  1. 檢查安裝:執行 musicgen-mlx --help。若缺少,透過 pip install mlx-audiocraft 安裝。
  2. 收集需求:詢問使用者關於類型、情緒、持續時間。若模糊不清,建議常見的 BGM 風格。
  3. 選擇模型:預設使用 facebook/musicgen-small(快速,300M)。若需較佳品質使用 facebook/musicgen-medium,或使用 facebook/musicgen-stereo-large 獲得最佳結果。
  4. 撰寫提示:依照 prompts.md 中的提示指南,建立一段 10–30 字的英文描述。
  5. 設定持續時間:循環用 15–30 秒,短 BGM 用 30–60 秒,較長片段用 60–120 秒。
  6. 生成:執行 musicgen-mlx "<提示>" -m <模型> -d <秒數> -o <路徑>.wav
  7. 回報:告訴使用者輸出檔案路徑。如有需要,可提供調整參數後重新生成。

常見陷阱

  • ⚠️ 首次執行會下載模型 — 從 HuggingFace 下載 1.2–6.5 GB。請警告使用者。
  • ⚠️ 僅限 Apple Silicon — 在 Intel Mac 上無法運作。
  • ⚠️ 預設持續時間 8 秒 — 請務必為 BGM 指定 -d。
  • ⚠️ 僅限器樂 — 人聲/歌詞表現較弱。
  • ⚠️ 非商業授權 — CC-BY-NC 4.0。不得用於商業用途。
  • ⚠️ 記憶體消耗大 — 8GB 機器應僅使用 small/medium 模型。
  • ⚠️ 大型模型速度慢 — 立體聲大模型約為即時的 0.3 倍。生成 60 秒音訊約需 3 分鐘。

驗證

# 1. 檢查 CLI
musicgen-mlx --help

# 2. 快速測試
musicgen-mlx "piano melody" -d 5 -o /tmp/test_bgm.wav

# 3. 驗證輸出
file /tmp/test_bgm.wav
# 預期:RIFF (little-endian) data, WAVE audio

# 4. 聆聽
open /tmp/test_bgm.wav

檔案

檔案用途
SKILL.md本檔案 — 技能定義與參考
setup.sh一鍵安裝腳本
generate_bgm.sh易於代理使用的包裝生成腳本
prompts.md提示工程指南,含類型模板

相關技能