【Mac】AI作曲 Magentaのインストール方法

AIで音楽を自動生成したり、絵を描かせることが実用的になってきました。

音楽の自動生成としては、GoogleのMagentaが無料で使えますので、これを使わない手はありません。しかし、それだけに、インストール方法は一筋縄ではいかず、ネットにもあまり情報がありません。

わたしも相当手こずりました。

結論から言うと、Apple Siliconつまり、M1 MacでのMagenta導入は断念しました。Tensorflowの導入までは何とかなったのですが、Magentaのインストールがうまくいきません。intelプロセッサ版Macだと、Anaconda3やMiniforgeを使うことで成功するのですが、M1 Macではうまくいきません。

M1 Macでの導入は、Python3.7が簡単にインストールできないことがネックになっています。

M1 Mac上でintel Macのアプリを動かすソフトとして、Rosetta2があります。これをターミナル上で動かしてみたらどうか、試してみました。

結果として、magentaのインストールは成功しました。しかし、実際に動かしてみようとしたところ、その前提となるtensorflowを動かすことができないため、magentaも稼働させることができませんでした。

ターミナルは、Rosettaで開きます。

仮想環境のためのpyenvが入っている場合は、うまくいかないため、削除しておきます。Pythonは、3.7と3.8で試してみました。Miniforgeを使ってintel Macと同じように仮想環境の設定からmagentaのインストールまで行ってみたところ、うまくいきました。

しかし、magentaを実行してみると、tensorflowが動きません。

“zsh: illegal hardware instruction python”

というエラーが発生してしまいます。どうやら、Rosetta2上で動かしたとしても、intel Macと同じようには動かせない、ということなのだと思います。

では、Appleが提供している、tensorflow plug-inを入れてみたらどうか、と試してみました。Pythonは3.8から対応しているとのことで、仮想環境を3.8にしてmagentaをインストールをしてみました。これは成功しましたが、Appleのプラグインはインストールできません。x86対応のものを試してみてもダメです。Rosetta2でx86ならなんでもというわけではないようです。

ここで完全に詰みました。

M1 Mac(arm64)では、Pythonは3.9からしか対応していません。tensorflowのプラグインを動かすことができます。pyenvでPython3.8を入れることも可能ですが、magentaが入りません。

Rosetta(x86)で入れると、magentaをインストールできますが、tensorflowを動かすことができません。

完全にデッドロック状態です。

Pythonはモジュールのバージョン構成が複雑なので、このような問題が生じてしまいます。

幸い、intelプロセッサ版のMacが手元に残っていましたので、そちらでMagentaを使うことにしました、本当は強力なM1 proの能力を使いたかったのですが仕方ありません。

ですので、MacでMagentaを使いたい場合には、intel版をおすすめします。

目次

Anaconda3のインストール

まずは、Pythonの環境を整える必要があります。これが土台になります。

Anaconda3は、こちらからダウンロードしてインストールします。

Anaconda3の注意点として、2020.4.30の発表で商用利用の有償化範囲が広くなったことです。ほとんどの場合、有償ラインに引っ掛かるのではないかと思います。ですので、わたしは、Anaconda3の利用をやめ、Miniforgeに移行しました。

Anaconda3のインストールは指示に従えばよいので、特に問題は生じないはずです。

pythonを使うためには、ターミナルを起動し、以下のコマンドを入力してconda環境を有効化します。

$ conda activate

conda環境を有効化すると、先頭に(base)が付きますので、「python」と入力するとpythonが使えるようになります。

(base)フォルダ名 $ python

次に、仮想環境を作成します。仮想環境は、別の部屋というイメージです。このまま一つの環境で色々なパッケージを入れていくと不具合が生じたりします。pythonのバージョンを変えたい、と思っても、動かなくなったら困ってしまいますので、安易にバージョンを変えることもできなくなります。

そこで、仮想環境の出番となります。仮想環境を作ることで、別々の部屋を作成し、その部屋の中でしか影響しないようにすれば、複数バージョンのpythonを動かすことも可能になります。

このように、プログラミング開発では、仮想環境の利用は必須となっていますので、早速仮想環境を作りたいと思います。

今回は、Magentaを使いたいので、magenta環境を作りたいと思います。

(base)フォルダ名 $ conda create -n magenta

magenta仮想環境を作成したら、有効化します。

(base)フォルダ名 $ conda activate magenta

すると、先頭が(magenta)に変わります。

(magenta)フォルダ名 $

これで、Magenta開発環境のための箱ができました。ここに、Magentaをインストールしていくことになります。こうしておくことで、magenta環境以外には影響させることがなくなります。最悪、失敗しても、Macの再インストールをすることなく、仮想環境を作り直すことで何度でもやり直すことができます。

Magentaのインストール

Magentaのインストールです。次のコマンドを実行します。

(magenta)フォルダ名 $ curl https://raw.githubusercontent.com/tensorflow/magenta/main/magenta/tools/magenta-install.sh > /tmp/magenta-install.sh
bash /tmp/magenta-install.sh

いったんターミナルを閉じます。再びターミナルを開き、magenta環境を有効化します。

Magenta開発環境の設定をします。

git clone https://github.com/tensorflow/magenta.git
(magenta)フォルダ名 $ pip install -e .

これで終了です。ターミナルを閉じ、再びターミナルを開いて、magenta環境を有効にすればMagentaが使えるようになります。

Magentaの起動

magentaフォルダに移ります。ご自身のフォルダ構成をFinderで確認してください。

$ cd magenta

試しに、楽曲を生成してみましょう。

basic_rnn.magはMagentaのgitからダウンロードして、melody_rnnフォルダに放り込んでおきます。また、生成したmidiデータを格納するためのフォルダ(ここでは、Ai-midi)も事前に作成しておきます。

$ python magenta/models/melody_rnn/melody_rnn_generate.py \
 --config=basic_rnn \
 --bundle_file=/Users/ユーザー名/magenta/magenta/models/melody_rnn/basic_rnn.mag \
 --output_dir=/Users/ユーザー名/Ai-midi \
 --num_outputs=3 \
 --num_steps=64 \
 --qpm=120.0 \
 --primer_melody="[60]"

Ai-midiに3曲が生成されていると思います。

Magenta Studioをインストールするという方法もある

手軽にMagentaを試してみたい、という場合には、普通のアプリのように操作ができる、Magenta Studioをインストールする、という方法もあります。M1 Macにもインストールすることができます。

ただし、機能はかなり限定的です。本格的にMagentaを使いたい、という場合には、ターミナルから本家Magentaをインストールする必要があります。

目次