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パーソナライゼーション革命をリード

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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

MySQL インデックスの背後にあるデータ構造とアルゴリズムの基礎

インデックスの性質MySQL のインデックスの公式定義は次のとおりです: インデックスは、MySQL...

自動車開発者エコロジー戦略の調印式が成功裏に開催されました

2021年10月20日、国家インテリジェントコネクテッドビークルイノベーションセンター(以下、「イノ...

Giskard: AI モデル向けのオープンソース品質管理

翻訳者 |ブガッティレビュー | Chonglou実稼働環境で AI モデルの品質を確保することは複...

GPU 価格の急激な下落はチップ不足が終わった兆候でしょうか?

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

自然言語処理にディープラーニングを使用するにはどうすればよいでしょうか?練習チェックリストはこちら

[[198324]]導入この記事は、自然言語処理 (NLP) にニューラル ネットワークを使用する方...

3つのステップで声紋システムを構築する方法

背景声紋検索は、その名前が示すように、話者認識であり、音を通じて話者の声を確認または識別します。声紋...

...

エッジデバイステクノロジー市場で入手可能なトップエッジAIソリューション

エッジコンピューティングと人工知能の組み合わせにより、エッジ人工知能 (エッジ AI) は現在のテク...

ビッグデータと人工知能の分野で初心者から専門家になるためのガイド

私たちは「技術の爆発」と「共有とオープンソース」の時代に生きています。先進技術の更新と反復の速度は、...

...

GenAIがより良い回答を提供するためのヒント

GenAI は、ユーザーが独自の方法でデータをクエリし、ニーズに合わせた回答を受け取ることができるイ...

マイクロソフト、言語モデルの推論機能を向上させるXOT方式を発表

マイクロソフトは11月15日、Google DeepMindのAlphaZeroにヒントを得て、コン...

...