メインコンテンツへスキップ
見出し画像

AudioCraft の MusicGen を試す

    「AudioCraft」の「MusicGen」を試したので、まとめました。

    1. MusicGen

    「AudioCraft」は、深層学習によるオーディオ処理と生成のためのライブラリです。次の3つのモデルが含まれています。

    ・MusicGen:テキストからの音楽生成
    ・AudioGen:テキストからの音声生成
    ・EnCodec:より高い音声クオリティの音楽生成

    今回は、「MusicGen」を試します。

    2. Colabでの実行

    Google Colabでの実行手順は、次のとおりです。

    (1) パッケージのインストール。

    # パッケージのインストール
    !git clone https://github.com/facebookresearch/audiocraft/
    %cd audiocraft
    !pip install -e .

    (2) モデルの読み込み。

    from audiocraft.models import MusicGen
    
    # モデルの読み込み
    model = MusicGen.get_pretrained('facebook/musicgen-small')

    指定できるモデルは次の4つです。

    ・facebook/musicgen-small : 300M
    ・facebook/musicgen-medium : 1.5B
    ・facebook/musicgen-melody : 1.5B
    ・facebook/musicgen-large : 3.3B

    (3) モデルパラメータの指定。

    # モデルパラメータの指定
    model.set_generation_params(
        use_sampling=True,
        top_k=250,
        duration=30
    )

    パラメータは、次のとおりです。

    ・use_sampling (bool, default:True): Trueはサンプリングを使用し、それ以外は argmaxデコードを使用
    ・top_k (int, default:250): サンプリングに使用する top_k
    ・top_p (float, default:0): サンプリングに使用する top_p。0にするとtop_kが使用される
    ・temperature (float, default:1): 温度
    ・duration (float, default:10): 生成された波形の持続時間
    ・cfg_coef (float, default:3): 分類子なしのガイダンスに使用される係数

    (4) テキストからの音楽生成。

    from audiocraft.utils.notebook import display_audio
    
    # テキストからの音楽生成
    output = model.generate(
        descriptions=[
            #'80s pop track with bassy drums and synth',
            #'90s rock song with loud guitars and heavy drums',
            #'Progressive rock drum and bass solo',
            #'Punk Rock song with loud drum and power guitar',
            #'Bluesy guitar instrumental with soulful licks and a driving rhythm section',
            #'Jazz Funk song with slap bass and powerful saxophone',
            'drum and bass beat with intense percussions'
        ],
        progress=True, return_tokens=True
    )
    display_audio(output[0], sample_rate=32000)

    今回は、以下の音楽を生成しました。

    ・drum and bass beat with intense percussions (ドラムとベースが激しいパーカッションでビートを刻む)

    (5) プレイヤーの再生ボタンを押して音楽再生。

    画像

    参考

    ・demos/musicgen_demo.ipynb



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ