1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MusicGenを使用して自然言語から音楽を生成する方法

Last updated at Posted at 2024-01-06

スクリーンショット 2024-01-07 015308.png

はじめに

この記事では、Metaの音楽生成ツールであるAudio CraftのMusicGenを使用して、テキストから音楽を生成する方法を紹介します。MusicGenは学習済みモデルを活用して、テキスト記述に基づいてオリジナルの音楽を生成することができます。この記事では、ステップごとに手順を提供し、読者が独自の音楽を生成するための知識を提供します。

ステップ1: 環境のセットアップ

まず、必要なライブラリとモデルをセットアップします。以下の手順に従って、環境を整えて音楽生成の準備をします。

1.1. Audio Craftのリポジトリをクローンします。

!git clone https://github.com/facebookresearch/audiocraft/
%cd audiocraft

1.2. MusicGenをインストールします。

!pip install -e .

from audiocraft.models import MusicGen
model = MusicGen.get_pretrained('facebook/musicgen-small')
model.set_generation_params(
    use_sampling=True,
    top_k=250,
    duration=30)

ステップ2: テキストから音楽の生成と再生

次に、指定したテキスト記述に基づいて音楽を生成し、再生する方法を説明します。

2.1. テキストを指定して音楽を生成します。今回は「雅楽とJ-POPの融合」をテーマにしてみましょう。

from audiocraft.utils.notebook import display_audio
output = model.generate(
    descriptions=['Fusion of Gagaku and J-pop'],
    progress=True, return_tokens=True)

2.2. 生成した音楽を再生して確認します。

display_audio(output[0], sample_rate=32000)

ステップ3: 音楽の保存

次に、生成した音楽をファイルに保存する方法を説明します。以下の手順に従って、音楽を保存します。

3.1. 保存先のファイルパスを指定します。

import soundfile as sf
import torch

output_file_path = "generated_music.wav"  # 保存先のパスを指定してください

3.2. 音楽データをホストメモリにコピーします。

output_cpu = output[0].cpu().numpy()

3.3. 音楽データの形状を修正します。

output_cpu = output_cpu.squeeze()  # 余分な次元を削除

3.4. 音楽を指定したファイルパスに保存します。

sf.write(output_file_path, output_cpu, sample_rate)
print("音楽を保存しました:", output_file_path)

今回は保存した曲をhttps://me-qr.com/ja/music/19768879
でQRコードにしてみました!雅楽とJ-POPは表現できてますかね、、、😅
Fusion of Gagaku and J-pop (3).png

最後に

この記事ではMusicGenを使用してテキストから音楽を生成し、保存する方法を詳細に説明しました。皆さんもMusicGenを使ってオリジナルで創造的な音楽を生成してみてください!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?