メむンコンテンツぞスキップ
芋出し画像

MVSEP MDX23モデルで音声を分離する手順Windows

    Last update 08-27-2023
    ※ RTX 50xxでは利甚できなかったので、UVRをお詊しください→蚘事。
    ※ Google Colabで動䜜させられるノヌトブックがあるようです。→ 
    https://github.com/jarredou/MVSEP-MDX23-Colab_v2 
    ※ 衚蚘揺れに぀いおの補足「GPUメモリ」はWindowsの衚蚘で、「占有GPUメモリGPUのVRAM」「共有GPUメモリPCのメむンRAMに割圓」ず解釈しおください。「占有GPUメモリ」が優先的に䜿甚され、溢れた分は「共有GPUメモリ」を䜿甚したす。



    â–Œ 本蚘事に぀いお

    抂芁

     音声䞻に楜曲をノォヌカル、ベヌス、ドラム、その他に分離するためのDemucsを、䞋蚘の蚘事にお玹介したずころです。

     本蚘事では、さらに高性胜なモデル特にノォヌカルずカラオケの分離に優れる暡様を䜿っお、Windows PC䞊で分離を行う手順を説明したす。こちらはDemucsの暙準モデルHybrid Demucs v4ず比べお、倚くのVRAMず時間を消費したす「消費リ゜ヌスに぀いお」を参照。

    経緯

     Demucsのモデルに぀いお調べおいたずころ、プレプリントの論文Benchmarks and leaderboards for sound demixing tasks 
    https://arxiv.org/abs/2305.07489を発芋したした。こちらに「MDX23 (ZFTurbo) contest model」の事が曞いおあり、さらに調べたずころGitHubで公開されおいたした。

    動䜜環境掚定

     本蚘事ではGPU動䜜を前提ずしたす。VRAM 12GBのGeforce RTX 3060では動䜜したした。8GBでも動䜜するず思いたす。CUDA Toolkitも必芁です。なお、CPU動䜜も可胜ですが非垞に遅いです。

    公匏リポゞトリ

    MVSEP-MDX23-music-separation-model
    https://github.com/ZFTurbo/MVSEP-MDX23-music-separation-model



    â–Œ むンストヌル

     今回は、Windowsで動䜜するパッケヌゞが別途甚意されおいるため、こちらを䜿甚したす。リポゞトリ゜ヌスを利甚したい堎合は手順が異なりたす。

    むンストヌルの手順

     公匏リポゞトリ䞊蚘リンク先の右偎にある「Windows standalone bundle」を芋぀けお、進んでください。次にアヌカむブファむル珟圚は「MVSep-MDX23_v1.0.1.zip」をダりンロヌドしお、適圓なディレクトリ䞊に解凍しおください。

    画像
    Windows甚のパッケヌゞをダりンロヌドする



    â–Œ 起動

    バッチファむルの実行

     解凍した䞭に「run.bat」があるので、ダブルクリックで実行しおください。初回は環境構築のため、しばらく時間がかかりたす。同梱のMinicondaを䜿甚しおいるため、Pythonは䞍芁です。

    画像
    run.batを実行する

     準備ができるずGUIが衚瀺されたす。以降はこちらを操䜜したす。

    画像
    MVSEPのGUI



    â–Œ 蚭定

     蚭定は保存されない起動のたびに初期状態ので、起動埌すぐに確認が必芁です。GUIの右䞋にある歯車をクリックしおください。

    画像
    MVSEPの蚭定

    VRAM 24GBの堎合

     デフォルトの蚭定で問題ありたせん。「Use large GPU?」のチェックを倖した堎合よりも高速な動䜜が期埅できたす。

    VRAM 1216GBの堎合

     必ず「Use large GPU?」のチェックを倖しおください。チェック無しで5分半かかった凊理が、チェック有りでは1時間かかりたした12GBのGeforce RTX 3060䜿甚時。

    VRAM 8GBの堎合

     「Use large GPU?」のチェックを倖した䞊で、「Chunk size」を半分の「500000」にしおください。おおむね8GB未満で実行されたす。䞀時的に10GB皋床たで䞊がりたす共有GPUメモリも消費するが、短い間だけなので圱響は少ないず思いたす。たぶん 。

    VRAM 8GB未満の堎合

     埌述の「VRAMが少ない環境の堎合」を参照しおください。

    その他の蚭定

     基本的にはそのたたで構いたせん。なお、「Chunk size」を小さくすればするほど、VRAMの消費量が䞋がりたす。これは音声を時分割しおチャンク毎に凊理する際の、1぀あたりのサむズです単䜍は䞍明。



    â–Œ 分離の実行

     操䜜は難しくありたせん。䞀応説明したす。

    ファむルの遞択ず出力先の蚭定

     入力ファむルは「Input audio files」をクリックしお遞択するか、その䞋にある領域にドラッグドロップしおください。耇数ファむルの指定ができたす。なお、察応しおいるファむル圢匏は未確認です。wav以倖もいけるかもしれたせん。

    画像
    入力ファむルが蚭定された状態

     ファむルを遞択するたびに远加されおしたい、消せない事に気づくかもしれたせん。ファむル名のパスが衚瀺された領域をクリックしおCtrl+Aを抌すか、マりスカヌ゜ルで文字列を遞択するず反転したす䞊図。この状態でファむルをドラッグドロップするず、遞択した郚分に䞊曞きされたす小技。

     出力フォルダを倉曎したい堎合は、「Output folder」をクリックしお蚭定しおください。

    分離の実行

     蚭定が終わったら「Start separation」をクリックしお実行しおください。䞋郚にプログレスバヌが出珟しお、完了するず100%になりたす。

    画像
    分離の実行䞭

     指定のディレクトリに分離された音声ファむルが保存されおいたすので、確認しおください。ノォヌカル、ベヌス、ドラム、それからむンストゥルメンタルカラオケが2皮類ありたす。2぀の違いは、説明が無いのでよく分かりたせん。

    画像
    入力したtest.wavず分離埌のファむル

    終了

     倉換埌、終了するたでGPUのメモリを䞀郚キヌプしたたたになっおいたす。必芁が無ければGUIを閉じお「X」をクリックする、終了しおください。



    â–Œ 音声を倉換する

    32bitから16bitにコンバヌト

     分離埌の音声の量子化ビット数が32bitになっおいるこずに気づきたした。そのたたでも構いたせんが、念のため、日垞で倚く䜿甚される16bit44.1kHz、2chなのでCDず同じ音質に倉換する手順を説明したす。

     SoundEngine Freehttps://soundengine.jp/, https://forest.watch.impress.co.jp/library/software/soundengine/を起動しお、倉換したいファむルをドラッグドロップで読み蟌たせおください。

     「ビット」が「32」になっおいたすので、ドロップダりンメニュヌで「16」を遞択しおください。

    画像
    16bitに倉換する(1)

     フォヌマット倉換のりむンドりが衚瀺されたすので、品質を「高い」たたは「非垞に高い」に倉曎しお「OK」をクリックしおください。品質を䞊げおもそれほど時間はかかりたせん。叀くから存圚するツヌルなので、このような蚭定項目があるものず思われたす。

    画像
    16bitに倉換する(2)

     最埌に、「保存䞊曞き」たたは「別名保存」で保存しおください。



    â–Œ 消費リ゜ヌスに぀いお

     GeForce RTX 3060VRAM 12GBで倉換したずきの状況に぀いお玹介したす。VRAMの消費量はかなりの増枛があり、倧量に䜿甚しおいるタむミングでキャプチャしたした。

     筆者の環境では2番目の蚭定「Use large GPU?」のチェックを倖すを䜿甚しお、5分の曲を分離するのに5分半かかりたした。参考たで、冒頭で玹介したDemucsではVRAMの消費が23GB皋床、時間は10秒皋床です。

    デフォルトの蚭定24GB向け

     GPUメモリの消費量占有ず共有の合蚈が22GBを超えたした。「Use large GPU?」のチェックはVRAM 24GB以䞊に限定した方が良いず思われたす。

    画像
    デフォルトはVRAMをかなり消費する

    largeのチェックを倖す12GB向け

     デフォルトから「Use large GPU?」のチェックを倖した状態です。12GBを超えるこずはありたせんでした。

    画像
    largeのチェックを倖すず12GBにおさたった

    Chunk sizeを半枛する8GB向け

     デフォルトから「Use large GPU?」のチェックを倖し、さらに「Chunk size」を半分の「500000」に蚭定した状態です。10GB近くたで䞊昇する共有GPUメモリも䜿甚するこずもありたすが、その時間は短く、おおむね8GB未満でした。おそらくこの蚭定で倧䞈倫です。

    画像
    Chunk sizeを枛らすずVRAM消費量も枛る

    VRAMが少ない環境の堎合

     必ず「Use large GPU?」のチェックを倖しおください。「Use single ONNX?」ぞのチェックもVRAMの消費を抑えたすが、若干の品質䜎䞋があるずのこずです。あずは、VRAMの消費量ず実行時間を芋ながら「Chunk size」を枛らしおいくしかありたせん。

     CPUを䜿甚する蚭定「Use CPU instead of GPU?」は最埌の砊です。Ryzen 5 3600では、10秒の音声を分離するのに56分かかりたした。なお、メモリはそれほど消費しないようです。



    â–Œ メモ

    アンむンストヌルの手順

     もし、必芁なファむルがあれば移動しおください。その埌、実行を終了りむンドりを閉じるした状態で解凍したファむルやディレクトリを党お削陀しおください。ダりンロヌドしたパッケヌゞやモデルも䞀緒に削陀されたす。



    â–Œ その他

     私が曞いた他の蚘事は、メニュヌよりたどっおください。

     noteのアカりントはメむンの@Mayu_Hiraizumiに玐付けおいたすが、蚘事に関するこずはサブアカりントの@riddi0908たでお願いしたす。

     
     
    5060Ti (16GB) ず 3060 (12GB) を所持。蚘茉が無い限り文章は手曞きです。蚘事に関するこずは X の riddi0908 たでお願いしたす。質問箱は気たぐれにお返事したす。

    あなたぞのおすすめ