見出し画像

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の特定のフォルダに保存します。

注意として、事前にMusicGenという名前のフォルダを 'drive/MyDrive/MusicGen' に作成しておく必要があります。

import shutil

destination_folder_path = '/content/drive/MyDrive/MusicGen/'
shutil.copy(mp3_path, destination_folder_path)

以上で、GoogleColab上でのMusicGenの利用と、生成された音楽のGoogleDriveへの保存が完了しました。お好きなテキストで様々なジャンルや特徴を持った音楽を生成し、楽しんでください!

商用利用も可能なので、Youtube のBGMなどにも生成した音楽を使えるみたいですね!AI が進歩することでクリエイティブがはかどりますね!

参考


いいなと思ったら応援しよう!