Colab で Meta の MusicGen を使用して音楽を生成する方法

Colab で Meta の MusicGen を使用して音楽を生成する方法

翻訳者 |李睿

レビュー | Chonglou

人工知能の幅広い分野において、ディープラーニングは自然言語処理、コンピュータービジョン、音声認識など多くの領域に革命をもたらしました。しかし、研究者や音楽愛好家を同様に魅了する魅力的な分野は、人工知能アルゴリズムを使用した音楽の生成です。 MusicGen は、テキスト キューを魅力的な音楽作品にシームレスに変換できる、最も高度な制御可能なテキストから音楽への変換モデルの 1 つです。

MusicGenとは何ですか?

MusicGen は、シンプルさと制御性を備えた音楽生成用に設計された優れたモデルです。 MusicLM などの既存の方法とは異なり、MusicGen は自己教師付きセマンティック表現の必要性を排除することで際立っています。このモデルは、シングルステージの自己回帰トランスフォーマーアーキテクチャを使用し、32kHz エンコーダー トークナイザーを使用してトレーニングされます。注目すべきは、MusicGen が従来の方法とは異なり、一度に 4 つのコードブックすべてを生成できることです。コードブック間にわずかな遅延を導入することで、モデルはそれらを並行して予測する能力を示し、1 秒あたりわずか 50 ステップでオーディオの自己回帰を実現します。この革新的なアプローチにより、音楽生成プロセスの効率と速度が最適化されます。

MusicGen は 20,000 時間のライセンス音楽を使用してトレーニングされました。開発者らは、ShutterStock と Pond5 の音楽データに加え、10,000 曲の高品質音楽トラックの社内データセットでもトレーニングを行いました。

前提条件

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

  • Python 3.9
  • パイトーチ2.0.0
  • 少なくとも16 GBのメモリを搭載したGPU

利用可能なMusicGenモデル

事前トレーニング済みモデルには次の 4 種類があります。

  • 小型: 300M モデル、テキストから音楽への変換のみ
  • 中規模: 1.5B モデル、テキストから音楽への変換のみ
  • メロディー: 1.5B モデル、テキストから音楽、テキスト + メロディから音楽
  • ラージ: 3.3B モデル、テキストから音楽への変換のみ

実験

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

 Text Input: Jingle bell tune with violin and piano Output: (Using MusicGen "large" model)

以下は MusicGen メロディー モデルの出力です。上記の音声とテキスト入力を使用して、次の音声を生成します

 Text Input: Add heavy drums drums and only drums Output: (Using MusicGen "melody" model)

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 musicgen from audiocraft.utils.notebook import display_audio import torchfrom audiocraft.data.audio import audio_write

モデルをロードします。モデルリストは次のとおりです。

 # | model types are => small, medium, melody, large | # | size of models are => 300M, 1.5B, 1.5B, 3.3B | model = musicgen.MusicGen.get_pretrained('large', device='cuda')

設定パラメータ(オプション) :

 model.set_generation_params(duratinotallow=60) # this will generate 60 seconds of audio.

条件付き音楽生成(テキストを提供することで音楽を生成します)。

 model.set_generation_params(duratinotallow=60) res = model.generate( [ 'Jingle bell tune with violin and piano' ], progress=True) # This will show the music controls on the colab

無条件の音楽生成:

 res = model.generate_unconditional( num_samples=1, progress=True) # this will show the music controls on the screendisplay_audio(res, 16000)

1.音楽の継続を生成する

音楽の続きを作成するには、オーディオ ファイルが必要です。そのファイルをモデルに渡すと、さらに音楽が生成され、追加されます。

 from audiocraft.utils.notebook import display_audio import torchaudio path_to_audio = "path-to-audio-file.wav" description = "Jazz jazz and only jazz" # Load audio from a file. Make sure to trim the file if it is too long! prompt_waveform, prompt_sr = torchaudio.load( path_to_audio ) prompt_duration = 15 prompt_waveform = prompt_waveform[..., :int(prompt_duration * prompt_sr)] output = model.generate_continuation(prompt_waveform, prompt_sample_rate=prompt_sr, descriptinotallow=[ description ], progress=True) display_audio(output, sample_rate=32000)

メロディー条件生成を生成します:

 model = musicgen.MusicGen.get_pretrained('melody', device='cuda') model.set_generation_params(duratinotallow=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( descriptinotallow=['Add heavy drums'], melody_wavs=melody_waveform, melody_sample_rate=sr,progress=True) display_audio(output, sample_rate=32000)

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

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

 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("error while writing the file ", e) return None # this will write a file that starts with bollywood write_wav(res, "audio-file")

2.完全な実装(Google Colab ファイル リンク)

Meta の MusicGen ライブラリの完全な実装は、Colab ファイルに記載されています。音楽を自由に探索し、作成するために使用します。

結論は

要約すると、Audiocraft の MusicGen は強力で制御可能な音楽生成モデルです。将来的には、Audiocraft は AI 生成音楽の将来の発展に向けて刺激的な可能性を秘めています。ミュージシャンでも AI 愛好家でも、Audiocraft の MusicGen は創造性の世界を広げます。

原題: Colab で Meta の MusicGen を使用して音楽を生成する、著者: Mittal Patel

<<:  テーラーメイド:ChatGPTカスタム指示がAIパーソナライゼーション革命をリード

>>:  通信ネットワーク運用イベントのナレッジグラフの構築

ブログ    
ブログ    
ブログ    

推薦する

プログラマーから見たChatGPT

著者 |ブライト・リャオ私はもともとAI技術に興味があったソフトウェア開発エンジニアで、ディープラー...

科学者は機械学習を利用して結晶構造の酸化状態の謎を解明する

化学元素は物理世界のほぼすべてを構成しています。 2016 年現在、人類が知っている元素の数は 11...

MIT、Wikipedia の更新、間違いの修正、偽ニュースの特定を行う AI 編集システムを開始

[[334141]]誰でも編集できるオンライン百科事典である Wikipedia では、各エントリを...

権威ある業界レポートが発表されました。我が国のロボット開発の特徴と傾向は何ですか?

ロボットは「製造業の至宝」とみなされており、ロボット産業の発展は国家のイノベーションと産業競争力の向...

最も人気のある 5 つの人工知能プログラミング言語の比較。1 つだけでも学ぶ価値があります。

ほとんどのソフトウェア アプリケーション開発と同様に、開発者は複数の言語を使用して AI プロジェク...

...

MIT は Google と提携して 7 台のマルチタスク ロボットをトレーニングし、9,600 のタスクで 89% の成功率を達成しました。

タスクの数が増えるにつれて、現在の計算方法を使用して汎用の日常的なロボットを構築するコストは法外なも...

人工知能の今後の発展方向は何でしょうか?

最初のトレンドは、すべてのIT大手がAIクラウドサービスに多額の投資を行うことです。AI-aaS、つ...

...

人工知能は都市をよりインテリジェントに発展させる力を与える

人工知能などのハイテク手段を基盤として構築された都市脳は、都市の経済発展のための「ブラックテクノロジ...

...

...

Python か Java か? 2020年、優秀なプログラマーが習得すべき7つのプログラミング言語

どのプログラミング言語が最適ですか?この質問には答えがないかもしれません。人によって好みは異なります...

NLPの問題の90%を解決する方法を段階的に教えます

[[223595]]はじめに: この記事では、著者の Emmanuel Ameisen が、機械学習...