模型简介
模型特点
模型能力
使用案例
🚀 InspireMusic
InspireMusic是一个专注于音乐、歌曲和音频生成的统一工具包。它能够利用文本和音频提示,可控地生成高质量的音乐,支持文本到音乐、音乐续写、音乐重建和音乐超分辨率等多种任务。
🚀 快速开始
快速推理示例
以下是一个用于音乐生成的快速推理脚本:
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")
✨ 主要特性
- 统一的音乐、歌曲和音频生成工具包。
- 能够生成高质量的音乐。
- 支持长格式音乐生成。
📦 安装指南
克隆仓库
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
📚 详细文档
InspireMusic框架概述
![]() |
图1:InspireMusic框架概述。我们介绍了InspireMusic,这是一个用于音乐、歌曲和音频生成的统一框架,能够生成高质量的长格式音频。InspireMusic由以下三个关键组件组成。音频分词器将原始音频波形转换为离散的音频标记,这些标记可以由自回归Transformer模型高效处理和训练。较低采样率的音频波形通过高比特率压缩音频分词器[1]转换为离散标记。自回归Transformer模型基于Qwen2.5[2]作为骨干模型,并使用下一个标记预测方法在文本和音频标记上进行训练,使其能够生成连贯且上下文相关的标记序列。音频和文本标记是自回归模型的输入,通过下一个标记预测生成标记。超分辨率流匹配模型基于流建模方法,将生成的标记映射到具有高分辨率细粒度声学细节的潜在特征[3],这些特征从更高采样率的音频中获得,以确保声学信息流通过模型以高保真度连接。然后,声码器从这些增强的潜在特征中生成最终的音频波形。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内存就足够了。
🔧 技术细节
InspireMusic是一个通过音频分词与自回归Transformer和基于流匹配的模型集成的统一音乐、歌曲和音频生成框架。其主要动机是使普通用户能够通过音乐、歌曲和音频创作在研究中创新音景并增强美感。该工具包为基于AI的生成模型提供了训练和推理代码,能够创建高质量的音乐。
📄 许可证
文档中未提及相关信息。
📖 引用
@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},
}
⚠️ 免责声明
上述内容仅用于研究目的,旨在展示技术能力。部分示例来自互联网。如果任何内容侵犯了您的权益,请联系我们要求删除。
⚠️ 重要提示
本仓库包含算法基础设施和一些简单示例,目前仅支持英文文本提示。
💡 使用建议
要预览性能,请参考InspireMusic演示页面。







