Polymathは、ハードドライブやYouTubeからの音楽ライブラリを、音楽制作用のサンプルライブラリに自動的に変換する革新的なツールです。このツールは、曲をステム(ビート、ベースなど)に分離し、同じテンポとビートグリッドに量子化し、音楽構造(例:ヴァース、コーラスなど)、キー(例:C4、E3など)、およびその他の情報(音色、音量など)を分析し、オーディオをMIDIに変換します。その結果、検索可能なサンプルライブラリが作成され、音楽プロデューサー、DJ、およびMLオーディオ開発者のワークフローが効率化されます。
Polymathを使用すると、異なる曲の要素を組み合わせてユニークな新曲を作成することが簡単になります。例えば、Funkadelicのトラックからビートを、Tito Puenteの曲からベースラインを、Fela Kutiの曲から合うホーンを取り出し、DAWにシームレスに統合することができます。Polymathの検索機能を使用して関連するトラックを発見し、磨かれた1時間のマッシュアップDJセットを作成することも簡単です。ML開発者にとって、Polymathは生成モデルのトレーニングなどのために大規模な音楽データセットを作成するプロセスを簡素化します。
Polymathは、Demucsニューラルネットワークを使用して音楽ソース分離を行い、sf_segmenterニューラルネットワークを使用して音楽構造のセグメンテーション/ラベリングを行い、Crepeニューラルネットワークを使用して音楽のピッチトラッキングとキー検出を行い、Basic Pitchニューラルネットワークを使用して音楽をMIDIに変換し、pyrubberbandを使用して音楽の量子化とアラインメントを行い、librosaを使用して音楽情報の取得と処理を行います。
Polymathコミュニティに参加するには、DiscordのPolymathコミュニティに参加してください。Polymathを使用するには、システムにffmpegがインストールされている必要があります。インストール手順は、ターミナルから以下のコマンドを実行します:
git clone https://github.com/samim23/polymath
cd polymath
pip install -r requirements.txt
Polymathを実行しようとしてbasic-pitchに問題が発生した場合は、インストール後に次のコマンドを実行します:
pip install git+https://github.com/spotify/basic-pitch.git
GPUサポートについては、Polymathが使用するライブラリのほとんどがcudaを介してネイティブのGPUサポートを提供しています。TensorFlowをcudaで使用するためのセットアップ手順については、 の手順に従ってください。これらの手順に従った場合、TensorFlowとTorchは自動的にGPUを検出して使用します。これはネイティブセットアップにのみ適用され、Docker化されたデプロイメントについては、GPUサポートは今後の予定です。
Dockerセットアップについては、システムにDockerがインストールされている場合、提供されているDockerfileを使用してPolymath Dockerイメージを迅速に構築できます(ユーザーがdockerグループの一部でない場合は、次のコマンドにsudoを付けることを忘れないでください):
docker build -t polymath ./
ホストシステムとPolymath Dockerコンテナ間で入力および出力ファイルを交換するには、次の4つのディレクトリを作成する必要があります:
./input
./library
./processed
./separated
Polymathで処理したいファイルをinputフォルダに入れます。次に、docker runコマンドを使用してPolymathを実行し、元々pythonコマンドに渡す引数を渡します。例えば、Linux OSで呼び出す場合:
docker run \
-v "$(pwd)"/processed:/polymath/processed \
-v "$(pwd)"/separated:/polymath/separated \
-v "$(pwd)"/library:/polymath/library \
-v "$(pwd)"/input:/polymath/input \
polymath python /polymath/polymath.py -a ./input/song1.wav
Polymathの実行手順は以下の通りです:
- 曲をPolymathライブラリに追加します。
- Polymathライブラリ内の曲を量子化します。
- Polymathライブラリ内の類似曲を検索します。
- オーディオをMIDIに変換します。
Polymathは、MITライセンスの下でリリースされています。詳細については、LICENSEファイルを参照してください。