模型简介
模型特点
模型能力
使用案例
🚀 InspireMusic
InspireMusic是一个专注于音乐、歌曲和音频生成的统一工具包。它结合了音频标记器、自回归Transformer和超分辨率流匹配模型,能够生成高质量、长格式的音频,支持文本到音乐、音乐续写等多种任务。
🚀 快速开始
模型下载
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")
✨ 主要特性
- 统一的音乐、歌曲和音频生成工具包。
- 生成高质量的音乐。
- 支持长格式音乐生成。
- 支持多种任务,包括文本到音乐、音乐续写、音乐重建和音乐超分辨率。
📦 安装指南
克隆仓库
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
docker build -t inspiremusic .
docker run -ti --gpus all -v .:/workspace/InspireMusic inspiremusic
使用 Docker Compose
docker compose up -d --build
docker exec -ti inspire-music bash
💻 使用示例
基础用法
以下是一个快速推理示例:
cd InspireMusic/examples/music_generation/
sh infer.sh
高级用法
训练 LLM 模型
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
训练流匹配模型
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
正常模式推理
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
📚 详细文档
InspireMusic 框架概述
InspireMusic 是一个用于音乐、歌曲和音频生成的统一框架,能够生成高质量的长格式音频。它主要由以下三个关键组件组成:
- 音频标记器(Audio Tokenizers):将原始音频波形转换为离散的音频标记,以便自回归Transformer模型进行高效处理和训练。较低采样率的音频波形通过高比特率压缩音频标记器转换为离散标记。
- 自回归Transformer模型(Autoregressive Transformer):以 Qwen2.5 为骨干模型,采用下一个标记预测方法对文本和音频标记进行训练,能够生成连贯且上下文相关的标记序列。
- 超分辨率流匹配模型(Super-Resolution Flow-Matching Model):基于流建模方法,将生成的标记映射到具有高分辨率细粒度声学细节的潜在特征,确保声学信息通过模型以高保真度连接。最后,声码器从这些增强的潜在特征中生成最终的音频波形。
可用模型
模型名称 | 模型链接 | 备注 |
---|---|---|
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 音频音乐标记器 |
硬件要求
之前在 H800 GPU 上的测试表明,InspireMusic 可以以约 1.6~1.8 的实时因子(RTF)生成 30 秒的音频。对于正常模式,建议使用至少 24GB GPU 内存的硬件以获得更好的体验。对于快速模式,12GB GPU 内存就足够了。
🔧 技术细节
音频标记器
音频标记器将原始音频波形转换为离散的音频标记,以便自回归Transformer模型进行处理。较低采样率的音频波形通过高比特率压缩音频标记器转换为离散标记。
自回归Transformer模型
基于 Qwen2.5 作为骨干模型,采用下一个标记预测方法对文本和音频标记进行训练,能够生成连贯且上下文相关的标记序列。
超分辨率流匹配模型
基于流建模方法,将生成的标记映射到具有高分辨率细粒度声学细节的潜在特征,确保声学信息通过模型以高保真度连接。
📄 许可证
文档中未提及许可证相关信息。
引用
@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 演示页面。







