MusicGen のインストールと動作確認(作曲)(Python,PyTorch を使用)(Windows 上)

MusicGen のインストールと,音楽生成を行う.

目次

  1. 前準備
  2. MusicGen のインストール(Windows 上)
  3. MusicGen による音楽生成を実行してみる

MusicGen

MusicGen は, 単一ステージのトランスフォーマー言語モデル(transformer language model)を特徴とする。 フレシェオーディオ距離 (FAD)、クルバック・ライブラーダイバージェンス (KL)、CLAPスコア (CLAP)という客観的指標ならびに、 全体的な品質および(ii)テキスト入力への関連性の主観的指標について、 baselines for text-to-music generation: Riffusion [Forsgren and Martiros] and Mousai [Schneider et al., 2023]をベースラインとして 評価が行われている。

文献

Jade Copet and Felix Kreuk and Itai Gat and Tal Remez and David Kant and Gabriel Synnaeve and Yossi Adi and Alexandre Défossez, Simple and Controllable Music Generation, arXiv preprint arXiv:2306.05284, 2023.

https://arxiv.org/pdf/2306.05284v1.pdf

関連する外部ページ

前準備

Python 3.12 のインストール

インストール済みの場合は実行不要。

管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。

REM Python をシステム領域にインストール
winget install --scope machine --id Python.Python.3.12 -e --silent
REM Python のパス設定
set "PYTHON_PATH=C:\Program Files\Python312"
set "PYTHON_SCRIPTS_PATH=C:\Program Files\Python312\Scripts"
echo "%PATH%" | find /i "%PYTHON_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%PYTHON_PATH%" /M >nul
echo "%PATH%" | find /i "%PYTHON_SCRIPTS_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%PYTHON_SCRIPTS_PATH%" /M >nul

関連する外部ページ

Python の公式ページ: https://www.python.org/

AI エディタ Windsurf のインストール

Pythonプログラムの編集・実行には、AI エディタの利用を推奨する。ここでは,Windsurfのインストールを説明する。

管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行して、Windsurfをシステム全体にインストールする。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。

winget install --scope machine Codeium.Windsurf -e --silent

関連する外部ページ

Windsurf の公式ページ: https://windsurf.com/

Gitのインストール

管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。


REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent
REM Git のパス設定
set "GIT_PATH=C:\Program Files\Git\cmd"
if exist "%GIT_PATH%" (
    echo "%PATH%" | find /i "%GIT_PATH%" >nul
    if errorlevel 1 setx PATH "%PATH%;%GIT_PATH%" /M >nul
)

Visual Studio 2022 Build Toolsとランタイムのインストール

管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。


REM Visual Studio 2022 Build Toolsとランタイムのインストール
winget install --scope machine Microsoft.VisualStudio.2022.BuildTools Microsoft.VCRedist.2015+.x64
set VS_INSTALLER="C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe"
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
REM C++開発ワークロードのインストール
%VS_INSTALLER% modify --installPath %VS_PATH% ^
--add Microsoft.VisualStudio.Workload.VCTools ^
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^
--add Microsoft.VisualStudio.Component.Windows11SDK.22621 ^
--includeRecommended --quiet --norestart

NVIDIA ドライバのインストール(Windows 上)

NVIDIA ドライバとは

NVIDIA ドライバは,NVIDIA製GPUをWindowsシステム上で適切に動作させるための基盤となるソフトウェアです.このドライバをインストールすることにより,GPUの性能を最大限に引き出し,グラフィックス処理はもちろん,CUDAを利用したAI関連アプリケーションなどの計算速度を向上させることが期待できます.

ドライバは通常、NVIDIA公式サイトからダウンロードするか、NVIDIA GeForce Experienceソフトウェアを通じてインストール・更新します。

公式サイト: https://www.nvidia.co.jp/Download/index.aspx?lang=jp

サイト内の関連ページ

  1. (再掲) NVIDIA グラフィックス・ボードの確認

    インストールするドライバを選択するために、まずご使用のPCに搭載されているNVIDIAグラフィックス・ボードの種類を確認します。(確認済みであれば、この手順は不要です。) Windows のコマンドプロンプトで次のコマンドを実行します。

    wmic path win32_VideoController get name
    
  2. NVIDIA ドライバのダウンロード

    確認したグラフィックス・ボードのモデル名と、お使いのWindowsのバージョン(例: Windows 11, Windows 10 64-bit)に対応するドライバを、以下のNVIDIA公式サイトからダウンロードします.

    https://www.nvidia.co.jp/Download/index.aspx?lang=jp

    サイトの指示に従い、製品タイプ、製品シリーズ、製品ファミリー、OS、言語などを選択して検索し、適切なドライバ(通常は最新のGame Ready ドライバまたはStudio ドライバ)をダウンロードします。

  3. ドライバのインストール

    ダウンロードしたインストーラー(.exeファイル)を実行し、画面の指示に従ってインストールを進めます。「カスタムインストール」を選択すると、インストールするコンポーネント(ドライバ本体、GeForce Experience、PhysXなど)を選ぶことができます。通常は「高速(推奨)」で問題ありません。

    インストール完了後、システムの再起動を求められる場合があります。

  4. NVIDIA CUDA ツールキット 11.8 のインストール(Windows 上)

    CUDAツールキットには、GPUでプログラムを実行するためのライブラリ、`nvcc`コンパイラ、開発ツールなどが含まれています。ここでは`winget`を使ってCUDA 11.8をインストールする手順を示します。

    NVIDIA CUDA ツールキットの概要と注意点

    NVIDIAのGPUを使用して並列計算を行うための開発・実行環境です。

    主な機能: GPU を利用した並列処理のコンパイルと実行、GPU のメモリ管理、C++をベースとした拡張言語(CUDA C/C++)とAPI、ライブラリ(cuBLAS, cuFFTなど)を提供します。

    NVIDIA CUDA ツールキットの動作に必要なもの

    • CUDA対応のNVIDIA GPU。
    • 対応するNVIDIA ドライバ。
    • サポートされているバージョンのC++コンパイラ (Visual StudioまたはBuild Toolsをインストール済み)。

    Windows でインストールするときの一般的な注意点

    • Windows では,NVIDIA CUDA ツールキットインストール中は,予期せぬ問題を避けるため、なるべく他のアプリケーションは終了しておくことが推奨されます。
    • インストール後に環境変数が正しく設定されているか確認することが重要です。

    関連する外部ページ

    関連項目NVIDIA CUDA ツールキットの概要, NVIDIA CUDA ツールキットの他バージョンのインストール

    1. (再掲) 他のウィンドウを閉じる:インストール中のコンフリクトを避けるため、可能な限り他のアプリケーションを終了します。
    2. Windows で,コマンドプロンプト管理者権限で起動します。
    3. winget コマンドで CUDA 11.8 をインストールします。

      以下のコマンドは、(必要であれば)NVIDIA GeForce Experienceと、指定したバージョンのNVIDIA CUDA ツールキット (11.8) をインストールします。また、CUDA_HOME 環境変数を設定します(一部のツールで参照されることがあります)。

      rem グラフィックボードの確認 (参考)
      wmic path win32_VideoController get name
      
      
      
      rem CUDA Toolkit 11.8 のインストール
      winget install --scope machine Nvidia.CUDA --version 11.8
      
      rem CUDA_HOME 環境変数の設定 (システム環境変数として設定)
      powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDA_HOME\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\", \"Machine\")"
      

      注釈: これは特定のバージョン(11.8)をインストールする例です。他のバージョンをインストールする場合は --version オプションを適宜変更してください(例: --version 11.2)。利用可能なバージョンは winget search Nvidia.CUDA で確認できます。

    4. (重要) ユーザ環境変数 TEMP の設定(日本語ユーザ名の場合)

      Windowsユーザ名に日本語(マルチバイト文字)が含まれている場合、CUDAコンパイラ nvcc が一時ファイルの作成に失敗し、コンパイルが正常に動作しないことがあります(エラーメッセージが表示されない場合もあるため注意が必要です)。この問題を回避するために、ユーザ環境変数 TEMP および TMP を、ASCII文字のみのパス(例: C:\TEMP)に変更します。

      管理者権限のコマンドプロンプトで,次のコマンドを実行して C:\TEMP ディレクトリを作成し、ユーザ環境変数 TEMPTMP を設定します。

      mkdir C:\TEMP
      powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
      powershell -command "[System.Environment]::SetEnvironmentVariable(\"TMP\", \"C:\TEMP\", \"User\")"
      

      この設定は、コマンドプロンプトを再起動するか、Windowsに再サインインした後に有効になります。

    NVIDIA cuDNN 8.9.7 のインストール(Windows 上)

    NVIDIA cuDNN

    NVIDIA cuDNN は,NVIDIA CUDA ツールキット上で動作する、高性能なディープラーニング用ライブラリです.畳み込みニューラルネットワーク (CNN) やリカレントニューラルネットワーク (RNN) など,さまざまなディープラーニングモデルのトレーニングと推論を高速化します.

    cuDNN利用時の注意点: zlibwapi.dll エラー

    Windows環境でcuDNNを利用するアプリケーションを実行した際に、「Could not locate zlibwapi.dll. Please make sure it is in your library path!」というエラーが表示されることがあります。これは、cuDNNの一部の機能が圧縮ライブラリである zlib に依存しているためです。このエラーが発生した場合は、後述する手順で ZLIB DLL をインストールする必要があります。

    関連する外部ページ

    NVIDIA cuDNN のインストール(Windows 上)の概要

    1. NVIDIA Developer Program メンバーシップへの加入: cuDNNのダウンロードには無料のメンバーシップ登録が必要です。

      NVIDIA Developer Program の公式ページ: https://developer.nvidia.com/developer-program

    2. 互換バージョンの選択とダウンロード: インストール済みのCUDAツールキットのバージョン (今回は11.x) に適合するcuDNNのバージョン (今回はv8.9.7) を選択し、Windows用のzipファイルをダウンロードします。
    3. ファイルの展開と配置: ダウンロードしたzipファイルを展開(解凍)し、中のファイル(bin, include, lib フォルダ内)を、CUDAツールキットのインストールディレクトリにコピーします。
    4. (オプション) 環境変数の設定: 必要に応じてシステム環境変数 CUDNN_PATH を設定します。
    5. (必要に応じて) ZLIB DLL のインストール: zlibwapi.dll が見つからないエラーが発生する場合にインストールします。
    6. 動作確認: cuDNNライブラリ (cudnn64_*.dll) にパスが通っているか確認します。

    zlib のインストール(Windows 上)

    1. Windows で,管理者権限コマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。
    2. 次のコマンドを実行

      次のコマンドは,zlibをインストールし,パスを通すものである.

      cd /d c:%HOMEPATH%
      rmdir /s /q zlib
      git clone https://github.com/madler/zlib
      cd zlib
      del CMakeCache.txt
      rmdir /s /q CMakeFiles\
      cmake . -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_INSTALL_PREFIX=c:/zlib
      cmake --build . --config RELEASE --target INSTALL
      powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\zlib\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
      powershell -command "[System.Environment]::SetEnvironmentVariable(\"ZLIB_HOME\", \"C:\zlib\", \"Machine\")"
      

    関連する外部ページ

    関連項目zlib

    NVIDIA cuDNN 8.9.7 のインストール(Windows 上)

    1. NVIDIA cuDNN のウェブページを開く

      https://developer.nvidia.com/cuDNN

    2. ダウンロードしたいので,cuDNNのところにある「Download cuDNN」をクリック.
    3. cuDNN Downloads のページで「Archive of Previous Releases」をクリック
    4. cuDNN 8.x - 1.x」をクリック
    5. ダウンロードしたいバージョンを選ぶ

      ここでは「NVIDIA cuDNN v8.9.7 for CUDA 11.x」を選んでいる.

      このとき,画面の「for CUDA ...」のところを確認し,使用するNVIDIA CUDA のバージョンに合うものを選ぶこと.

    6. Windows にインストールするので Windows 版を選ぶ
    7. NVIDIA Developer Program メンバーシップに入る

      NVIDIA cuDNN のダウンロードのため.

      Join now」をクリック.その後,画面の指示に従う. 利用者本人が,電子メールアドレス,表示名,パスワード,生年月日を登録.利用条件等に合意.

    8. ログインする
    9. 調査の画面が出たときは,調査に応じる
    10. ライセンス条項の確認
    11. ダウンロードが始まる.
    12. ダウンロードした .zip ファイルを展開(解凍)する. その中のサブディレクトリを確認しておく.

      Windows での展開(解凍)に便利な 7-Zip: 別ページ »で説明

    13. NVIDIA CUDA ツールキットをインストールしたディレクトリを確認する.「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8」のようになっている.
    14. 確認したら, さきほど展開してできたすべてのファイルとディレクトリを,NVIDIA CUDA ツールキットをインストールしたディレクトリにコピーする
    15. パスが通っていることを確認.

      次の操作により,cudnn64_8.dllパスが通っていることを確認する.

      Windowsコマンドプロンプトを開き,次のコマンドを実行する.エラーメッセージが出ないことを確認.

      where cudnn64_8.dll
      
    16. Windowsシステム環境変数 CUDNN_PATH の設定を行う. Windows では, コマンドプロンプトを管理者として開き, 次のコマンドを実行することにより, システム環境変数 CUDNN_PATH の設定を行うことができる.

      コマンドプロンプトを管理者として実行: 別ページ »で説明

      powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDNN_PATH\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\", \"Machine\")"
      

    PyTorch のインストール(Windows 上)

    Windows 環境に PyTorch をインストールする手順を解説します.主に pip を使用する方法と Miniconda (conda) を使用する方法を紹介します.

    1. 実行前の準備

    インストール作業を行う前に,以下の準備と確認を行ってください.

    2. PyTorch 公式サイトでのコマンド確認

    【重要】 PyTorch のインストールコマンドは,OS,パッケージ管理ツール (pip/conda),Python バージョン,CUDA バージョンによって異なります.必ず以下の PyTorch 公式サイトで,ご自身の環境に合った最新のインストールコマンドを確認・実行してください.

    以下の手順で示すコマンドは,特定の環境(例: CUDA 11.8)における一例です.

    3. pip を使用したインストール

    Python 標準のパッケージ管理ツール pip を使用する方法です.

    (1) pip の更新 (任意)

    python -m pip install --upgrade pip
    

    (2) 既存の PyTorch 関連パッケージのアンインストール (推奨)
    古いバージョン等がインストールされている場合に実行します.

    python -m pip uninstall torch torchvision torchaudio
    # 必要に応じて torchtext, xformers などもアンインストール
    # python -m pip uninstall torchtext xformers
    

    (3) PyTorch のインストール
    【注意】 必ず公式サイトで生成したコマンドを使用してください.以下は CUDA 11.8 環境向けの 一例 です.

    # 公式サイトで取得した pip install コマンドを実行
    # 例 (CUDA 11.8):
    python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
    

    (4) インストールの確認

    python -c "import torch; print(f'PyTorch Version: {torch.__version__}'); print(f'CUDA Available: {torch.cuda.is_available()}')"
    

    CUDA Available: True と表示されれば,GPU が正しく認識されています (GPU 環境の場合).

    4. Miniconda (conda) を使用したインストール

    データサイエンス環境構築によく使われる Miniconda (または Anaconda) を使用している場合は,conda コマンドでもインストールできます.

    注意点:
    conda 環境では,PyTorch のような複雑な依存関係を持つライブラリの場合,pip よりも依存関係の問題が発生することがあります.問題が発生した場合は,pip を使用したインストール(セクション3)を試すことを検討してください.

    (1) Miniconda Prompt (または Anaconda Prompt) の起動
    管理者として実行で Miniconda Prompt を起動します.

    (2) PyTorch のインストール
    【注意】 必ず公式サイトで Package に Conda を選択し,生成されたコマンドを使用してください.以下は CUDA 11.8 環境向けの 一例 です.

    # 公式サイトで取得した conda install コマンドを実行
    # 例 (CUDA 11.8):
    conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
    

    -c pytorch -c nvidia は,PyTorch と NVIDIA の公式 conda チャネルを指定しています.

    (3) インストールの確認

    python -c "import torch; print(f'PyTorch Version: {torch.__version__}'); print(f'CUDA Available: {torch.cuda.is_available()}')"
    

    関連情報

    サイト内の関連ページ

    関連する外部ページ

    MusicGen のインストール(Windows 上)

    FFmpeg のインストール(Windows 上)

    Windows での FFmpeg のインストール(Windows 上): 別ページ »で説明

    TensorFlow 2.10.1 のインストール(Windows 上)

    1. Windows で,管理者権限コマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。
    2. TensorFlow 2.10.1 のインストール(Windows 上)

      次のコマンドを実行することにより,TensorFlow 2.10.1 および関連パッケージ(tf_slim,tensorflow_datasets,tensorflow-hub,Keras,keras-tuner,keras-visualizer)がインストール(インストール済みのときは最新版に更新)される. そして,Pythonパッケージ(Pillow, pydot, matplotlib, seaborn, pandas, scipy, scikit-learn, scikit-learn-intelex, opencv-python, opencv-contrib-python)がインストール(インストール済みのときは最新版に更新)される.

      python -m pip uninstall -y protobuf tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
      python -m pip install -U protobuf tensorflow==2.10.1 tf_slim tensorflow_datasets==4.8.3 tensorflow-hub tf-keras keras keras_cv keras-tuner keras-visualizer
      python -m pip install git+https://github.com/tensorflow/docs
      python -m pip install git+https://github.com/tensorflow/examples.git
      python -m pip install git+https://www.github.com/keras-team/keras-contrib.git
      python -m pip install -U pillow pydot matplotlib seaborn pandas scipy scikit-learn scikit-learn-intelex opencv-python opencv-contrib-python
      

    MusicGen のインストール(Windows 上)

    1. Windows で,管理者権限コマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。
    2. MusicGen のインストール,関連ファイルのダウンロード
      python -m pip install audiocraft
      cd /d c:%HOMEPATH%
      rmdir /s /q audiocraft
      git clone --recursive https://github.com/facebookresearch/audiocraft
      cd audiocraft
      pip install -e .
      

    MusicGen による音楽生成を実行してみる

    1. Windows で,コマンドプロンプトを実行
    2. エディタを起動
      cd /d c:%HOMEPATH%\audiocraft
      notepad c.py
      
    3. エディタで,次のプログラムを保存

      「descriptions = ['pop song with drum and synth pads in background, about computer, AI, technology.']」のところに文章を記載する.

      「model.set_generation_params(duration=30) 」のところは,秒数を設定する.GPUのメモリが足りない場合などは,この数値を小さくすると解決するかもしれない.

      model = MusicGen.get_pretrained('large') の 「large」は,必要に応じて,別のものを指定(指定できるものは,公式ページ https://github.com/facebookresearch/audiocraft に記載されている).

      このプログラムは, 公式ページ https://github.com/facebookresearch/audiocraftで公開されていたものについて,text to music の機能のみを使うようにするなどの変更を行ったもの.

      import torchaudio
      from audiocraft.models import MusicGen
      from audiocraft.data.audio import audio_write
      
      model = MusicGen.get_pretrained('large')
      model.set_generation_params(duration=30)
      wav = model.generate_unconditional(4)    # generates 4 unconditional audio samples
      descriptions = ['pop song with drum and synth pads in background, about computer, AI, technology.']
      wav = model.generate(descriptions)  # generates 3 samples.
      
      # generates using the melody from the provided descriptions.
      wav = model.generate(descriptions)
      
      for idx, one_wav in enumerate(wav):
          # Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
          audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)
      
    4. Python プログラムの実行

      Python プログラムの実行

      【サイト内の関連ページ】 Python のまとめ: 別ページ »

      プログラムを c.pyのようなファイル名で保存したので, 「python c.py」のようなコマンドで行う.

      python c.py
      
    5. 0.wav ができるので確認.再生してみる.