DanceGAIOsuGAI 的運作方式

OsuGAI 的運作方式

OsuGAI 把歌曲轉成 osu! standard 圖包 (mapset),在遊戲區域中安排打擊圈、滑條與轉盤。系統先規劃整首歌,再生成節奏、配置物件並檢查結果。本頁介紹 2026 年 10 月 30 日發布的 v3.0。

本頁內容
  1. 01理解音樂
  2. 02規劃整首歌
  3. 03節奏與物件
  4. 04位置與幾何
  5. 05下載前的檢查

v3.0 測量摘要

訓練譜面
157,209
模型參數
~77M
訓練運算量
~78 GPU·h
校準測試的平均星數誤差
0.28★
有效性測試通過譜面
36 / 36
Flower Dance・6 個難度・T4
79 s

星數測試使用 3 首歌、4 個目標,每個目標使用一個種子;其中 2 首歌曾用於訓練。獨立的有效性測試使用 3 個種子。這些是小樣本測試,不代表所有歌曲的品質。

理解音樂

Beat This 偵測拍點與小節首拍,再由我們的 timing 網格擬合方法換算成 BPM 與 offset,也支援變速歌曲。MERT-v1-95M 提供逐拍對齊的音樂特徵。訓練譜面也使用同類網格。系統會偵測安靜的前奏、尾奏與淡出,讓沒有聲音的段落保持空白。

Beat This · MERT-v1-95M

規劃整首歌

約 5.9M參數的高斯擴散規劃器,在放置物件前先逐段描述整首歌。它依照音樂與要求的設定,同時規劃難度、風格與休息段,因此副歌可以更密集,安靜的間奏則能留白。

節奏與物件

主模型生成按下與放開、物件類型、滑條折返、新 combo、休息段與滑條速度。它是 MaskGIT 類型的非自回歸 Transformer:透過數輪修整生成整張譜,而非只由左至右書寫。節奏先生成並清理,再加入物件細節與速度。

位置與幾何

節奏與位置共用一個約 71M參數的網路,重用對音樂的理解。約束求解器讓物件留在遊戲區域內、依所需長度擬合滑條曲線,並寫入速度變化。無法正確組成的難度會回報失敗,而非輸出壞檔;24,000 次壓力測試中沒有觸發這條失敗路徑。

可以控制什麼

可選 ★1 至 ★10 目標,各難度分開設定。9 個風格控制涵蓋滑條、角度、間距、節奏、aim 與 speed 等特性;譜面設定包含 CS、AR、OD、HP 與滑條速度。模型會讀取 CS、AR、OD 與速度;HP 寫入檔案。所選難度會一起生成為同一個 mapset。

你選的是目標星數;下載的譜面會標示實際測得的難度。

下載前的檢查

系統會清理近到無法遊玩的連續按鍵與過短的長按,移除靜音中的物件,並檢查幾何。最後使用 osu! 的演算法測量星數,以實測值命名難度。測試也會用 osu!lazer 解析譜面。同一歌曲、設定與種子的 10 次重複生成,產生逐位元組相同的 .osu 檔。

訓練資料

資料共 157,209 張譜面:132,032 張 ranked、approved 或 loved 譜面,加上 ranked 區域以外的 25,177 張高星補充譜。基礎資料約有 56M個物件。高星選集排除 gimmick 譜、AI 生成譜,以及與驗證或測試歌曲相同的資料。同一歌曲的所有難度與音訊版本放在同一資料分割。另保留 200 首於 2026 年 ranked 的歌曲作盲測,不參與訓練。

訓練方式

規劃器與主網路都從零訓練。主網路約訓練 103 萬步,先使用 ranked 資料,再混入高星譜,最後以星數平衡抽樣。規劃器訓練 60,000 步。全部使用一張 RTX 4070 Ti SUPER:主網路約 68 GPU 小時,規劃器約 10 GPU 小時。檢查點依實際生成的譜面挑選,不只看驗證損失。

我們測量了什麼

下表校準測試的平均絕對誤差為 0.28 星。這只是小樣本校準檢查,無法證明對未見歌曲的表現,也未測試 ★9–★10。另一組使用 3 首歌、4 個目標、3 個種子的測試,36 張譜面全部有效。最終評估中,清理程序移除了原始模型每 1,000 個物件約 3.9 個節奏問題。

校準測試・v3.0・每個目標一個種子
★Flower DanceRiver Flows in YouFREEDOM DiVE
21.921.892.38
43.633.904.61
65.495.536.02
88.278.108.38

在 24 張譜面的測試中,休息段規劃找回了 50% 的人類休息段,涵蓋 35% 的人類休息時間。約 60% 的生成休息段與人類譜相符。給定正確規劃時,網路在 24 張中的 23 張放出了正確數量。這組測量使用正式發布的規劃器與較早的主網路,並非完整發布系統的評估。

從製作到可遊玩的譜面

瀏覽器先解碼並正規化音訊,再上傳。服務只為每首歌提取一次 timing 與音樂特徵,規劃所選難度後,在同一次 GPU 批次中生成。經過清理、星數測量與封裝,輸出附歌曲和背景的 .osz。以下是 Flower Dance 在正式服務 NVIDIA T4 上的測量例子,不是等待時間保證。

正式服務 T4 測量・Flower Dance
請求時間
1 個難度21–32 s
3 個難度42 s
4 個難度54 s
6 個難度・自動分布79 s
9 個難度116 s

v3.0 改了什麼

v2.0 使用分開的節奏與位置模型。v3.0 改為共用網路,訓練資料從 10,428 張增至 157,209 張,加入休息段規劃、可變滑條速度,以及每個難度的風格與譜面設定。Flower Dance 的 T4 紀錄為 v2.0 的 4 個難度 72 秒、v3.0 的 6 個難度 79 秒;工作量不同,不能當成速度倍率。

已知限制

  • 小樣本校準中,★4–★6 偏低,★8 略高;該測試未評估 ★9–★10。
  • 約一半的人類休息段仍被漏掉,有些生成的休息段位置也不適合。
  • 部分歌曲轉盤偏多,尤其低星譜;滑條形狀仍刻意保持簡單。
  • 長而快的歌曲可能因細微 timing 誤差累積而在後段漂移。
  • 新 combo 使用固定規則;沒有自訂 hitsound、kiai 段落或 storyboard。
  • 結構有效不代表好玩或設計良好。生成譜供遊玩與練習使用,不適用於 ranked 區域。

接下來的工作

改善休息段位置、全星數範圍的校準、滑條形狀與生成速度。v3.0 的盲測與滑條自相交測量尚未公開。TaikoGAI 與 CatchGAI 仍是未來產品。

延伸技術閱讀

使用 OsuGAI 製作譜面