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

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

ブログ    
ブログ    

推薦する

ネイチャー誌の表紙:AIの翼に乗って、データが計算社会科学を「担う」

シュメール王国の時代から、この賢明な王国の人々はデータを記録し、国勢調査を実施し、食糧を配給し始めま...

AI ソリューションはビジネスの成長にどのように役立ちますか?

企業はどのように AI ソリューションを使用して効率性を向上させ、プロセスを合理化できるのでしょうか...

小さなバッチがディープラーニングの一般化を高める理由

バッチ サイズは、機械学習における重要なハイパーパラメータの 1 つです。このハイパーパラメータは、...

今後 20 年間で人工知能は何ができるでしょうか?

人工知能は長年にわたって世界を支配しており、さまざまな分野における主要な問題が AI を使用して解決...

...

ハイテク:米国は1キロメートル以内のターゲット認識を実現する長距離顔認識システムを開発

海外メディアの報道によると、最近「ニューサイエンス」誌に次のような記事が掲載された。 「米軍は1キロ...

単一画像超解像におけるディープラーニングの応用: SRCNN、知覚損失、SRResNet

[[209375]]単一画像の超解像度では、品質の低下を最小限に抑えながら小さな画像のサイズを拡大...

ファーウェイがGood Vision Cloud Serviceを正式に開始、包括的なマシンビジョンの時代を先導

人工知能技術の台頭とエッジデバイスのコンピューティング能力の向上により、マシンビジョンの応用シナリオ...

...

新しい小売業界における人工知能の応用

インターネットの急速な発展に伴い、伝統的なオフライン小売チャネルは弱体化の兆候を見せ始めており、中国...

...

半年以上前から推進されてきたGoogleの次世代AIアーキテクチャとジェフ・ディーンのPathwaysがついに論文化

現在の AI システムが直面している問題について議論する際、非効率性はよく言及されるものの 1 つで...

...

海洋工学における生成AI:独自のデータセットが不十分なため、実用化が制限されている

現代のコンピューティングは造船や海洋工学における設計および建設プロセスを大幅に改善していますが、限ら...

生成AIの5つの主要モデル:VAE、GAN、拡散、トランスフォーマー、NeRF

タスクに適した GenAI モデルを選択するには、各モデルで使用されるテクノロジーとその特定の機能を...