模型简介
模型特点
模型能力
使用案例
🚀 InspireMusic
InspireMusic 是一个专注于音乐、歌曲和音频生成的统一工具包,能以高质量完成长形式音乐生成任务,为用户带来优质的音频创作体验。
感谢大家支持,请给我们的项目点个星吧!
亮点 | 介绍 | 安装指南 | 快速开始 | 教程 | 模型 | 联系我们
✨ 主要特性
InspireMusic 专注于音乐生成、歌曲生成和音频生成,具备以下特性:
- 专为音乐、歌曲和音频生成设计的统一工具包。
- 能够完成高质量的音乐生成任务。
- 支持长形式音乐生成。
📚 详细文档
介绍
⚠️ 重要提示
此仓库包含算法基础设施和一些简单示例,目前仅支持英文文本提示。
💡 使用建议
若要预览效果,请参考 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
# 或者你可以手动下载 third_party 仓库 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
一键推理
文本到音乐任务
文本到音乐任务的一键 Shell 脚本:
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.")
音乐延续任务
音乐延续任务的一键 Shell 脚本:
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 音频音乐分词器。 |
基本用法
目前,InspireMusic 包含 音乐生成 的训练和推理代码。
训练
以下是训练 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 可以以约 1.6 - 1.8 的实时因子(RTF)生成 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},
}
免责声明
上述内容仅用于研究目的,旨在展示技术能力。部分示例来源于互联网。如果任何内容侵犯了您的权益,请联系我们要求删除。







