はじめに
このノートブックでは、オープンソースの音楽生成モデル「YuE(乐)」を使って、歌詞から完全な楽曲を生成する方法を説明します。YuEは歌声トラックと伴奏を含む数分間の完全な楽曲を生成できます。
環境のセットアップ
まず必要な環境をセットアップしましょう。Python 3.8以上を推奨します。
# FlashAttention 2のインストール (重要)
!pip install flash-attn --no-build-isolation
CUDA環境の設定
FlashAttentionを使用するために、CUDA環境を正しく設定する必要があります。以下はCUDA 11.8を使用する場合の例です:
# CUDA環境の設定
import os
os.environ['PATH'] = '/usr/local/cuda-11.8/bin:' + os.environ['PATH']
os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda-11.8/lib64:' + os.environ['LD_LIBRARY_PATH']
YuEのソースコードの取得
Git LFSをインストールしてからリポジトリをクローンします:
# Git LFSのインストール
!apt-get install git-lfs
!git lfs install
# リポジトリのクローン
!git clone https://github.com/multimodal-art-projection/YuE.git
# 必要なパッケージのインストール
!cd YuE && pip install -r requirements.txt
!cd YuE/inference/ && git clone https://huggingface.co/m-a-p/xcodec_mini_infer
# 既存のprotobufをアンインストール
!pip uninstall -y protobuf
# 互換性のあるバージョンのprotobufをインストール
!pip install protobuf==3.20.0
# TensorFlowを再インストール
!pip install --upgrade tensorflow
# transformersを再インストール
!pip install --upgrade transformers
import sys
import tensorflow as tf
from transformers import AutoFeatureExtractor, WhisperModel
print(f"Python version: {sys.version}")
print(f"TensorFlow version: {tf.__version__}")
#print(f"Protobuf version: {tf.version.PROTOBUF_VERSION}")
基本的な音楽生成
オープンソース版Suno「YuE」 動かしました!!!
普通にめちゃよいです!!!
*Google colabのノートブックは後ほど展開します! https://t.co/hXQWuAGTCq pic.twitter.com/f3KIgYtdh8— Maki@Sunwood AI Labs. (@hAru_mAki_ch) January 28, 2025
オープンソース版Suno「YuE」 動かしました!!!②
BGMとボーカルで分かれて生成されるのがマジでデカい
取り回しが良すぎる!!!!
*Google colabのノートブックは後ほど展開します! https://t.co/uLd6vZWkpz pic.twitter.com/Au83ilytqL— Maki@Sunwood AI Labs. (@hAru_mAki_ch) January 28, 2025
以下のスクリプトで基本的な音楽生成を行えます:
!cd YuE/inference/ && python infer.py \
--stage1_model m-a-p/YuE-s1-7B-anneal-en-cot \
--stage2_model m-a-p/YuE-s2-1B-general \
--genre_txt prompt_examples/genre.txt \
--lyrics_txt prompt_examples/lyrics.txt \
--run_n_segments 2 \
--stage2_batch_size 4 \
--output_dir ./output \
--cuda_idx 0 \
--max_new_tokens 3000
!pwd
!ls -al
オーディオプロンプトを使用した生成
オープンソース版Suno「YuE」 動かしました!!!③
音楽を入力として生成してみた!
確かに元音楽の面影あるかも!!!! https://t.co/x3e5deN6VX pic.twitter.com/Wm4J9nmf4G— Maki@Sunwood AI Labs. (@hAru_mAki_ch) January 28, 2025
既存の音楽をプロンプトとして使用することもできます:
!cd YuE/inference/ && python infer.py \
--stage1_model m-a-p/YuE-s1-7B-anneal-en-icl \
--stage2_model m-a-p/YuE-s2-1B-general \
--genre_txt prompt_examples/genre.txt \
--lyrics_txt prompt_examples/lyrics.txt \
--run_n_segments 2 \
--stage2_batch_size 4 \
--output_dir ./output \
--cuda_idx 0 \
--max_new_tokens 3000 \
--audio_prompt_path /content/CatSymphony.mp3 \
--prompt_start_time 0 \
--prompt_end_time 30
重要な注意点 ⚠️
-
GPUメモリの使用について:
- 24GB以下のGPUメモリの場合: 最大2セッション
- フルソング生成(4セッション以上)の場合: 80GB以上のGPUメモリを推奨
-
実行時間の目安:
- H800 GPU: 30秒の音声生成に約150秒
- RTX 4090 GPU: 30秒の音声生成に約360秒
-
ジャンルタグの設定:
- 5つの要素を含めることを推奨: ジャンル、楽器、ムード、性別、音色
- 例:
[Genre] inspiring female uplifting pop airy vocal electronic bright vocal vocal
-
歌詞セグメントの長さ:
max_new_tokens=3000
の場合、セグメントの最大長は約30秒- 歌詞の長さをこの時間枠に合わせることが重要
これでYuEを使った音楽生成の基本が整いました!実験して素晴らしい音楽を作成してみましょう!
コメント