模型简介
模型特点
模型能力
使用案例
🚀 InspireMusic
InspireMusic 是一个专注于音乐、歌曲和音频生成的统一工具包。它集成了音频分词器、自回归变压器和基于流匹配的模型,能够生成高质量的长音频,支持文本到音乐、音乐续写等多种任务。
感谢大家支持,欢迎给项目点个 Star!
亮点 | 介绍 | 安装指南 | 快速开始 | 教程 | 模型 | 联系我们
✨ 主要特性
- 统一工具包:专为音乐、歌曲和音频生成设计的统一框架。
- 高质量音频:能够生成高质量的音乐,满足专业需求。
- 长音频生成:支持长形式的音乐生成,可生成长达数分钟的音乐。
📚 详细文档
⚠️ 重要提示
本仓库包含算法基础架构和一些简单示例,目前仅支持英文文本提示。
💡 使用建议
如需预览模型性能,请访问 InspireMusic 演示页面。
InspireMusic 是一个统一的音乐、歌曲和音频生成框架,它通过集成音频分词器、自回归变压器和基于流匹配的模型实现。该工具包的初衷是让普通用户能够通过音乐、歌曲和音频创作,在研究中创新音景并提升美感。它为基于人工智能的生成模型提供了训练和推理代码,可生成高质量的音乐。InspireMusic 采用统一框架,将音频分词器与自回归变压器和超分辨率流匹配建模相结合,允许使用文本和音频提示可控地生成音乐、歌曲和音频。目前,该工具包支持音乐生成,未来将支持歌曲生成和音频生成。
InspireMusic
![]() |
图 1:InspireMusic 框架概述。我们推出了 InspireMusic,这是一个用于音乐、歌曲和音频生成的统一框架,能够生成高质量的长音频。InspireMusic 由以下三个关键组件组成。音频分词器:将原始音频波形转换为离散的音频标记,以便自回归变压器模型能够高效处理和训练。较低采样率的音频波形通过高比特率压缩音频分词器转换为离散标记 [1]。自回归变压器:该模型基于 Qwen2.5 [2] 作为骨干模型,并使用下一个标记预测方法在文本和音频标记上进行训练,使其能够生成连贯且与上下文相关的标记序列。音频和文本标记作为自回归模型的输入,通过下一个标记预测生成标记。超分辨率流匹配模型:基于流建模方法,将生成的标记映射到具有高分辨率细粒度声学细节的潜在特征 [3],这些特征从更高采样率的音频中获得,以确保声学信息流通过模型以高保真度连接。然后,声码器从这些增强的潜在特征中生成最终的音频波形。InspireMusic 支持一系列任务,包括文本到音乐、音乐续写、音乐重建和音乐超分辨率。 |
📦 安装指南
克隆仓库
git clone --recursive https://github.com/FunAudioLLM/InspireMusic.git
# 如果由于网络问题克隆子模块失败,请运行以下命令直到成功
cd InspireMusic
git submodule update --recursive
# 或者你可以手动下载第三方仓库 Matcha-TTS
cd third_party && git clone https://github.com/shivammehta25/Matcha-TTS.git
从源代码安装
InspireMusic 需要 Python >= 3.8、PyTorch >= 2.0.1、flash attention == 2.6.2/2.6.3、CUDA >= 11.2。你可以使用以下命令安装依赖项:
- 安装 Conda:请参考 https://docs.conda.io/en/latest/miniconda.html
- 创建 Conda 环境:
conda create -n inspiremusic python=3.8
conda activate inspiremusic
cd InspireMusic
# WeTextProcessing 需要 pynini,使用 conda 安装,因为它可以在所有平台上运行
conda install -y -c conda-forge pynini==2.1.5
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
# 安装 flash attention 以加速训练
pip install flash-attn --no-build-isolation
- 在包内安装:
cd InspireMusic
# 运行以下命令安装包
python setup.py install
pip install flash-attn --no-build-isolation
我们还建议安装 sox
或 ffmpeg
,可以通过系统包管理器或 Anaconda 安装:
# 安装 sox
# Ubuntu
sudo apt-get install sox libsox-dev
# CentOS
sudo yum install sox sox-devel
# 安装 ffmpeg
# Ubuntu
sudo apt-get install ffmpeg
# CentOS
sudo yum install ffmpeg
使用 Docker
运行以下命令从提供的 Dockerfile 构建 Docker 镜像:
docker build -t inspiremusic .
运行以下命令以交互模式启动 Docker 容器:
docker run -ti --gpus all -v .:/workspace/InspireMusic inspiremusic
使用 Docker Compose
运行以下命令从 docker-compose.yml 文件构建 Docker Compose 环境和 Docker 镜像:
docker compose up -d --build
运行以下命令以交互模式连接到 Docker 容器:
docker exec -ti inspire-music bash
🚀 快速开始
音乐生成快速推理示例
cd InspireMusic
mkdir -p pretrained_models
# 下载模型
# ModelScope
git clone https://www.modelscope.cn/iic/InspireMusic-1.5B-Long.git pretrained_models/InspireMusic-1.5B-Long
# HuggingFace
git clone https://huggingface.co/FunAudioLLM/InspireMusic-1.5B-Long.git pretrained_models/InspireMusic-1.5B-Long
cd examples/music_generation
# 运行快速推理示例
sh infer_1.5b_long.sh
音乐生成任务快速开始脚本
cd InspireMusic/examples/music_generation/
sh run.sh
一键推理
文本到音乐任务
cd examples/music_generation
# 使用流匹配,一键快速尝试
python -m inspiremusic.cli.inference
# 自定义配置,使用一键命令
python -m inspiremusic.cli.inference --task text-to-music -m "InspireMusic-1.5B-Long" -g 0 -t "Experience soothing and sensual instrumental jazz with a touch of Bossa Nova, perfect for a relaxing restaurant or spa ambiance." -c intro -s 0.0 -e 30.0 -r "exp/inspiremusic" -o output -f wav
# 不使用流匹配,一键快速尝试
python -m inspiremusic.cli.inference --task text-to-music -g 0 -t "Experience soothing and sensual instrumental jazz with a touch of Bossa Nova, perfect for a relaxing restaurant or spa ambiance." --fast True
你也可以使用几行 Python 代码进行推理:
from inspiremusic.cli.inference import InspireMusic
from inspiremusic.cli.inference import env_variables
if __name__ == "__main__":
env_variables()
model = InspireMusic(model_name = "InspireMusic-Base")
model.inference("text-to-music", "Experience soothing and sensual instrumental jazz with a touch of Bossa Nova, perfect for a relaxing restaurant or spa ambiance.")
音乐续写任务
cd examples/music_generation
# 使用流匹配
python -m inspiremusic.cli.inference --task continuation -g 0 -a audio_prompt.wav
# 不使用流匹配
python -m inspiremusic.cli.inference --task continuation -g 0 -a audio_prompt.wav --fast True
你也可以使用几行 Python 代码进行推理:
from inspiremusic.cli.inference import InspireMusic
from inspiremusic.cli.inference import env_variables
if __name__ == "__main__":
env_variables()
model = InspireMusic(model_name = "InspireMusic-Base")
# 仅使用音频提示
model.inference("continuation", None, "audio_prompt.wav")
# 使用文本提示和音频提示
model.inference("continuation", "Continue to generate jazz music.", "audio_prompt.wav")
📦 模型
下载模型
你可以下载我们预训练的 InspireMusic 模型用于音乐生成:
# 使用 git 下载模型,请确保已安装 git lfs
mkdir -p pretrained_models
git clone https://www.modelscope.cn/iic/InspireMusic.git pretrained_models/InspireMusic
可用模型
目前,我们开源了支持 24KHz 单声道和 48KHz 立体声音频的音乐生成模型。下表列出了 ModelScope 和 Huggingface 模型库的链接:
模型名称 | 模型链接 | 备注 |
---|---|---|
InspireMusic-Base-24kHz | 预训练音乐生成模型,24kHz 单声道,30s | |
InspireMusic-Base | 预训练音乐生成模型,48kHz,30s | |
InspireMusic-1.5B-24kHz | 预训练音乐生成 1.5B 模型,24kHz 单声道,30s | |
InspireMusic-1.5B | 预训练音乐生成 1.5B 模型,48kHz,30s | |
InspireMusic-1.5B-Long | 预训练音乐生成 1.5B 模型,48kHz,支持长达数分钟的长形式音乐生成 | |
InspireSong-1.5B | 预训练歌曲生成 1.5B 模型,48kHz 立体声 | |
InspireAudio-1.5B | 预训练音频生成 1.5B 模型,48kHz 立体声 | |
Wavtokenizer[1] (75Hz) | 用于 24kHz 音频的极低比特率音频分词器,带有一个码本。 | |
Music_tokenizer (75Hz) | 基于 HifiCodec[3] 的 24kHz 音频音乐分词器。 | |
Music_tokenizer (150Hz) | 基于 HifiCodec[3] 的 48kHz 音频音乐分词器。 |
💻 使用示例
训练
训练 LLM 模型
以下是一个训练 LLM 模型的示例,支持 BF16/FP16 训练:
torchrun --nnodes=1 --nproc_per_node=8 \
--rdzv_id=1024 --rdzv_backend="c10d" --rdzv_endpoint="localhost:0" \
inspiremusic/bin/train.py \
--train_engine "torch_ddp" \
--config conf/inspiremusic.yaml \
--train_data data/train.data.list \
--cv_data data/dev.data.list \
--model llm \
--model_dir `pwd`/exp/music_generation/llm/ \
--tensorboard_dir `pwd`/tensorboard/music_generation/llm/ \
--ddp.dist_backend "nccl" \
--num_workers 8 \
--prefetch 100 \
--pin_memory \
--deepspeed_config ./conf/ds_stage2.json \
--deepspeed.save_states model+optimizer \
--fp16
训练流匹配模型
以下是一个训练流匹配模型的示例,不支持 FP16 训练:
torchrun --nnodes=1 --nproc_per_node=8 \
--rdzv_id=1024 --rdzv_backend="c10d" --rdzv_endpoint="localhost:0" \
inspiremusic/bin/train.py \
--train_engine "torch_ddp" \
--config conf/inspiremusic.yaml \
--train_data data/train.data.list \
--cv_data data/dev.data.list \
--model flow \
--model_dir `pwd`/exp/music_generation/flow/ \
--tensorboard_dir `pwd`/tensorboard/music_generation/flow/ \
--ddp.dist_backend "nccl" \
--num_workers 8 \
--prefetch 100 \
--pin_memory \
--deepspeed_config ./conf/ds_stage2.json \
--deepspeed.save_states model+optimizer
推理
快速推理示例
cd InspireMusic/examples/music_generation/
sh infer.sh
正常模式推理
以下是一个在正常模式下运行推理的示例,即使用流匹配模型进行文本到音乐和音乐续写任务:
pretrained_model_dir = "pretrained_models/InspireMusic/"
for task in 'text-to-music' 'continuation'; do
python inspiremusic/bin/inference.py --task $task \
--gpu 0 \
--config conf/inspiremusic.yaml \
--prompt_data data/test/parquet/data.list \
--flow_model $pretrained_model_dir/flow.pt \
--llm_model $pretrained_model_dir/llm.pt \
--music_tokenizer $pretrained_model_dir/music_tokenizer \
--wavtokenizer $pretrained_model_dir/wavtokenizer \
--result_dir `pwd`/exp/inspiremusic/${task}_test \
--chorus verse
done
快速模式推理
以下是一个在快速模式下运行推理的示例,即不使用流匹配模型进行文本到音乐和音乐续写任务:
pretrained_model_dir = "pretrained_models/InspireMusic/"
for task in 'text-to-music' 'continuation'; do
python inspiremusic/bin/inference.py --task $task \
--gpu 0 \
--config conf/inspiremusic.yaml \
--prompt_data data/test/parquet/data.list \
--flow_model $pretrained_model_dir/flow.pt \
--llm_model $pretrained_model_dir/llm.pt \
--music_tokenizer $pretrained_model_dir/music_tokenizer \
--wavtokenizer $pretrained_model_dir/wavtokenizer \
--result_dir `pwd`/exp/inspiremusic/${task}_test \
--chorus verse \
--fast
done
硬件要求
之前在 H800 GPU 上的测试表明,InspireMusic 可以以实时因子(RTF)约 1.6~1.8 生成 30 秒的音频。对于正常模式,我们建议使用至少 24GB GPU 内存的硬件以获得更好的体验。对于快速模式,12GB GPU 内存就足够了。
📄 许可证
引用
@misc{InspireMusic2025,
title={InspireMusic: Integrating Super Resolution and Large Language Model for High-Fidelity Long-Form Music Generation},
author={Chong Zhang and Yukun Ma and Qian Chen and Wen Wang and Shengkui Zhao and Zexu Pan and Hao Wang and Chongjia Ni and Trung Hieu Nguyen and Kun Zhou and Yidi Jiang and Chaohong Tan and Zhifu Gao and Zhihao Du and Bin Ma},
year={2025},
eprint={2503.00084},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2503.00084},
}
免责声明
以上内容仅用于研究目的,旨在展示技术能力。部分示例来源于互联网,如果任何内容侵犯了您的权益,请联系我们进行删除。







