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







