MusicGen代理
使用Facebook MusicGen Small(300M参数)生成文本到音乐,封装在FastMCP服务器中,因此可以作为MCP兼容客户端的工具调用。
在Apple Silicon上进行了MPS加速测试。应该在CUDA上工作,但MPS是主要目标。
状态
功能性但粗糙。MCP服务器安装了8个子服务器,其中大多数与音乐生成无关(AlphaPOP基因组学工具、笔记本电脑图像提取)。这些是在自动化管道运行期间引入的,与核心用例无关。
它做什么
- 下载
facebook/musicgen-small第一次运行时来自HuggingFace(约1.2 GB)。 - 接受文本提示(例如,“80年代带有低音鼓和合成器的流行曲目”)。
- 使用MusicGen自回归解码器+32 kHz的编码器生成音频。
- 将结果另存为WAV文件。
演出
| 度量 | 值 |
|---|---|
| 型号 | facebook/musicgen小型,3亿参数 |
| 音频编解码器 | 编码,32 kHz |
| 生成速度(M2 Pro,MPS) | ~每秒2-3秒的音频 |
| 生成过程中的内存 | ~4-6 GB |
| 输出格式 | WAV,32 kHz,16位 |
需求
| 要求 | 注意事项 |
|---|---|
| Python | 3.8+ |
| PyTorch | 支持MPS(macOS 12.3+)或CUDA |
| RAM | 最小16GB,建议32GB |
| 磁盘 | 型号重量约为1.2 GB |
安装
pip install -r requirements.txt关键依赖关系: transformers, torch, torchaudio, fastmcp, soundfile, librosa.
用法
直接Python
from src.tools.run_onnx import MusicGenSmall
model = MusicGenSmall()
audio = model.generate_music("Upbeat electronic dance music", duration=5.0)
model.save_audio(audio, "output.wav")MCP服务器
python src/MusicGen_Agent_mcp.py相关MCP工具: initialize_musicgen, generate_music_from_prompt, save_generated_audio.
其他安装的工具(alphapop_mcp, score_batch, score_batch_test, score_batch_tool, extract_notebook_images)它们是自动化管道的残留物,不是音乐生成工作流程的一部分。
项目结构
src/
MusicGen_Agent_mcp.py FastMCP server (entry point)
tools/
run_onnx.py Core music generation logic
download_model.py Model download + verification
readme.py MCP tool wrappers for generation
alphapop_mcp.py Unrelated (genomics)
score_batch*.py Unrelated (genomics)
extract_notebook_images.py Utility
notebooks/ Jupyter notebooks from automated runs
assets/ Tokenizer configs, generation configs模型比较
| 型号 | 参数 | 相对质量 | 速度(MPS) | 内存 |
|---|---|---|---|---|
| MusicGen小型 | 300M | 基线 | 快速 | ~6GB |
| MusicGen Medium | 1.5B | 更好 | 更慢 | 约10GB |
| MusicGen大 | 3.3B | 最佳 | 最慢 | ~16GB |
此存储库使用MusicGen Small。切换到中型或大型只需要更改代码中的模型名称并拥有足够的内存。
局限性
- MCP服务器捆绑了不相关的基因组学工具,这些工具应该被排除在外。
- 无流媒体生成;完整剪辑必须在输出可用之前完成。
- 尽管有文件名,但没有ONNX运行时路径
run_onnx.py(它使用标准的PyTorch)。 - 没有自动测试。
- 持续时间受可用内存限制。
引用
@article{copet2023musicgen,
title={Simple and Controllable Music Generation},
author={Copet, Jade and Kreuk, Felix and Gat, Itai and others},
journal={arXiv preprint arXiv:2306.05284},
year={2023}
}许可证
使用Facebook MusicGen Small模型权重。看 模型卡 关于许可条款。
