模型概述
模型特點
模型能力
使用案例
🚀 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},
}
免責聲明
上述內容僅用於研究目的,旨在展示技術能力。部分示例來源於互聯網。如果任何內容侵犯了您的權益,請聯繫我們要求刪除。







