【無料のAI作曲ツール】Musikaのインストール

【無料のAI作曲ツール】Musikaのインストール 機械学習

「AIで音楽・曲を自動的に作成したい」
「無料のAI作曲ツールを探している」

このような場合には、Musikaがオススメです。
この記事では、ローカル環境にMusikaをインストールする方法を解説しています。

本記事の内容

  • Musikaとは?
  • Musikaのシステム要件
  • Musikaのインストール
  • Musikaの動作確認

それでは、上記に沿って解説していきます。

Musikaとは?

Musikaとは、無限波形音楽の高速生成が可能な技術のことです。
簡単に表現すれば、音楽生成AIとなります。

GitHub – marcoppasini/musika: Fast Infinite Waveform Music Generation
https://github.com/marcoppasini/musika

Musikaを使えば、学習させて自分好みの音楽を生成させることが可能です。
上記GitHubページでは、学習方法の説明が記載されています。

それは、とても楽しそうです。
ですが、まずはMusikaで生成させる音楽を実際に確認してみたいと思いませんか?

生成される音楽が、ショボいモノなら苦労して学習させる意味がありません。
そこで、Hugging Face上のデモアプリの出番です。

Musika – a Hugging Face Space by marcop
https://huggingface.co/spaces/marcop/musika

このデモを利用すれば、Musikaでどのような音楽が作成されるのかを簡単に確認できます。
今回は、このデモアプリを丸ごとインストールします。

したがって、この記事ではMusikaをHugging Face上のデモアプリと位置付けます。

以上、Musikaについて説明しました。
次は、Musikaのシステム要件を説明します。

Musikaのシステム要件

Musikaのシステム要件は、TensorFlowが最大のポイントです。
と言ってもCPU版であれば、何も苦労はいりません。

GPUでTensorFlowを動かすとなれば、それなりに大変な作業になります。
しかし、心配は無用です。

次の記事ではTensorFlow(GPU版)のインストールについて詳しく解説しています。

上記記事では、TensorFlow 2.6.5を最終的にはインストールしています。
しかし、MusikaではTensorFlow 2.10.0がシステム要件となっています。

よって、上記記事のTensorFlow 2.6.5をTensorFlow 2.10.0に置き換えてください。
つまり、TensorFlow 2.10.0をインストールしましょう。

なお、現時点(2022年10月末)においてTensorFlow 2.10.0はGPUサポート対象外です。
サポート対象外ですが、TensorFlow 2.10.0はGPUでも動きます。

一応、TensorFlow 2.6.0系までがGPUのサポート対象とされています。
そんな状況ですが、TensorFlow 2.10.0をインストールしようということです。

あと、Pythonのバージョンは3.9が指定されています。
そのため、Python 3.9の環境を利用しましょう。

以上、Musikaのシステム要件を説明しました。
次は、Musikaのインストールを説明します。

Musikaのインストール

Musikaのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。

検証は、次のバージョンのPythonで行います。

> python -V 
Python 3.9.13

そして、システム要件としてはTensorFlow 2.10.0をインストール済という状況です。
このような状況において、Musikaのインストールを進めます。

  • Musikaの取得(Hugging Faceから)
  • requirements.txtを使った一括インストール

それぞれを下記で説明します。

Musikaの取得(Hugging Faceから)

marcop/musika at main
https://huggingface.co/spaces/marcop/musika/tree/main

プログラム一式は、上記ページで確認できます。

これらを1ファイルづつダウンロードすることは、無理なことではありません。
しかし、そんな非効率なことをする必要はないです。

このような場合には、huggingface_hubを利用します。
huggingface_hubを利用すれば、一括でプログラム一式を取得可能です。

huggingface_hubをインストールしたら、次のコードを実行します。

from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="marcop/musika",
    repo_type="space",
    revision="main",
    cache_dir="./")

上記コードを実行すると、ダウンロード処理が始まります。
ダウンロード終了まで、少しだけ待ちます。

処理が完了すると、ディレクトリ上に「spaces–marcop–musika」を確認できます。

そして、「snapshots」以下にあるファイル・ディレクトリをコピーします。

「9838bd710314df56496d12e64a93911b51160c91」は、リポジトリのバージョンです。

正確には、この長たらしいディレクトリより下のモノをコピーします。
コピーしたファイルは、コンテンツルートに保存します。

requirements.txtを使った一括インストール

コンテンツルートでは、requirements.txtを確認できます。
このrequirements.txtの中身は、以下となります。

requirements.txt

# This file may be used to create an environment using: 
# $ conda create --name <env> --file <this file> 
# platform: linux-64 
gradio==3.3.1 
librosa==0.8.1 
matplotlib==3.4.3 
numpy==1.20.3 
scipy==1.7.1 
tensorboard==2.10.0 
tensorflow==2.10.0 
tqdm==4.62.3 
pydub==0.25.1

このファイルから、TensorFlow関連を除外します。
あとは、バージョン指定もやめます。

バージョンを指定したままだと、エラーが起きる可能性が高いです。
結果的には、requirements.txtは下記のようになります。

gradio 
librosa 
matplotlib 
numpy 
scipy 
tqdm 
pydub

変更後のrequirements.txtを利用して、必要なモノを一気にインストールします。
実行するのは、次のコマンドです。

pip install -r requirements.txt

処理完了までは、しばらく時間がかかります。
問題なく処理が終われば、インストールは完了です。

以上、Musikaのインストールを説明しました。
次は、Musikaの動作確認を説明します。

Musikaの動作確認

Musikaの起動は、app.pyを実行します。
正常に起動できると、コンソールには以下のように表示されます。

--------------------------------
--------------------------------
--------------------------------
--------------------------------
--------------------------------
CLICK ON LINK BELOW TO OPEN GRADIO INTERFACE
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

ただし、その前に「WARNING」が表示されることがあるかもしれません。
「WARNING」であれば、動作確認には支障はないでしょう。

では、ブラウザで「http://127.0.0.1:7860」にアクセスします。
アクセスすると、Hugging Face上のデモと同じ画面を確認できます。

適当に選択して、「送信」ボタンを押せば音楽が作成されます。

私の環境であれば、上記条件なら4秒程度で音楽が作成できます。
GPUを利用しているため、かなり速く処理が可能です。
(GPUの性能により、処理時間は異なります)

タスクマネージャーでGPU利用率を確認したら、一瞬でした。

もともと、CPUでも動くような処理ですからね。
GPUを使えば、確かに一瞬かもしれません。

ただ、Hugging Face上のデモにおいて同じ条件で処理すると、50秒ほどかかります。
それほど、みんなが試そうとして処理が集中している状況かもしれませんね。

なお、Windowsの場合だと次のエラーが出る可能性が高いです。

ConnectionResetError: [WinError 10054] 既存の接続はリモート ホストに強制的に切断されました。

エラーと言っても、何か処理に影響するわけではありませんけどね。
興味のある方は、エラーで検索すればいろいろわかると思います。

どうしてもエラーが気になる場合は、asyncioパッケージのファイルを修正します。
\lib\asyncio\proactor_events.py

上記コードをすべてコメントにすれば、エラーは表示されません。

以上、Musikaの動作確認を説明しました。

タイトルとURLをコピーしました