GoogleColab+MusicGenで生成した音楽をGoogleDriveに保存する
MusicGen は Meta 社が公開した音声生成 AI「Audio Craft」に含まれる音楽生成モデルです。MusicGen はテキストから音楽を生成する驚くべきツールです。このブログでは、Google Colab 上で MusicGen を使用し、生成した音楽をGoogleDriveに保存する方法を解説します。
Music Gen は、以下からも簡単に試すことができます!
※以下のコードは、Google Colab の T4 GPU 環境で実行しました。
1. パッケージのインストール
まずはAudio Craftをインストールします。
!git clone https://github.com/facebookresearch/audiocraft/
%cd audiocraft
!pip install -e .
2. 必要なライブラリのインストール
次に、音声ファイルの操作に必要なライブラリをインストールします。
!pip install soundfile
!pip install pydub
!apt install ffmpeg
3. Google Driveのマウント
GoogleDriveに生成された音楽を保存するため、Google Driveをマウントします。Google Drive への接続許可を求められますので「Google ドライブに接続」してください。
from google.colab import drive
drive.mount('/content/drive')
content の下に drive が追加されれば、Google Driveのマウントは成功です。
4. モデルのダウンロード
MusicGenモデルをロードします。
from audiocraft.models import MusicGen
model = MusicGen.get_pretrained('facebook/musicgen-small')
5. モデルの設定
ここで音楽の生成パラメータを設定します。例として、60秒の最大長、サンプリングを使用、およびtop_k=250の設定を行います。
model.set_generation_params(
use_sampling=True,
top_k=250,
duration=60 #最大の秒数
)
6. 音声データの生成
指定したテキストから音楽を生成します。ここでは「Jazz funk song with slap bass and powerful saxophone」を例としていますが、他のジャンルや特徴を持った音楽もテキストから生成可能です。
from audiocraft.utils.notebook import display_audio
# 音楽の生成
output = model.generate(
descriptions=[
'Jazz funk song with slap bass and powerful saxophone'
],
progress=True, return_tokens=True
)
# 生成結果を出力
display_audio(output[0], sample_rate=44100)
7. MP3に変換
生成した音楽データをMP3フォーマットに変換します。
from pydub import AudioSegment
import soundfile as sf
# ファイル名をここで設定
file_name = 'temp_audio'
audio_data_cpu = output[0].cpu().numpy()
audio_data_reshaped = audio_data_cpu.reshape(-1, 1)
# WAV形式で一時的に保存
temp_wav_path = '/content/' + file_name +'.wav'
sf.write(temp_wav_path, audio_data_reshaped, 44100)
# MP3形式に変換
audio_segment = AudioSegment.from_wav(temp_wav_path)
mp3_path = '/content/' + file_name +'.mp3'
audio_segment.export(mp3_path, format="mp3")
8. Google Driveに保存
最後に、生成したMP3ファイルをGoogle Driveの特定のフォルダに保存します。
import shutil
destination_folder_path = '/content/drive/MyDrive/MusicGen/'
shutil.copy(mp3_path, destination_folder_path)
以上で、GoogleColab上でのMusicGenの利用と、生成された音楽のGoogleDriveへの保存が完了しました。お好きなテキストで様々なジャンルや特徴を持った音楽を生成し、楽しんでください!
商用利用も可能なので、Youtube のBGMなどにも生成した音楽を使えるみたいですね!AI が進歩することでクリエイティブがはかどりますね!