「メタのMusicGenを使用してColabで音楽を生成する」

「メタのMusicGenを使ってColabで音楽を作る方法」

人工知能の広大な領域の中で、深層学習は自然言語処理、コンピュータビジョン、音声認識など、多岐にわたり革命を起こしました。しかし、研究者や音楽愛好家を魅了しているのは、人工知能アルゴリズムを使った音楽生成という魅力的な領域です。MusicGenは最先端の制御可能なテキストから音楽に翻訳するモデルであり、魅力的な楽曲を作曲します。

MusicGenとは?

MusicGenは、簡易さと制御性を提供する音楽生成用の驚異的なモデルです。MusicLMなどの既存の手法とは異なり、MusicGenは自己教師ありセマンティック表現の必要性を排除しました。このモデルは単一段階の自己回帰型Transformerアーキテクチャを採用しており、32kHzのEnCodecトークナイザを使用して訓練されています。特筆すべきは、MusicGenがすべてのコードブックを1回のパスで生成することであり、従来の手法とは異なる特徴です。コードブック間にわずかな遅延を導入することで、モデルはそれらを並列に予測する能力を示し、オーディオごとにわずか50の自己回帰ステップを必要とします。この革新的なアプローチにより、音楽生成プロセスの効率とスピードが最適化されます。

MusicGenは、20,000時間のライセンス付き音楽で訓練されています。また、10,000曲の高品質な内部データセット、ShutterStockおよびPond5の音楽データでも訓練されています。

必要条件:

公式のMusicGen GitHubリポジトリによると:

  • Python 3.9
  • PyTorch 2.0.0
  • 少なくとも16GBのメモリを搭載したGPU

利用可能なMusicGenモデル

以下に、利用可能な事前学習済みモデルとその内容を示します:

  • Small:300Mモデル、テキストから音楽へのみ
  • VoAGI:1.5Bモデル、テキストから音楽へのみ
  • Melody:1.5Bモデル、テキストから音楽およびテキスト+メロディから音楽へ
  • Large:3.3Bモデル、テキストから音楽へのみ

実験

以下は、MusicGenの大規模モデルを使用した条件付き音楽生成の出力です。

テキスト入力:バイオリンとピアノを使ったジングルベルのメロディ

出力:(MusicGen "large"モデルを使用)

以下は、MusicGenの「メロディ」モデルの出力です。上記の音声およびテキスト入力を使用して、以下の音声を生成しました。

テキスト入力:重たいドラムを追加し、ドラムのみ

出力:(MusicGen "melody"モデルを使用)

ColabでのMusicGenの設定方法

より高速な推論のためにGPUを使用していることを確認してください。CPUを使用して10秒のオーディオを生成するのに約9分かかりますが、GPU(T4)を使用するとわずか35秒で生成できます。

ColabでTorchとTorchAudioがインストールされていることを確認してください。

FacebookのAudioCraftライブラリをインストールします。

!python3 -m pip install -U git+https://github.com/facebookresearch/audiocraft#egg=audiocraft

必要なライブラリをインポートします。

from audiocraft.models import musicgenfrom audiocraft.utils.notebook import display_audioimport torchfrom audiocraft.data.audio import audio_write

モデルをロードします。モデルのリストは以下の通りです:

# | モデルタイプは=> small, VoAGI, melody, large |# | モデルサイズは=> 300M, 1.5B, 1.5B, 3.3B |model = musicgen.MusicGen.get_pretrained('large', device='cuda')

パラメータを設定します(オプション):

model.set_generation_params(duration=60) # これにより、60秒のオーディオが生成されます。

条件付き音楽生成(テキストを指定して音楽を生成)。

model.set_generation_params(duration=60)res = model.generate( [ 'バイオリンとピアノを使ったジングルベルのメロディ' ], progress=True)# これにより、Colab上で音楽のコントロールが表示されます

無条件で音楽を生成するには:

res = model.generate_unconditional( num_samples=1, progress=True) #これにより画面上に音楽コントロールが表示されますdisplay_audio(res, 16000)

音楽の続きを生成するには

音声ファイルが必要です。そのファイルをモデルに与えると、モデルがそれにさらなる音楽を生成して追加します。

from audiocraft.utils.notebook import display_audioimport torchaudio_path_to_audio = "path-to-audio-file.wav"description = "ジャズ、ジャズ、そしてジャズのみ"#ファイルからオーディオをロードします。ファイルが長すぎる場合はトリムしてください!prompt_waveform、prompt_sr = torchaudio.load( path_to_audio )prompeed_duration = 15prompt_waveform = prompt_waveform[..., : int(prompt_duration * prompt_sr)]output = model.generate_continuation(prompt_waveform, prompt_sample_rate=prompt_sr, descriptions=[ description ], progress=True)display_audio(output, sample_rate=32000)

メロディの条件付き生成を行うには:

model = musicgen.MusicGen.get_pretrained('melody', device='cuda')model.set_generation_params(duration=20)melody_waveform、sr = torchaudio.load("path-to-audio-file.wav")melody_waveform = melody_waveform.unsqueeze(0).repeat(2, 1, 1)output = model.generate_with_chroma(descriptions=['重いドラムを追加してください'], melody_wavs=melody_waveform, melody_sample_rate=sr, progress=True)display_audio(output, sample_rate=32000)

オーディオファイルをディスクに書き込みます。

Colabからファイルをダウンロードする場合は、WAVファイルをディスクに書き込む必要があります。次の関数は、モデルの出力を最初の入力、ファイル名を2番目の入力として受け取り、WAVファイルをディスクに書き込みます。

def write_wav(output, file_initials):    try:        for idx, one_wav in enumerate(output):            audio_write(f'{file_initials}_{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)            return True    except Exception as e:        print("ファイル書き込み中にエラーが発生しました ", e)        return None#これにより、bollywoodから始まるファイルが作成されますwrite_wav(res, "audio-file")

MetaのMusicGenライブラリの完全な実装は、Colabファイルで提供されています。是非、それを活用して音楽を作成してください。

まとめ

まとめると、AudiocraftのMusicGenはパワフルでコントロール可能な音楽生成モデルです。これからもAudiocraftはAIによる音楽の進歩に対するエキサイティングな可能性を秘めています。ミュージシャンやAI愛好家にとって、AudiocraftのMusicGenは創造性の可能性を広げる世界を開きます。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

「Nvidiaの画期的なAIイメージパーソナライゼーション:灌流法」

AIアート作成の絶えず進化する世界において、NvidiaはPerfusionと呼ばれる革命的なテキストから画像への個人化手法を発表しま...

データサイエンス

楽しみと利益のために2023年にシンプルなAIアプリケーションを作る

「最近、ソフトウェア市場のこのセグメントがどれほどの関心を集めているかを考えると、独自のAIパワードアプリのプロジェク...

機械学習

このAI論文では、「Lightning Cat」というスマート契約の脆弱性検出ツールを紹介していますこれは、深層学習をベースにしたツールです

スマートコントラクトは、分散型アプリケーションの開発においてブロックチェーン技術で重要な役割を果たしています。スマー...

AI研究

「UCLA研究者がGedankenNetを紹介:物理法則や思考実験から学ぶ自己教示AIモデルが計算機画像処理を進化させる」

深層学習の最近の進展は、計算画像処理、顕微鏡、ホログラフィ関連の分野に大きな影響を与えています。これらの技術は、バイ...

人工知能

レオナルド・ダ・ヴィンチ:天才の心の内部

世界中の28の機関が力を合わせ、レオナルド・ダ・ヴィンチの比類のない遺産を紹介し、芸術、科学、AIイノベーションを融合させる

機械学習

ソフトウェア開発におけるAIの将来:トレンドとイノベーション

「ソフトウェア開発におけるAIの絶え間なく変化する風景を探索してくださいコーディングやプログラミングの未来を形作る新興...