模型概述
模型特點
模型能力
使用案例
🚀 InspireMusic
InspireMusic 是一個專注於音樂、歌曲和音頻生成的統一工具包。它集成了音頻分詞器、自迴歸變壓器和基於流匹配的模型,能夠生成高質量的長音頻,支持文本到音樂、音樂續寫等多種任務。
感謝大家支持,歡迎給項目點個 Star!
亮點 | 介紹 | 安裝指南 | 快速開始 | 教程 | 模型 | 聯繫我們
✨ 主要特性
- 統一工具包:專為音樂、歌曲和音頻生成設計的統一框架。
- 高質量音頻:能夠生成高質量的音樂,滿足專業需求。
- 長音頻生成:支持長形式的音樂生成,可生成長達數分鐘的音樂。
📚 詳細文檔
⚠️ 重要提示
本倉庫包含算法基礎架構和一些簡單示例,目前僅支持英文文本提示。
💡 使用建議
如需預覽模型性能,請訪問 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
# 或者你可以手動下載第三方倉庫 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
一鍵推理
文本到音樂任務
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")
📦 模型
下載模型
你可以下載我們預訓練的 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 音頻音樂分詞器。 |
💻 使用示例
訓練
訓練 LLM 模型
以下是一個訓練 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 可以以即時因子(RTF)約 1.6~1.8 生成 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},
}
免責聲明
以上內容僅用於研究目的,旨在展示技術能力。部分示例來源於互聯網,如果任何內容侵犯了您的權益,請聯繫我們進行刪除。







