「メタのMusicGenを使用してColabで音楽を生成する」
「メタのMusicGenを使ってColabで音楽を作る方法」
人工知能の広大な領域の中で、深層学習は自然言語処理、コンピュータビジョン、音声認識など、多岐にわたり革命を起こしました。しかし、研究者や音楽愛好家を魅了しているのは、人工知能アルゴリズムを使った音楽生成という魅力的な領域です。MusicGenは最先端の制御可能なテキストから音楽に翻訳するモデルであり、魅力的な楽曲を作曲します。
MusicGenとは?
MusicGenは、簡易さと制御性を提供する音楽生成用の驚異的なモデルです。MusicLMなどの既存の手法とは異なり、MusicGenは自己教師ありセマンティック表現の必要性を排除しました。このモデルは単一段階の自己回帰型Transformerアーキテクチャを採用しており、32kHzのEnCodecトークナイザを使用して訓練されています。特筆すべきは、MusicGenがすべてのコードブックを1回のパスで生成することであり、従来の手法とは異なる特徴です。コードブック間にわずかな遅延を導入することで、モデルはそれらを並列に予測する能力を示し、オーディオごとにわずか50の自己回帰ステップを必要とします。この革新的なアプローチにより、音楽生成プロセスの効率とスピードが最適化されます。
MusicGenは、20,000時間のライセンス付き音楽で訓練されています。また、10,000曲の高品質な内部データセット、ShutterStockおよびPond5の音楽データでも訓練されています。
必要条件:
公式のMusicGen GitHubリポジトリによると:
- オリゴが警告を発しています:TorchServeの重大なセキュリティの問題により、ハッカーはサーバを乗っ取り、悪意のあるAIモデルを注入することができます
- このAIの論文は、FELM:大規模な言語モデルの事実性評価のベンチマーキングを紹介します
- 「Pythonにおける顧客セグメント分析:実践的なアプローチ」
- 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")
完全な実装(Google Colabファイルリンク)
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- このAIニュースレターはあなたが必要なものです #68
- 「分類メトリックの理解:モデルの精度評価ガイド」
- ソフトウェア開発のパラダイムシフト:GPTConsoleの人工知能AIエージェントが新たな地平を開く
- 「Dockerが「Docker AI」を発表:コンテキスト認識自動化が開発者の生産性に革新をもたらす」
- このNVIDIAのAI論文は、検索補完と長い文脈の力を探求しています:どちらが優れているのか、そしてそれらは共存できるのか?
- ミストラルAIのミストラル7Bファンデーションモデルは、Amazon SageMaker JumpStartで利用可能です
- 私たちはどのように大規模な言語モデルをストリーミングアプリケーションで効率的に展開できるのでしょうか?このAI論文では、無限のシーケンス長のためのStreamingLLMフレームワークを紹介しています