[implemented][Intel macOS/AUv2] 学習からGarageBandまで動作 / 從訓練一路跑進GarageBand

Author: saitoomituruCreated Sep 4, 2026Updated Sep 4, 2026

作者旗 / 作者標記

現在このrepositoryでPull Requestが無効のため、実装済み分岐をIssueで共有します。採用する場合は、commit authorまたはChangelog上の出典を保持してください。

目前此repository已停用Pull Request,因此在Issue中分享已完成的實作分支。若採用此實作,請保留commit author,或在Changelog中標示來源。

GarageBandでRVC AUv2を使い、伴奏付きmixをoffline bounceしている実機画面

実演動画:ずんだもん・デルタもん・生声で歌う「村祭」

実験、失敗、GarageBand fault-injectionまで残したfork

日本語

WindowsのスクリーンショットしかなかったRVC Realtimeを、Intel Macで学習・推論・GarageBand AUv2まで連れてきました。

今回できたこと

  • RVCRealtimeVSTを共通のRVCRealtimeへ整理し、WindowsはVST2/VST3を維持、macOSはAPP/AUv2をbuild
  • Intel macOS x86_64のCPUで学習・推論
  • 手元でずんだもん・デルタもんの2モデルを実際に学習し、WebUIとAUで変換
  • GarageBandでmodel切替、pitch変更、設定slot復元、標準offline bounce
  • WebUIがRVC engine、model、processの死活を管理し、AUは薄いC++ audio headとしてRSVCへ接続
  • 再生中のruntimeを3回killするlive-host fault-injectionでもGarageBandは生存し、自動再生成・再接続
  • WebUIとAUの双方からmodelを変更。AUの明示選択はそのsessionでWebUI既定より優先
  • BonjourはmacOSのdns-sd / mDNSResponderをそのまま使用し、application独自のCIDRやsegment制限は追加しない
  • GarageBandのoffline renderを検出し、CPU推論を待ってdropoutのないbounceを書き出す

Python、PyTorch、model load、Bonjour探索、blocking networkはDAWのaudio threadへ入れていません。制御serviceと死活管理はWebUIへ集め、realtime audio portだけを分離しています。

再現確認

  • 空directoryからgit clone --recursive成功
  • model不要test: 43/43 pass
  • clean Release APP/AU build成功
  • APP/AU codesign --verify --deep --strict成功
  • clean build AU: auval -v aufx Rvcr Rvcp成功
  • GarageBand単trackと伴奏付きmixのoffline bounceを実際に聴取し、変換とdropoutなしを確認

手元にない機材

  • Intel CPUのrealtime再生は演算が間に合わずプチプチします。GarageBand標準offline bounceなら綺麗に書き出せます。
  • Windows実機、Apple Silicon、Logic Pro、2台目のMacは手元にありません。機材を持っている人に続きを試してもらいたいです。
  • 2モデルの学習は成功しましたが、このIntel Macで反復trainingを何度も行う品質保証はしていません。
  • model、学習音声、indexは著作権・利用条件があるため含めません。動画はcodeの実演であり、model配布ではありません。
  • iPlug2はMIDI I/OなしAPP初期化を修正したforkを参照しています。この1-file patchはiPlug2側へ別途提出します。

繁體中文

原本只看到Windows畫面的RVC Realtime,這次在Intel Mac上從訓練、推論一路跑進GarageBand AUv2。

這次完成的事

  • RVCRealtimeVST整理為共用RVCRealtime;Windows維持VST2/VST3,macOS建置APP/AUv2
  • 在Intel macOS x86_64 CPU上進行訓練與推論
  • 本地實際訓練ずんだもん與デルタもん兩個模型,並在WebUI與AU完成轉換
  • 在GarageBand完成模型切換、pitch調整、設定slot還原與標準offline bounce
  • WebUI管理RVC engine、模型與process生命週期;AU作為輕量C++ audio head連接RSVC
  • 播放中連續三次kill runtime的live-host fault-injection,GarageBand仍然存活,runtime可自動重建並重新連線
  • WebUI與AU都能切換模型;AU明確選擇在該session內優先於WebUI預設
  • Bonjour直接使用macOS的dns-sd / mDNSResponder,不另外增加CIDR或網段限制
  • 偵測GarageBand offline render,等待CPU推論完成,輸出沒有dropout的bounce

Python、PyTorch、模型載入、Bonjour探索及blocking network都不放進DAW audio thread。控制service與process生命週期集中在WebUI,只有realtime audio使用獨立port。

重現確認

  • 從空白目錄執行git clone --recursive成功
  • 不需模型的test:43/43通過
  • clean Release APP/AU build成功
  • APP/AU通過codesign --verify --deep --strict
  • clean build AU通過auval -v aufx Rvcr Rvcp
  • 實際聽取GarageBand單軌及含伴奏mix的offline bounce,確認轉換有效且沒有dropout

這次手上沒有的機材

  • Intel CPU即時播放運算不及,會出現爆音;GarageBand標準offline bounce可以平順輸出。
  • 手邊沒有Windows實機、Apple Silicon、Logic Pro及第二台Mac,歡迎有機材的人繼續測試。
  • 兩個模型都已成功訓練,但沒有在這台低效能Intel Mac上反覆重訓多次。
  • 模型、訓練音訊與index各有著作權及使用條款,因此不放進Issue或分支。上面的影片是程式碼實演,不是模型發行物。
  • iPlug2目前指向已修正「無MIDI I/O APP初始化」的fork;這個1-file patch會另外送往iPlug2。

Source: RVC-Project/Retrieval-based-Voice-Conversion-WebUI