「メタの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の10年からの教訓」

「生成AIの未来を理解するためには、それがどこから来たのか、そして技術とともに進化する課題と機会を見ることが役立ちます」

人工知能

バードの未来展望:よりグローバルで、よりビジュアル的で、より統合されたもの

「Bardのウェイトリストを終了し、より多くの地域をサポートするようになり、画像を導入し、パートナーアプリと連携すること...

AIニュース

「OpenAIのAI検出ツールは、AIによって生成されたコンテンツの74%を検出できない」

OpenAIは、画期的な生成型AIチャットボットChatGPTの製造元であり、最近、AI分類ツールの提供を中止したことで話題となりまし...

機械学習

「MFAを超えて:オクタがエンタープライズアイデンティティを再定義する方法」

新しい解決策は、AIと自動化を活用して企業のセキュリティ姿勢を強化し、従業員の生産性を高めます

AIニュース

「AIで生成されたコードはさらにテストが必要ですか?」

「AIを搭載したツールを使用すれば、アプリケーションのプログラミングが簡単になりますしかし、人間によって書かれたコード...

データサイエンス

「スコア!チームNVIDIAが推薦システムでトロフィーを獲得」

4つの大陸に広がる5人の機械学習のエキスパートで構成されるクラックチームが、最先端の推薦システムを構築するための激しい...