模型概述
模型特點
模型能力
使用案例
🚀 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 演示頁面。







