chore(i18n): unify Traditional Chinese wording across UI and docs
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
[English](./README.md) | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hant.md) | Français
|
[English](./README.md) | Français | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hk.md)
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
[English](./README.md) | 简体中文 | [繁體中文](./README-zh_hant.md) | [Français](./README-fr.md)
|
[English](./README.md) | [Français](./README-fr.md) | 简体中文 | [繁體中文](./README-zh_hk.md)
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[English](./README.md) | [简体中文](./README-zh_cn.md) | 繁體中文 | [Français](./README-fr.md)
|
[English](./README.md) | [Français](./README-fr.md) | [简体中文](./README-zh_cn.md) | 繁體中文
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
## 什麼是 K.G.Studio?
|
## 什麼是 K.G.Studio?
|
||||||
|
|
||||||
K.G.Studio 是一款輕量、現代化的 DAW,完全執行於瀏覽器中,並以 **K.G.Studio 音樂創作助手** 為核心。它提供基於 Tone.js sampler 的真實樂器回放、鋼琴卷簾編輯器、支援完整復原/重做的音軌與區域管理、基於 OPFS(Origin Private File System)的專案持久化、可設定的設定面板,以及可執行工具的內建 AI 助手。
|
K.G.Studio 是一款輕量、現代化的 DAW,完全執行於瀏覽器中,並以 **K.G.Studio 音樂創作助手** 為核心。它提供基於 Tone.js sampler 的真實樂器回放、Piano Roll 編輯器、支援完整復原/重做的音軌與區域管理、基於 OPFS(Origin Private File System)的專案持久化、可設定的設定面板,以及可執行工具的內建 AI 助手。
|
||||||
|
|
||||||
**K.G.Studio 音樂創作助手** 是一個面向和聲、編曲與音符編輯的 AI 助手,但並不負責整首作品的全自動作曲。
|
**K.G.Studio 音樂創作助手** 是一個面向和聲、編曲與音符編輯的 AI 助手,但並不負責整首作品的全自動作曲。
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ K.G.Studio 是一款輕量、現代化的 DAW,完全執行於瀏覽器中,
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
- **2026.05.02**: 新增 **音訊軌頻譜可視化**。音訊區域現在會在時間網格中顯示即時頻譜疊加層。另新增 **Piano Roll hybrid mode**:當您在 MIDI 區域中開啟鋼琴卷簾時,可將相鄰音訊區域的頻譜作為參考層顯示,從而參照音訊形狀編輯 MIDI 音符。新增 **鋼琴卷簾縮放**,並保留目前視口位置,使畫面始終錨定在目前播放頭附近。還新增 **區域微調位置**,可用小步長推動區域以實現精確擺放;同時新增跨元件的播放頭捲動同步,使主網格與鋼琴卷簾在播放期間保持連動。
|
- **2026.05.02**: 新增 **音訊軌頻譜可視化**。音訊區域現在會在時間網格中顯示即時頻譜疊加層。另新增 **Piano Roll hybrid mode**:當您在 MIDI 區域中開啟鋼琴卷簾時,可將相鄰音訊區域的頻譜作為參考層顯示,從而參照音訊形狀編輯 MIDI 音符。新增 **鋼琴卷簾縮放**,並保留目前視口位置,使畫面始終錨定在目前播放頭附近。還新增 **區域微調位置**,可用小步長推動區域以實現精確擺放;同時新增跨元件的播放頭捲動同步,使主網格與鋼琴卷簾在播放期間保持連動。
|
||||||
- **2026.04.29**: 在 K.G.One Music Generator 面板中新增 **Remix** 和 **Repaint**(由 ACE-Step 1.5 驅動)。**Remix** 可讓您用新風格重製現有音訊區域,您只需選中音訊區域、描述目標風格,並可選填寫新歌詞,ACE-Step 就會按提示重新演繹歌曲的配器與氛圍。**Repaint** 可對歌曲中特定片段進行局部再生成,您可以先在時間線上設定 loop 範圍作為重繪視窗,再描述該片段應有的聲音效果,其餘部分將保持不變。兩項功能都支援與其他 K.G.One 分頁相同的匯入流程:可在內建播放器中預覽、拖曳到音軌上,或點擊 **Import Aligned to Source**,自動將結果放置到原始區域下方的新音軌中。
|
- **2026.04.29**: 在 K.G.One Music Generator 面板中新增 **Remix** 和 **Repaint**(由 ACE-Step 1.5 驅動)。**Remix** 可讓您用新風格重製現有音訊區域,您只需選取音訊區域、描述目標風格,並可選填寫新歌詞,ACE-Step 就會按提示重新演繹歌曲的配器與氛圍。**Repaint** 可對歌曲中特定片段進行局部再生成,您可以先在時間線上設定 loop 範圍作為重繪視窗,再描述該片段應有的聲音效果,其餘部分將保持不變。兩項功能都支援與其他 K.G.One 分頁相同的匯入流程:可在內建播放器中預覽、拖曳到音軌上,或點擊 **Import Aligned to Source**,自動將結果放置到原始區域下方的新音軌中。
|
||||||
- **2026.04.24**: 新增 [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) 整合。當 K.G.Studio 連線到本地 K.G.One 伺服器後,**K.G.One Music Generator** 面板(工具列中的魔杖按鈕 ✦)即可啟用,其中包含三項 AI 驅動工具:**Full Song Generation**(由 ACE-Step 1.5 驅動,可根據文字提示生成整首歌曲)、**Clip Generation**(由 Foundation-1 驅動,可根據文字生成樂器片段與 MIDI loop),以及 **Stem Separation**(由 python-audio-separator 驅動,可將任意音訊拆分為人聲、伴奏等多個 stem)。生成的音訊和 MIDI 均可即時預覽,並可直接拖曳到您的音軌中。K.G.One 完全執行在您自己的機器上(Windows/Linux,需要 CUDA GPU);詳細設定說明請參閱 [K.G.One 倉庫](https://github.com/KGAudioLab/K.G.One)。
|
- **2026.04.24**: 新增 [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) 整合。當 K.G.Studio 連線到本地 K.G.One 伺服器後,**K.G.One Music Generator** 面板(工具列中的魔杖按鈕 ✦)即可啟用,其中包含三項 AI 驅動工具:**Full Song Generation**(由 ACE-Step 1.5 驅動,可根據文字提示生成整首歌曲)、**Clip Generation**(由 Foundation-1 驅動,可根據文字生成樂器片段與 MIDI loop),以及 **Stem Separation**(由 python-audio-separator 驅動,可將任意音訊拆分為人聲、伴奏等多個 stem)。生成的音訊和 MIDI 均可即時預覽,並可直接拖曳到您的音軌中。K.G.One 完全執行在您自己的機器上(Windows/Linux,需要 CUDA GPU);詳細設定說明請參閱 [K.G.One 倉庫](https://github.com/KGAudioLab/K.G.One)。
|
||||||
- **2026.04.11**: 將專案儲存從 IndexedDB 遷移到 OPFS(Origin Private File System),並採用基於資料夾的結構,以更好地處理媒體檔案。新增音訊軌支援,包括 WAV/MP3 匯入、回放、循環,以及非破壞性區域裁剪。另新增基於離線渲染的 WAV/MP3 匯出功能。
|
- **2026.04.11**: 將專案儲存從 IndexedDB 遷移到 OPFS(Origin Private File System),並採用基於資料夾的結構,以更好地處理媒體檔案。新增音訊軌支援,包括 WAV/MP3 匯入、回放、循環,以及非破壞性區域裁剪。另新增基於離線渲染的 WAV/MP3 匯出功能。
|
||||||
- **2026.04.05**: 將 AI agent 從基於 XML 的工具呼叫遷移到原生 OpenAI SDK function calling,以提升可靠性與相容性。另新增 GPT-5.4 系列等 LLM 模型選項。
|
- **2026.04.05**: 將 AI agent 從基於 XML 的工具呼叫遷移到原生 OpenAI SDK function calling,以提升可靠性與相容性。另新增 GPT-5.4 系列等 LLM 模型選項。
|
||||||
@@ -133,7 +133,7 @@ K.G.Studio 可以藉助 WebGPU 加速,在瀏覽器中直接執行 **Gemma 4 E4
|
|||||||
- 使用鋼琴卷簾工具列右上角的 Snapping 功能可將編輯量化到網格。
|
- 使用鋼琴卷簾工具列右上角的 Snapping 功能可將編輯量化到網格。
|
||||||
|
|
||||||
### 使用 K.G.Studio 音樂創作助手
|
### 使用 K.G.Studio 音樂創作助手
|
||||||
- 選中您希望助手處理的音樂區域,在聊天框中輸入提示詞;按 Enter 傳送,按 Shift+Enter 插入換行。
|
- 選取您希望助手處理的音樂區域,在聊天框中輸入提示詞;按 Enter 傳送,按 Shift+Enter 插入換行。
|
||||||
- agent 會自動處理您的請求,並呼叫工具,在所選區域範圍內執行修改。某些任務可能需要一輪或多輪對話才能完成。
|
- agent 會自動處理您的請求,並呼叫工具,在所選區域範圍內執行修改。某些任務可能需要一輪或多輪對話才能完成。
|
||||||
- 請注意,AI 也可能出錯,因此您應始終檢查結果,並在必要時自行調整。您也可以透過復原/重做回退修改。
|
- 請注意,AI 也可能出錯,因此您應始終檢查結果,並在必要時自行調整。您也可以透過復原/重做回退修改。
|
||||||
- 點擊「+」按鈕或輸入 `/clear` 指令可清空聊天歷史。
|
- 點擊「+」按鈕或輸入 `/clear` 指令可清空聊天歷史。
|
||||||
@@ -146,16 +146,16 @@ K.G.Studio 可以藉助 WebGPU 加速,在瀏覽器中直接執行 **Gemma 4 E4
|
|||||||
- **K.G.Studio 音樂創作助手**:與由 LLM 驅動的 AI agent 進行對話;它會自動執行工具,對您所選區域內的音樂內容進行編輯。
|
- **K.G.Studio 音樂創作助手**:與由 LLM 驅動的 AI agent 進行對話;它會自動執行工具,對您所選區域內的音樂內容進行編輯。
|
||||||
- **瀏覽器內嵌 LLM,無需 API Key**:透過 WebGPU(LiteRT-LM)在瀏覽器中直接執行 **Gemma 4 E4B**。無 API 呼叫、無費用、資料不離開您的裝置。模型只需下載一次,隨後會快取在本地。
|
- **瀏覽器內嵌 LLM,無需 API Key**:透過 WebGPU(LiteRT-LM)在瀏覽器中直接執行 **Gemma 4 E4B**。無 API 呼叫、無費用、資料不離開您的裝置。模型只需下載一次,隨後會快取在本地。
|
||||||
- **瀏覽器內嵌分軌,無需伺服器**:使用 **UVR-MDX-NET-Inst_HQ_3**(2-stem:Vocals / Instrumental)或 **Demucs htdemucs_4s**(4-stem:Vocals / Drums / Bass / Others)將任意音訊區域拆分為 stems。兩者都完全在瀏覽器中透過 ONNX Runtime WebGPU 執行,無需 K.G.One 伺服器。
|
- **瀏覽器內嵌分軌,無需伺服器**:使用 **UVR-MDX-NET-Inst_HQ_3**(2-stem:Vocals / Instrumental)或 **Demucs htdemucs_4s**(4-stem:Vocals / Drums / Bass / Others)將任意音訊區域拆分為 stems。兩者都完全在瀏覽器中透過 ONNX Runtime WebGPU 執行,無需 K.G.One 伺服器。
|
||||||
- **音訊和弦檢測**:為音訊區域開啟鋼琴卷簾後執行 **Detect Chords**,即可透過零依賴 FFT 流水線自動分析錄音並填充全域 Chord Track,同時支援靈敏度、穩定性和七和弦檢測等設定。
|
- **音訊和弦檢測**:為音訊區域開啟 Piano Roll 後執行 **Detect Chords**,即可透過零依賴 FFT 流水線自動分析錄音並填充全域 Chord Track,同時支援靈敏度、穩定性和七和弦檢測等設定。
|
||||||
- **帶自動對齊拍點的速度檢測**:在鋼琴卷簾工具列執行 **Detect Tempo**,即可分析音訊區域的 BPM,並可選擇自動重新對齊專案的 Tempo Track。
|
- **帶自動對齊拍點的速度檢測**:在 Piano Roll 工具列執行 **Detect Tempo**,即可分析音訊區域的 BPM,並可選擇自動重新對齊專案的 Tempo Track。
|
||||||
- **全域軌系統**:四條持久存在的全域軌 **Marker**、**Tempo**、**Key Signature** 和 **Chord** 共同提供專案級結構,所有功能(播放時序、和弦檢測、五線譜顯示)都會參考它們。
|
- **全域軌系統**:四條持久存在的全域軌 **Marker**、**Tempo**、**Key Signature** 和 **Chord** 共同提供專案級結構,所有功能(播放時序、和弦檢測、五線譜顯示)都會參考它們。
|
||||||
- **K.G.One Music Studio 整合**:連接本地 [K.G.One](https://github.com/KGAudioLab/K.G.One) 伺服器後,可解鎖 GPU 加速的 **Full Song Generation**(ACE-Step 1.5)、**Clip & MIDI Loop Generation**(Foundation-1)以及更多 **Stem Separation** 模型。
|
- **K.G.One Music Studio 整合**:連接本地 [K.G.One](https://github.com/KGAudioLab/K.G.One) 伺服器後,可解鎖 GPU 加速的 **Full Song Generation**(ACE-Step 1.5)、**Clip & MIDI Loop Generation**(Foundation-1)以及更多 **Stem Separation** 模型。
|
||||||
- **多種 LLM 提供方**:支援 OpenAI、Claude / Gemini(透過 OpenRouter)、OpenAI 相容服務(Ollama、vLLM 等),或內建的本地瀏覽器 LLM,無需 Key。
|
- **多種 LLM 提供方**:支援 OpenAI、Claude / Gemini(透過 OpenRouter)、OpenAI 相容服務(Ollama、vLLM 等),或內建的本地瀏覽器 LLM,無需 Key。
|
||||||
- **音軌與區域編輯**:支援新增/重排音軌、建立/移動/縮放區域、套索多選、批次移動/縮放、合併與拆分區域,以及完整復原/重做。
|
- **音軌與區域編輯**:支援新增/重排音軌、建立/移動/縮放區域、套索多選、批次移動/縮放、合併與拆分區域,以及完整復原/重做。
|
||||||
- **鋼琴卷簾**:支援音符、pitch bend 和 MIDI CC 自動化軌;支援基於 VexFlow 的五線譜視圖;支援音訊到 MIDI 參考用途的頻譜疊加層。
|
- **Piano Roll**:支援音符、pitch bend 和 MIDI CC 自動化軌;支援基於 VexFlow 的五線譜視圖;支援音訊到 MIDI 參考用途的頻譜疊加層。
|
||||||
- **真實樂器**:基於 Tone.js 的 sampler,搭配高品質 FluidR3 soundfonts。您還可以直接從麥克風錄製到音訊軌。
|
- **真實樂器**:基於 Tone.js 的 sampler,搭配高品質 FluidR3 soundfonts。您還可以直接從麥克風錄製到音訊軌。
|
||||||
- **智慧和弦助手**:基於功能和聲(T/S/D)提供即時和弦建議,並支援可視預覽與一鍵建立和弦。
|
- **智慧和弦助手**:基於功能和聲(T/S/D)提供即時和弦建議,並支援可視預覽與一鍵建立和弦。
|
||||||
- **兼顧持久化與隱私**:專案和設定完全保存在您的瀏覽器中(OPFS / IndexedDB)。專案本身不依賴第一方伺服器。
|
- **兼顧持久化與隱私**:專案和設定完全儲存在您的瀏覽器中(OPFS / IndexedDB)。專案本身不依賴第一方伺服器。
|
||||||
|
|
||||||
如需更深入的技術概覽,請參閱 [overview.md](./docs/technical/overview.md)。
|
如需更深入的技術概覽,請參閱 [overview.md](./docs/technical/overview.md)。
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ K.G.Studio 會從 `./public/config.json` 載入預設設定(內部也提供回
|
|||||||
### 連線性與隱私
|
### 連線性與隱私
|
||||||
|
|
||||||
- K.G.Studio 完全在客戶端執行。執行應用不需要任何第一方伺服器。
|
- K.G.Studio 完全在客戶端執行。執行應用不需要任何第一方伺服器。
|
||||||
- 專案和音訊檔案保存在瀏覽器的 OPFS(Origin Private File System)中;設定保存在 IndexedDB 中。所有資料都留在您的裝置上。
|
- 專案和音訊檔案儲存在瀏覽器的 OPFS(Origin Private File System)中;設定儲存在 IndexedDB 中。所有資料都留在您的裝置上。
|
||||||
- 網路存取僅用於:
|
- 網路存取僅用於:
|
||||||
- 從設定的 soundfont CDN 下載樂器採樣
|
- 從設定的 soundfont CDN 下載樂器採樣
|
||||||
- 與您選擇的 LLM 提供方通訊(例如 OpenAI 或 OpenAI 相容服務)
|
- 與您選擇的 LLM 提供方通訊(例如 OpenAI 或 OpenAI 相容服務)
|
||||||
@@ -261,7 +261,7 @@ K.G.Studio 會從 `./public/config.json` 載入預設設定(內部也提供回
|
|||||||
|
|
||||||
- 請先按照前文說明完成 LLM 提供方設定。
|
- 請先按照前文說明完成 LLM 提供方設定。
|
||||||
- 您可以在右側找到 K.G.Studio 音樂創作助手聊天框。如果目前未顯示,可點擊工具列中的 Chat 🗨️ 按鈕開啟。
|
- 您可以在右側找到 K.G.Studio 音樂創作助手聊天框。如果目前未顯示,可點擊工具列中的 Chat 🗨️ 按鈕開啟。
|
||||||
- 選中您希望助手處理的區域,在聊天框中輸入提示詞;按 Enter 傳送,按 Shift+Enter 插入換行。
|
- 選取您希望助手處理的區域,在聊天框中輸入提示詞;按 Enter 傳送,按 Shift+Enter 插入換行。
|
||||||
- agent 會自動處理您的請求,並呼叫工具,在所選區域範圍內執行修改。某些任務可能需要一輪或多輪對話才能完成。
|
- agent 會自動處理您的請求,並呼叫工具,在所選區域範圍內執行修改。某些任務可能需要一輪或多輪對話才能完成。
|
||||||
- 請注意,AI 也可能出錯,因此您應始終檢查結果,並在必要時自行調整。您也可以透過復原/重做回退修改。
|
- 請注意,AI 也可能出錯,因此您應始終檢查結果,並在必要時自行調整。您也可以透過復原/重做回退修改。
|
||||||
- 點擊「+」按鈕或輸入 `/clear` 指令可清空聊天歷史。
|
- 點擊「+」按鈕或輸入 `/clear` 指令可清空聊天歷史。
|
||||||
@@ -302,11 +302,11 @@ OpenRouter 是一個統一接入平台,可讓您存取來自多個提供方的
|
|||||||
|
|
||||||
出於安全考量,當您從非本地主機環境使用 K.G.Studio 時,API Key 預設不會持久化到 IndexedDB 中;這表示您每次啟動 K.G.Studio 時都需要重新輸入。如需在非本地主機環境中啟用持久化,請在設定中開啟「Persist API Keys on Non-Localhost」(不建議在共享或生產環境中啟用)。
|
出於安全考量,當您從非本地主機環境使用 K.G.Studio 時,API Key 預設不會持久化到 IndexedDB 中;這表示您每次啟動 K.G.Studio 時都需要重新輸入。如需在非本地主機環境中啟用持久化,請在設定中開啟「Persist API Keys on Non-Localhost」(不建議在共享或生產環境中啟用)。
|
||||||
|
|
||||||
K.G.Studio 不提供也不託管上述任何模型,也不隸屬於任何模型提供方。所有資料都保存在您的本地裝置中;K.G.Studio 不會蒐集或傳輸您的資料。若您向第三方模型提供方傳送任何資料,相關責任由您自行承擔。
|
K.G.Studio 不提供也不託管上述任何模型,也不隸屬於任何模型提供方。所有資料都儲存在您的本地裝置中;K.G.Studio 不會蒐集或傳輸您的資料。若您向第三方模型提供方傳送任何資料,相關責任由您自行承擔。
|
||||||
|
|
||||||
## K.G.One Music Generator
|
## K.G.One Music Generator
|
||||||
|
|
||||||
> **需要 [K.G.One Music Studio](https://github.com/KGAudioLab/K.G.One) 整合。** 只有當 K.G.Studio 連線到正在執行的 K.G.One 伺服器時,K.G.One Music Generator 面板才會可用。設定說明請參閱 [K.G.One 倉庫](https://github.com/KGAudioLab/K.G.One)。
|
> **需要 [K.G.One Music Studio](https://github.com/KGAudioLab/K.G.One) 整合。** 只有當 K.G.Studio 連線到正在執行的 K.G.One 伺服器時,K.G.One Music Generator 面板才會可用。設定說明請參閱 [K.G.One 儲存庫](https://github.com/KGAudioLab/K.G.One)。
|
||||||
|
|
||||||
**K.G.One Music Generator** 面板提供三項經 GPU 加速的 AI 工具,用於音樂生成與音訊處理。點擊工具列中的 **✦(魔杖)** 按鈕即可開啟。該面板與 AI Assistant 聊天框互斥,開啟其中一個時,另一個會自動關閉。
|
**K.G.One Music Generator** 面板提供三項經 GPU 加速的 AI 工具,用於音樂生成與音訊處理。點擊工具列中的 **✦(魔杖)** 按鈕即可開啟。該面板與 AI Assistant 聊天框互斥,開啟其中一個時,另一個會自動關閉。
|
||||||
|
|
||||||
@@ -349,7 +349,7 @@ K.G.Studio 支援 **兩種模式** 的分軌:
|
|||||||
- **Vocal and Instrument (Medium Accuracy)**(`UVR-MDX-NET-Inst_HQ_3`,約 64 MB)— 雙 stem 分離(Vocals / Instrumental)。由 [UVR-MDX-NET](https://github.com/nomadkaraoke/python-audio-separator) 驅動。
|
- **Vocal and Instrument (Medium Accuracy)**(`UVR-MDX-NET-Inst_HQ_3`,約 64 MB)— 雙 stem 分離(Vocals / Instrumental)。由 [UVR-MDX-NET](https://github.com/nomadkaraoke/python-audio-separator) 驅動。
|
||||||
- **Vocal, Drums, Bass, and Others**(`htdemucs_4s`,約 172 MB)— 四 stem 分離(Vocals / Drums / Bass / Others)。由 [Demucs](https://github.com/facebookresearch/demucs) 驅動。
|
- **Vocal, Drums, Bass, and Others**(`htdemucs_4s`,約 172 MB)— 四 stem 分離(Vocals / Drums / Bass / Others)。由 [Demucs](https://github.com/facebookresearch/demucs) 驅動。
|
||||||
|
|
||||||
開啟 **Music Generator** 面板(工具列中的 ✦ 按鈕),選擇模型,先點擊一次 **Download Selected Model**,然後點擊 **Separate Stems**,所有處理都會在您的瀏覽器中本地完成。
|
開啟 **Music Generator** 面板(工具列中的 ✦ 按鈕),選擇模型,先點擊一次 **Download Selected Model**,然後點擊 **Separate Stems**,所有處理都會在您的瀏覽器中本機完成。
|
||||||
|
|
||||||
**要求:** 需要支援 WebGPU 的瀏覽器(Chrome 113+ 或 Edge 113+),並執行在安全上下文中(HTTPS 或 localhost)。若可用,會優先使用 WebGPU 加速;否則會回退到 CPU(處理期間可能降低頁面回應性)。推薦硬體為至少 8 GB 顯存的 GPU,或至少 16 GB 統一記憶體的系統。
|
**要求:** 需要支援 WebGPU 的瀏覽器(Chrome 113+ 或 Edge 113+),並執行在安全上下文中(HTTPS 或 localhost)。若可用,會優先使用 WebGPU 加速;否則會回退到 CPU(處理期間可能降低頁面回應性)。推薦硬體為至少 8 GB 顯存的 GPU,或至少 16 GB 統一記憶體的系統。
|
||||||
|
|
||||||
@@ -363,7 +363,7 @@ K.G.Studio 支援 **兩種模式** 的分軌:
|
|||||||
|
|
||||||
#### 使用方式(兩種模式通用)
|
#### 使用方式(兩種模式通用)
|
||||||
|
|
||||||
- 在開啟此分頁之前,請先在時間線上**選中一個音訊區域**。**Separator** 分頁頂部會顯示目前所選區域及其音軌名稱。僅支援音訊區域,不支援分離 MIDI 區域。
|
- 在開啟此分頁之前,請先在時間線上**選取一個音訊區域**。**Separator** 分頁頂部會顯示目前所選區域及其音軌名稱。僅支援音訊區域,不支援分離 MIDI 區域。
|
||||||
- 點擊 **Separate Stems**。如果目前所選區域帶有 clip start offset 或已被裁剪,系統會先自動按該區域範圍切出對應音訊,再進行處理。
|
- 點擊 **Separate Stems**。如果目前所選區域帶有 clip start offset 或已被裁剪,系統會先自動按該區域範圍切出對應音訊,再進行處理。
|
||||||
- 處理完成後,每個 stem 都會以帶標籤的預覽播放器顯示,並附帶拖曳手把。您可以在匯入前分別試聽每個 stem。
|
- 處理完成後,每個 stem 都會以帶標籤的預覽播放器顯示,並附帶拖曳手把。您可以在匯入前分別試聽每個 stem。
|
||||||
- **匯入 stems:**
|
- **匯入 stems:**
|
||||||
@@ -442,7 +442,7 @@ K.G.Studio 是一個處於早期開發階段的實驗性專案。我們正在探
|
|||||||
|
|
||||||
該專案關注 AI 與人類協作如何增強音樂創作過程,從智慧和聲建議到自動化編輯任務都在探索範圍內。作為實驗平台,專案會頻繁變化,功能將持續演進,並且在我們推進 AI 輔助音樂製作邊界的過程中,偶爾出現不穩定情況也是可以預期的。
|
該專案關注 AI 與人類協作如何增強音樂創作過程,從智慧和聲建議到自動化編輯任務都在探索範圍內。作為實驗平台,專案會頻繁變化,功能將持續演進,並且在我們推進 AI 輔助音樂製作邊界的過程中,偶爾出現不穩定情況也是可以預期的。
|
||||||
|
|
||||||
K.G.Studio 不提供也不託管任何 LLM 模型,也不隸屬於任何模型提供方。所有資料都保存在您的本地裝置中;K.G.Studio 不會蒐集或傳輸您的資料。若您向第三方模型提供方傳送任何資料,相關責任由您自行承擔。
|
K.G.Studio 不提供也不託管任何 LLM 模型,也不隸屬於任何模型提供方。所有資料都儲存在您的本地裝置中;K.G.Studio 不會蒐集或傳輸您的資料。若您向第三方模型提供方傳送任何資料,相關責任由您自行承擔。
|
||||||
|
|
||||||
## 授權條款
|
## 授權條款
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
English | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hant.md) | [Français](./README-fr.md)
|
English | [Français](./README-fr.md) | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hk.md)
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||||
|
|||||||
+43
-43
@@ -2,20 +2,20 @@
|
|||||||
|
|
||||||
歡迎使用 **K.G.Studio 音樂創作助手**。這是您的 AI 音樂創作與編曲助手,可以幫助您構思、編排和修改音樂內容。
|
歡迎使用 **K.G.Studio 音樂創作助手**。這是您的 AI 音樂創作與編曲助手,可以幫助您構思、編排和修改音樂內容。
|
||||||
|
|
||||||
您可以選擇使用 **內置本地瀏覽器 LLM**(無需 API Key),也可以配置外部 LLM 提供方。下面是常用的入門方式。
|
您可以選擇使用 **內建本地瀏覽器 LLM**(無需 API Key),也可以設定外部 LLM 提供方。下面是常用的入門方式。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 使用本地 LLM(瀏覽器)——無需 API Key
|
### 使用本地 LLM(瀏覽器)——無需 API Key
|
||||||
|
|
||||||
K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不會產生外部 API 調用費用,數據也不會離開您的設備。
|
K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不會產生外部 API 呼叫費用,資料也不會離開您的裝置。
|
||||||
|
|
||||||
1. 進入 **設置 ⚙️ → 通用 → LLM 提供方**,選擇 **本地 LLM(瀏覽器)**(默認選項)。
|
1. 進入 **設定 ⚙️ → 通用 → LLM 提供方**,選擇 **本地 LLM(瀏覽器)**(預設選項)。
|
||||||
2. 第一次打開聊天時會自動下載模型(約 2.8 GB),後續會緩存在本地瀏覽器中。
|
2. 第一次開啟聊天時會自動下載模型(約 2.8 GB),後續會快取在本地瀏覽器中。
|
||||||
3. 可選設置 **上下文長度**(32k / 64k / 128k tokens);越大越佔顯存。
|
3. 可選設定 **上下文長度**(32k / 64k / 128k tokens);越大越佔顯存。
|
||||||
4. 現在就可以開始聊天,無需 Key、帳號或持續聯網。
|
4. 現在就可以開始聊天,無需 Key、帳號或持續聯網。
|
||||||
|
|
||||||
**要求:** Chrome 113+ 或 Edge 113+,安全上下文(HTTPS 或 localhost),以及至少 8 GB 顯存的 GPU 或至少 16 GB 統一內存的系統。
|
**要求:** Chrome 113+ 或 Edge 113+,安全上下文(HTTPS 或 localhost),以及至少 8 GB 顯存的 GPU 或至少 16 GB 統一記憶體的系統。
|
||||||
|
|
||||||
> 注意:本地模型效果無法與 GPT 或 Claude 這類商業模型完全相比。複雜任務通常更適合外部提供方。
|
> 注意:本地模型效果無法與 GPT 或 Claude 這類商業模型完全相比。複雜任務通常更適合外部提供方。
|
||||||
|
|
||||||
@@ -23,14 +23,14 @@ K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不
|
|||||||
|
|
||||||
### 配置外部 LLM 提供方
|
### 配置外部 LLM 提供方
|
||||||
|
|
||||||
進入 **設置 ⚙️ → 通用 → LLM 提供方**。根據所選提供方,您需要填寫對應的 API Key,以及在需要時填寫 Base URL(例如 Ollama、OpenRouter 等 OpenAI 兼容服務)。
|
進入 **設定 ⚙️ → 通用 → LLM 提供方**。根據所選提供方,您需要填寫對應的 API Key,以及在需要時填寫 Base URL(例如 Ollama、OpenRouter 等 OpenAI 兼容服務)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 使用 OpenAI GPT 系列
|
### 使用 OpenAI GPT 系列
|
||||||
|
|
||||||
1. 在 [**OpenAI**](https://platform.openai.com/account/api-keys) 獲取 API Key。您可能需要先注冊帳號並添加支付方式。
|
1. 在 [**OpenAI**](https://platform.openai.com/account/api-keys) 取得 API Key。您可能需要先註冊帳號並新增付款方式。
|
||||||
2. 在 **設置 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI**。
|
2. 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI**。
|
||||||
3. 在 **OpenAI → 密鑰** 中填入 API Key。
|
3. 在 **OpenAI → 密鑰** 中填入 API Key。
|
||||||
4. 在 **OpenAI → 模型** 下拉中選擇模型。若希望在成本和效果之間取得平衡,推薦 `gpt-5.4-mini`。
|
4. 在 **OpenAI → 模型** 下拉中選擇模型。若希望在成本和效果之間取得平衡,推薦 `gpt-5.4-mini`。
|
||||||
5. 可選:在 **OpenAI → Flex 模式** 中啟用 Flex Mode。它可能降低成本,但也可能帶來更高延遲或更多服務端錯誤。
|
5. 可選:在 **OpenAI → Flex 模式** 中啟用 Flex Mode。它可能降低成本,但也可能帶來更高延遲或更多服務端錯誤。
|
||||||
@@ -41,18 +41,18 @@ K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不
|
|||||||
|
|
||||||
OpenRouter 提供統一接口,可訪問多個語言模型提供方的模型,其中也包含免費選項,適合比較不同模型表現。
|
OpenRouter 提供統一接口,可訪問多個語言模型提供方的模型,其中也包含免費選項,適合比較不同模型表現。
|
||||||
|
|
||||||
1. 在 [**OpenRouter**](https://openrouter.ai/keys) 獲取 API Key。需要注冊;使用付費模型時可能還需要綁定支付方式。
|
1. 在 [**OpenRouter**](https://openrouter.ai/keys) 取得 API Key。需要註冊;使用付費模型時可能還需要綁定付款方式。
|
||||||
2. 在 **設置 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI 兼容服務**。
|
2. 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI 兼容服務**。
|
||||||
3. 在 **OpenAI 兼容服務 → 密鑰** 中填入 API Key。
|
3. 在 **OpenAI 兼容服務 → 密鑰** 中填入 API Key。
|
||||||
4. 在 [**OpenRouter Models Page**](https://openrouter.ai/models) 瀏覽可用模型,並可使用 "Prompt Pricing" 過濾免費模型。
|
4. 在 [**OpenRouter Models Page**](https://openrouter.ai/models) 瀏覽可用模型,並可使用 "Prompt Pricing" 過濾免費模型。
|
||||||
**注意:** 各模型提供方的數據保留與隱私策略可能不同,使用前請自行查看。
|
**注意:** 各模型提供方的資料保留與隱私策略可能不同,使用前請自行查看。
|
||||||
5. 在 **OpenAI 兼容服務 → 模型** 中填入模型名。推薦系列包括:
|
5. 在 **OpenAI 兼容服務 → 模型** 中填入模型名。推薦系列包括:
|
||||||
- `Anthropic: Claude Sonnet 4.6`(`anthropic/claude-sonnet-4.6`)—— Claude 系列裡質量和成本平衡較好
|
- `Anthropic: Claude Sonnet 4.6`(`anthropic/claude-sonnet-4.6`)—— Claude 系列裡質量和成本平衡較好
|
||||||
- `Qwen: Qwen3.5-35B-A3B`(`qwen/qwen3.5-35b-a3b`)—— 推薦開源模型
|
- `Qwen: Qwen3.5-35B-A3B`(`qwen/qwen3.5-35b-a3b`)—— 推薦開源模型
|
||||||
- `Qwen: Qwen3-Next-80B-A3B`(免費:`qwen/qwen3-next-80b-a3b-instruct:free`)—— 推薦免費模型
|
- `Qwen: Qwen3-Next-80B-A3B`(免費:`qwen/qwen3-next-80b-a3b-instruct:free`)—— 推薦免費模型
|
||||||
- `OpenAI: GPT-OSS 120B`(免費:`openai/gpt-oss-120b:free`)—— 推薦免費模型
|
- `OpenAI: GPT-OSS 120B`(免費:`openai/gpt-oss-120b:free`)—— 推薦免費模型
|
||||||
- 注意:免費模型會經常變化,請以 OpenRouter 模型頁中的 **Prompt Pricing** 過濾結果為準
|
- 注意:免費模型會經常變化,請以 OpenRouter 模型頁中的 **Prompt Pricing** 過濾結果為準
|
||||||
- 注意:免費模型提供方可能會收集您的數據,使用前請先查看模型頁面說明
|
- 注意:免費模型提供方可能會收集您的資料,使用前請先查看模型頁面說明
|
||||||
6. 在 **OpenAI 兼容服務 → 基礎 URL** 中填寫 `https://openrouter.ai/api/v1`。
|
6. 在 **OpenAI 兼容服務 → 基礎 URL** 中填寫 `https://openrouter.ai/api/v1`。
|
||||||
|
|
||||||
### 基本 DAW 操作
|
### 基本 DAW 操作
|
||||||
@@ -60,67 +60,67 @@ OpenRouter 提供統一接口,可訪問多個語言模型提供方的模型,
|
|||||||
聊天命令:`/clear`、`/welcome`、`/help`、`/hotkeys`
|
聊天命令:`/clear`、`/welcome`、`/help`、`/hotkeys`
|
||||||
|
|
||||||
- 音軌
|
- 音軌
|
||||||
- 在軌道信息面板中添加、重命名和重排音軌。
|
- 在軌道資訊面板中新增、重命名和重排音軌。
|
||||||
- 通過樂器按鈕(鋼琴圖標)切換樂器;可調整 Solo(S)、Mute(M)和 Volume。
|
- 通過樂器按鈕(鋼琴圖示)切換樂器;可調整 Solo(S)、Mute(M)和 Volume。
|
||||||
- 通過音軌設置菜單刪除音軌(位於樂器按鈕右側)。
|
- 通過音軌設定選單刪除音軌(位於樂器按鈕右側)。
|
||||||
- **音頻錄音**:點擊工具欄裡的 Rec 按鈕,可直接從麥克風錄到音頻軌。
|
- **音訊錄音**:點擊工具列裡的 Rec 按鈕,可直接從麥克風錄到音訊軌。
|
||||||
|
|
||||||
- 區域
|
- 區域
|
||||||
- 創建區域:使用 Pointer 工具時可雙擊,或按住 Ctrl/Cmd 再點擊;使用 Pencil 工具時單擊即可。
|
- 建立區域:使用 Pointer 工具時可雙擊,或按住 Ctrl/Cmd 再點擊;使用 Pencil 工具時單擊即可。
|
||||||
- 移動/縮放:拖動區域主體可移動,拖動邊緣可調整長度。
|
- 移動/縮放:拖動區域主體可移動,拖動邊緣可調整長度。
|
||||||
- 通過區域左上角的小鉛筆打開鋼琴卷簾窗口。
|
- 通過區域左上角的小鉛筆開啟 Piano Roll。
|
||||||
|
|
||||||
- 鋼琴卷簾(MIDI 音符)
|
- Piano Roll(MIDI 音符)
|
||||||
- 工具:Select 與 Pencil。
|
- 工具:Select 與 Pencil。
|
||||||
- 創建音符:在 Select 模式下雙擊或 Ctrl/Cmd+點擊;在 Pencil 模式下單擊。
|
- 建立音符:在 Select 模式下雙擊或 Ctrl/Cmd+點擊;在 Pencil 模式下單擊。
|
||||||
- 選擇音符:單擊;Shift+單擊多選;拖拽框選。
|
- 選取音符:單擊;Shift+單擊多選;拖曳框選。
|
||||||
- 移動/縮放:拖動音符主體可移動已選音符;拖動邊緣可調整長度。
|
- 移動/縮放:拖動音符主體可移動已選音符;拖動邊緣可調整長度。
|
||||||
- **五線譜視圖**:可在鋼琴卷簾工具欄中切換鋼琴卷簾與五線譜視圖。支持自動譜號、調號顯示、連音線和符桿分組。啟用 **Track Scope** 後會連續顯示整條 MIDI 音軌上的內容。
|
- **五線譜視圖**:可在 Piano Roll 工具列中切換 Piano Roll 與五線譜視圖。支援自動譜號、調號顯示、連音線和符槓分組。啟用 **Track Scope** 後會連續顯示整條 MIDI 音軌上的內容。
|
||||||
- **自動化軌道**:可在下方自動化區域繪製和編輯 Pitch Bend 與 MIDI CC 曲線(Modulation、Breath、Volume、Expression、Sustain)。
|
- **自動化軌道**:可在下方自動化區域繪製和編輯 Pitch Bend 與 MIDI CC 曲線(Modulation、Breath、Volume、Expression、Sustain)。
|
||||||
- **頻譜模式**:可在鋼琴卷簾中查看音頻區域的頻譜,作為 MIDI 編輯參考層。
|
- **頻譜模式**:可在 Piano Roll 中查看音訊區域的頻譜,作為 MIDI 編輯參考層。
|
||||||
- **事件列表面板**:提供 Notes / Pitch Bend / Controller 標籤頁,用於查看並內聯編輯當前 MIDI 區域中的事件。
|
- **事件列表面板**:提供 Notes / Pitch Bend / Controller 標籤頁,用於查看並內聯編輯當前 MIDI 區域中的事件。
|
||||||
- 可通過 X 或 ESC 關閉鋼琴卷簾窗口。
|
- 可通過 X 或 ESC 關閉 Piano Roll 視窗。
|
||||||
|
|
||||||
- 智能和弦助手
|
- 智能和弦助手
|
||||||
- 在鋼琴卷簾工具欄中使用 `⊘`、`T`、`S`、`D` 啟用和弦指導。
|
- 在 Piano Roll 工具列中使用 `⊘`、`T`、`S`、`D` 啟用和弦指導。
|
||||||
- 和弦候選會根據播放頭當前位置的有效調號來推斷:大調使用 Ionian,小調使用 Aeolian。
|
- 和弦候選會根據播放頭當前位置的有效調號來推斷:大調使用 Ionian,小調使用 Aeolian。
|
||||||
- 將鼠標懸停在任意琴鍵上時,會以紅色高亮顯示上下文相關的和弦建議。
|
- 將滑鼠懸停在任意琴鍵上時,會以紅色高亮顯示上下文相關的和弦建議。
|
||||||
- 按 `g` 循環切換和弦指導模式,按 `Tab` 切換到下一個候選和弦,按 `Shift+Tab` 切換到上一個。
|
- 按 `g` 循環切換和弦指導模式,按 `Tab` 切換到下一個候選和弦,按 `Shift+Tab` 切換到上一個。
|
||||||
- 雙擊(或 Ctrl/Cmd+點擊)高亮和弦可一次性創建整組音符。
|
- 雙擊(或 Ctrl/Cmd+點擊)高亮和弦可一次性建立整組音符。
|
||||||
- 和弦長度會自動匹配您最近編輯的音符長度,以保持節奏一致。
|
- 和弦長度會自動匹配您最近編輯的音符長度,以保持節奏一致。
|
||||||
|
|
||||||
- 全局軌系統
|
- 全域軌系統
|
||||||
- 時間線上方固定有四條軌道:**Marker**、**Tempo**、**Key Signature**、**Chord**。
|
- 時間線上方固定有四條軌道:**Marker**、**Tempo**、**Key Signature**、**Chord**。
|
||||||
- 創建全局區域:在全局軌中雙擊或 Ctrl/Cmd+點擊;拖動可移動,拖動邊緣可調整長度。
|
- 建立全域區域:在全域軌中雙擊或 Ctrl/Cmd+點擊;拖動可移動,拖動邊緣可調整長度。
|
||||||
- 這些軌道會影響播放時序、和弦指導、五線譜調號顯示,以及和弦檢測結果。
|
- 這些軌道會影響播放時序、和弦指導、五線譜調號顯示,以及和弦檢測結果。
|
||||||
|
|
||||||
- 音頻分析功能
|
- 音訊分析功能
|
||||||
- **Detect Chords**:在音頻區域打開鋼琴卷簾窗口後,點擊 **...** → **Detect Chords**,即可自動分析並把結果寫入全局 Chord Track。可配置靈敏度、穩定性和七和弦檢測。
|
- **Detect Chords**:在音訊區域開啟 Piano Roll 後,點擊 **...** → **Detect Chords**,即可自動分析並把結果寫入全域 Chord Track。可設定靈敏度、穩定性和七和弦檢測。
|
||||||
- **Detect Tempo**:在音頻區域打開鋼琴卷簾窗口後,點擊 **...** → **Detect Tempo**,即可分析 BPM,並可選擇自動對齊項目中的 Tempo Track。
|
- **Detect Tempo**:在音訊區域開啟 Piano Roll 後,點擊 **...** → **Detect Tempo**,即可分析 BPM,並可選擇自動對齊專案中的 Tempo Track。
|
||||||
|
|
||||||
- K.G.One 音樂生成器
|
- K.G.One 音樂生成器
|
||||||
- 點擊工具欄中的 **✦**(魔杖)按鈕打開生成器面板。
|
- 點擊工具列中的 **✦**(魔杖)按鈕開啟生成器面板。
|
||||||
- **Full Song Generation**:根據文本描述和可選歌詞生成整首歌曲(需要 K.G.One 服務器)。
|
- **Full Song Generation**:根據文本描述和可選歌詞生成整首歌曲(需要 K.G.One 伺服器)。
|
||||||
- **Clip Generation**:根據文本提示生成短音頻片段和 MIDI loop(需要 K.G.One 服務器)。
|
- **Clip Generation**:根據文本提示生成短音訊片段和 MIDI loop(需要 K.G.One 伺服器)。
|
||||||
- **Stem Separation(瀏覽器)**:可完全在瀏覽器中把任意音頻區域分離成 stems,無需服務器。支持兩種模型:**UVR-MDX-NET-Inst_HQ_3**(2 stem:Vocals / Instrumental,約 64 MB)和 **Demucs htdemucs_4s**(4 stem:Vocals / Drums / Bass / Others,約 172 MB)。在生成器面板中下載模型後,點擊 **Separate Stems** 即可。需要 WebGPU(Chrome 113+ / Edge 113+)。
|
- **Stem Separation(瀏覽器)**:可完全在瀏覽器中把任意音訊區域分離成 stems,無需伺服器。支援兩種模型:**UVR-MDX-NET-Inst_HQ_3**(2 stem:Vocals / Instrumental,約 64 MB)和 **Demucs htdemucs_4s**(4 stem:Vocals / Drums / Bass / Others,約 172 MB)。在生成器面板中下載模型後,點擊 **Separate Stems** 即可。需要 WebGPU(Chrome 113+ / Edge 113+)。
|
||||||
|
|
||||||
- 吸附與量化
|
- 吸附與量化
|
||||||
- 在右上角的 NO SNAP 菜單中設置吸附。
|
- 在右上角的 NO SNAP 選單中設定吸附。
|
||||||
- 使用 Qua. Pos.(起始)和 Qua. Len.(長度)進行量化。
|
- 使用 Qua. Pos.(起始)和 Qua. Len.(長度)進行量化。
|
||||||
|
|
||||||
- 播放與播放頭
|
- 播放與播放頭
|
||||||
- 工具欄可回到開頭,並執行 Play/Pause。
|
- 工具列可回到開頭,並執行 Play/Pause。
|
||||||
- 在主時間網格點擊小節編號可設置播放頭;在鋼琴卷簾中點擊頂部時間軸也可設置,並遵守當前吸附設置。
|
- 在主時間網格點擊小節編號可設定播放頭;在 Piano Roll 中點擊頂部時間軸也可設定,並遵守目前吸附設定。
|
||||||
- BPM、拍號和調號都可以通過工具欄中的數值直接調整。
|
- BPM、拍號和調號都可以通過工具列中的數值直接調整。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 說明
|
### 說明
|
||||||
|
|
||||||
出於安全考慮,在非本地主機場景下,K.G.Studio 默認不會把 API Key 持久化到 IndexedDB 中(以降低 XSS 風險)。您每次打開 K.G.Studio 時都需要重新輸入。若您確實需要在非本地主機場景下持久化,請在設置中啟用 "Persist API Keys on Non-Localhost"(不建議在共享或生產環境下啟用)。
|
出於安全考慮,在非本地主機場景下,K.G.Studio 預設不會把 API Key 持久化到 IndexedDB 中(以降低 XSS 風險)。您每次開啟 K.G.Studio 時都需要重新輸入。若您確實需要在非本地主機場景下持久化,請在設定中啟用 "Persist API Keys on Non-Localhost"(不建議在共享或生產環境下啟用)。
|
||||||
|
|
||||||
### 免責聲明
|
### 免責聲明
|
||||||
|
|
||||||
K.G.Studio 不提供也不托管上述任何模型,也不隸屬於任何模型提供方。所有數據默認都保存在您的本地設備中;您向第三方模型提供方發送的任何數據,都由您自行負責。
|
K.G.Studio 不提供也不託管上述任何模型,也不隸屬於任何模型提供方。所有資料預設都儲存在您的本地裝置中;您向第三方模型提供方發送的任何資料,都由您自行負責。
|
||||||
|
|
||||||
祝您使用 K.G.Studio 音樂創作助手創作愉快!
|
祝您使用 K.G.Studio 音樂創作助手創作愉快!
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
本指南列出了當前在 K.G.Studio 中已經實現的鍵盤快捷鍵,以及部分點擊時配合修飾鍵的操作。
|
本指南列出了當前在 K.G.Studio 中已經實現的鍵盤快捷鍵,以及部分點擊時配合修飾鍵的操作。
|
||||||
|
|
||||||
### 平台相關的創建操作
|
### 平台相關的建立操作
|
||||||
|
|
||||||
- 在 **macOS** 上,使用 Pointer 工具時按 `Cmd+click` 可創建區域、音符或自動化點。
|
- 在 **macOS** 上,使用 Pointer 工具時按 `Cmd+click` 可建立區域、音符或自動化點。
|
||||||
- 在 **Windows/Linux** 上,使用 Pointer 工具時按 `Ctrl+click` 可創建區域、音符或自動化點。
|
- 在 **Windows/Linux** 上,使用 Pointer 工具時按 `Ctrl+click` 可建立區域、音符或自動化點。
|
||||||
- 在主時間線中,Pointer 工具激活時雙擊空白處可創建區域。
|
- 在主時間線中,Pointer 工具啟用時雙擊空白處可建立區域。
|
||||||
- 在鋼琴卷簾與自動化軌中,Pencil 工具支持單擊創建。
|
- 在 Piano Roll 與自動化軌中,Pencil 工具支援單擊建立。
|
||||||
|
|
||||||
### 主快捷鍵
|
### 主快捷鍵
|
||||||
|
|
||||||
@@ -16,40 +16,40 @@
|
|||||||
- `R` — 開始 / 停止錄音
|
- `R` — 開始 / 停止錄音
|
||||||
- `Cmd/Ctrl+Z` — 撤銷
|
- `Cmd/Ctrl+Z` — 撤銷
|
||||||
- `Cmd/Ctrl+Shift+Z` — 重做
|
- `Cmd/Ctrl+Shift+Z` — 重做
|
||||||
- `Cmd/Ctrl+C` — 複製所選項目
|
- `Cmd/Ctrl+C` — 複製所選專案
|
||||||
- `Cmd/Ctrl+V` — 粘貼
|
- `Cmd/Ctrl+V` — 貼上
|
||||||
- `Cmd/Ctrl+S` — 保存項目
|
- `Cmd/Ctrl+S` — 儲存專案
|
||||||
- `Cmd/Ctrl+A` — 選中當前 MIDI 區域中的全部音符
|
- `Cmd/Ctrl+A` — 選取目前 MIDI 區域中的全部音符
|
||||||
- `Cmd/Ctrl+T` — 在播放頭處分割所選區域
|
- `Cmd/Ctrl+T` — 在播放頭處分割所選區域
|
||||||
- `Cmd/Ctrl+J` — 合併選中的 MIDI 區域
|
- `Cmd/Ctrl+J` — 合併已選取的 MIDI 區域
|
||||||
|
|
||||||
### 區域與鋼琴卷簾窗口快捷鍵
|
### 區域與 Piano Roll 視窗快捷鍵
|
||||||
|
|
||||||
- `E` — 為選中的 MIDI 區域打開鋼琴卷簾窗口,或為選中的音頻區域打開波形編輯器;如果編輯器已經打開,`E` 會關閉它。
|
- `E` — 為已選取的 MIDI 區域開啟 Piano Roll,或為已選取的音訊區域開啟波形編輯器;如果編輯器已經開啟,`E` 會關閉它。
|
||||||
- `N` — 以五線譜視圖打開選中的 MIDI 區域。
|
- `N` — 以五線譜視圖開啟已選取的 MIDI 區域。
|
||||||
- `Delete` / `Backspace` — 刪除選中的區域、音符或自動化點。
|
- `Delete` / `Backspace` — 刪除已選取的區域、音符或自動化點。
|
||||||
- `Esc` — 關閉鋼琴卷簾窗口。
|
- `Esc` — 關閉 Piano Roll 視窗。
|
||||||
|
|
||||||
### 選擇操作
|
### 選擇操作
|
||||||
|
|
||||||
- `Shift+click` — 加入當前選擇。
|
- `Shift+click` — 加入目前選擇。
|
||||||
- 在空白區域套索拖拽 — 框選區域或自動化點。
|
- 在空白區域套索拖曳 — 框選區域或自動化點。
|
||||||
- 在鋼琴卷簾窗口中 `Shift+套索` — 切換套索範圍內項目的選中狀態。
|
- 在 Piano Roll 視窗中 `Shift+套索` — 切換套索範圍內項目的選取狀態。
|
||||||
|
|
||||||
### 鋼琴卷簾快捷鍵
|
### Piano Roll 快捷鍵
|
||||||
|
|
||||||
- `G` — 循環切換和弦指導模式
|
- `G` — 循環切換和弦指導模式
|
||||||
- `Tab` — 跳到下一個和弦候選
|
- `Tab` — 跳到下一個和弦候選
|
||||||
- `Shift+Tab` — 跳到上一個和弦候選 / 轉位
|
- `Shift+Tab` — 跳到上一個和弦候選 / 轉位
|
||||||
|
|
||||||
### 鋼琴卷簾吸附快捷鍵
|
### Piano Roll 吸附快捷鍵
|
||||||
|
|
||||||
- `1` — 不吸附
|
- `1` — 不吸附
|
||||||
- `2` — 吸附到 `1/4`
|
- `2` — 吸附到 `1/4`
|
||||||
- `3` — 吸附到 `1/8`
|
- `3` — 吸附到 `1/8`
|
||||||
- `4` — 吸附到 `1/16`
|
- `4` — 吸附到 `1/16`
|
||||||
|
|
||||||
### 鋼琴卷簾量化快捷鍵
|
### Piano Roll 量化快捷鍵
|
||||||
|
|
||||||
- `5` — 起始量化到 `1/4`
|
- `5` — 起始量化到 `1/4`
|
||||||
- `6` — 起始量化到 `1/8`
|
- `6` — 起始量化到 `1/8`
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
## 再次歡迎
|
## 再次歡迎
|
||||||
|
|
||||||
很高興再次見到您。檢測到您的 LLM 提供方已經配置完成,現在可以直接開始聊天。
|
很高興再次見到您。檢測到您的 LLM 提供方已經設定完成,現在可以直接開始聊天。
|
||||||
|
|
||||||
提示:
|
提示:
|
||||||
- 隨時輸入 `/clear` 重置當前聊天。
|
- 隨時輸入 `/clear` 重設目前聊天。
|
||||||
- 輸入 `/welcome` 再次查看這條歡迎消息。
|
- 輸入 `/welcome` 再次查看這條歡迎消息。
|
||||||
- 輸入 `/help` 查看幫助說明。
|
- 輸入 `/help` 查看幫助說明。
|
||||||
- 輸入 `/hotkeys` 查看快捷鍵指南。
|
- 輸入 `/hotkeys` 查看快捷鍵指南。
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
- 無需外部 API 調用。所有內容都直接在您的瀏覽器中運行,不會產生額外 API 成本。
|
- 無需外部 API 調用。所有內容都直接在您的瀏覽器中運行,不會產生額外 API 成本。
|
||||||
- 此模式通過 **LiteRT-LM** 和 **WebGPU** 加速運行 **Gemma 4 E4B**。
|
- 此模式通過 **LiteRT-LM** 和 **WebGPU** 加速運行 **Gemma 4 E4B**。
|
||||||
- 推薦硬件:至少 **8 GB 顯存**的 GPU,或至少 **16 GB 統一內存**的系統。
|
- 推薦硬體:至少 **8 GB 顯存**的 GPU,或至少 **16 GB 統一記憶體**的系統。
|
||||||
- 相比更大的雲端模型,本地模式在複雜規劃、長鏈路編輯和多步驟任務上能力會更有限。
|
- 相比更大的雲端模型,本地模式在複雜規劃、長鏈路編輯和多步驟任務上能力會更有限。
|
||||||
|
|
||||||
### 推薦工作方式
|
### 推薦工作方式
|
||||||
@@ -19,11 +19,11 @@
|
|||||||
- 例如,如果您想讓模型基於當前音樂寫一段和弦進行,可以先說:`請讀取當前音樂。`
|
- 例如,如果您想讓模型基於當前音樂寫一段和弦進行,可以先說:`請讀取當前音樂。`
|
||||||
- 等這一步完成後,再繼續說:`請基於它寫一段和弦進行。`
|
- 等這一步完成後,再繼續說:`請基於它寫一段和弦進行。`
|
||||||
- 在本地 LLM 模式下,這種漸進式流程通常更可靠。
|
- 在本地 LLM 模式下,這種漸進式流程通常更可靠。
|
||||||
- 在整個流程中,保持您希望 agent 更新的 MIDI 區域處於選中狀態。
|
- 在整個流程中,保持您希望 agent 更新的 MIDI 區域處於選取狀態。
|
||||||
- 僅僅為了執行 `read_music`,您不需要切換到別的區域,因為 `read_music` 可以讀取所有音軌的音樂內容。
|
- 僅僅為了執行 `read_music`,您不需要切換到別的區域,因為 `read_music` 可以讀取所有音軌的音樂內容。
|
||||||
|
|
||||||
### 改用外部 LLM
|
### 改用外部 LLM
|
||||||
- 如果您想使用更大的雲端模型或自托管模型,請打開 **設置 -> 通用 -> LLM 提供方**,切換到 **本地 LLM(瀏覽器)** 以外的提供方。
|
- 如果您想使用更大的雲端模型或自託管模型,請開啟 **設定 -> 通用 -> LLM 提供方**,切換到 **本地 LLM(瀏覽器)** 以外的提供方。
|
||||||
- 如果要用雲端模型,可以選擇 **OpenAI**,或者選擇 **OpenAI Compatible** 並填寫 OpenRouter 等提供方。
|
- 如果要用雲端模型,可以選擇 **OpenAI**,或者選擇 **OpenAI Compatible** 並填寫 OpenRouter 等提供方。
|
||||||
- 如果要用自托管模型,也請選擇 **OpenAI Compatible**,然後填寫您的服務器 **Base URL** 和 **Model**。
|
- 如果要用自託管模型,也請選擇 **OpenAI Compatible**,然後填寫您的伺服器 **Base URL** 和 **Model**。
|
||||||
- 切換提供方後,建議開啟一個新的對話,以便聊天會話乾淨地使用新模型。
|
- 切換提供方後,建議開啟一個新的對話,以便聊天會話乾淨地使用新模型。
|
||||||
|
|||||||
@@ -5,21 +5,21 @@
|
|||||||
### 快速開始
|
### 快速開始
|
||||||
**配置 K.G.Studio 音樂創作助手**
|
**配置 K.G.Studio 音樂創作助手**
|
||||||
- [點擊這裡獲取免費的 OpenRouter API Key](https://openrouter.ai/keys)(您可能需要一個 OpenRouter 帳號)。
|
- [點擊這裡獲取免費的 OpenRouter API Key](https://openrouter.ai/keys)(您可能需要一個 OpenRouter 帳號)。
|
||||||
- 進入 **設置 ⚙️ → 通用 → LLM 提供方**,選擇 **OpenAI 兼容服務**。
|
- 進入 **設定 ⚙️ → 通用 → LLM 提供方**,選擇 **OpenAI 兼容服務**。
|
||||||
- 在 **OpenAI 兼容服務 → 密鑰** 中粘貼您的 Key。注意:在非 localhost 環境下,Key 默認不會持久化,刷新後需要重新輸入,請妥善保管。
|
- 在 **OpenAI 兼容服務 → 密鑰** 中貼上您的 Key。注意:在非 localhost 環境下,Key 預設不會持久化,重新整理後需要重新輸入,請妥善保管。
|
||||||
- 在 **OpenAI 兼容服務 → 模型** 中輸入 `qwen/qwen3-30b-a3b:free`。注意:非免費模型可能需要計費。
|
- 在 **OpenAI 兼容服務 → 模型** 中輸入 `qwen/qwen3-30b-a3b:free`。注意:非免費模型可能需要計費。
|
||||||
- 在 **OpenAI 兼容服務 → 基礎 URL** 中輸入 `https://openrouter.ai/api/v1`。
|
- 在 **OpenAI 兼容服務 → 基礎 URL** 中輸入 `https://openrouter.ai/api/v1`。
|
||||||
|
|
||||||
*(或者,您也可以使用官方 OpenAI API,或者任何 OpenAI 兼容服務。)*
|
*(或者,您也可以使用官方 OpenAI API,或者任何 OpenAI 兼容服務。)*
|
||||||
|
|
||||||
**基本 DAW 操作**
|
**基本 DAW 操作**
|
||||||
- 在音軌上雙擊(或按住 Ctrl/Cmd 再點擊)可創建區域。
|
- 在音軌上雙擊(或按住 Ctrl/Cmd 再點擊)可建立區域。
|
||||||
- 拖動區域邊緣可調整長度;拖動區域主體可移動。
|
- 拖動區域邊緣可調整長度;拖動區域主體可移動。
|
||||||
- 點擊區域左上角的小鉛筆可打開鋼琴卷簾窗口。
|
- 點擊區域左上角的小鉛筆可開啟 Piano Roll。
|
||||||
- 在鋼琴卷簾中,雙擊(或 Ctrl/Cmd+點擊)可創建音符。
|
- 在 Piano Roll 中,雙擊(或 Ctrl/Cmd+點擊)可建立音符。
|
||||||
- 單擊選擇;Shift+單擊多選;拖拽框選。
|
- 單擊選取;Shift+單擊多選;拖曳框選。
|
||||||
- 拖動音符邊緣可調整長度;拖動音符主體可移動所選音符。
|
- 拖動音符邊緣可調整長度;拖動音符主體可移動所選音符。
|
||||||
- 使用鋼琴卷簾工具欄右上角的 Snapping 控制網格量化。
|
- 使用 Piano Roll 工具列右上角的 Snapping 控制網格量化。
|
||||||
|
|
||||||
### 免責聲明
|
### 免責聲明
|
||||||
K.G.Studio 與任何 LLM 提供方均無隸屬關係。所有數據默認都保存在您的本地設備中;您發送給第三方服務的數據由您自行負責。
|
K.G.Studio 與任何 LLM 提供方均無隸屬關係。所有資料預設都儲存在您的本地裝置中;您發送給第三方服務的資料由您自行負責。
|
||||||
|
|||||||
+165
-165
@@ -3,16 +3,16 @@ import { enUsMessages } from './en_us';
|
|||||||
|
|
||||||
export const zhHkMessages: TranslationMessages = {
|
export const zhHkMessages: TranslationMessages = {
|
||||||
...enUsMessages,
|
...enUsMessages,
|
||||||
'app.loading': '加載中...',
|
'app.loading': '載入中...',
|
||||||
'assistant.displayName': 'K.G.Studio 音樂創作助手',
|
'assistant.displayName': 'K.G.Studio 音樂創作助手',
|
||||||
'assistant.welcomeFallback': '歡迎使用 K.G.Studio 音樂創作助手。',
|
'assistant.welcomeFallback': '歡迎使用 K.G.Studio 音樂創作助手。',
|
||||||
'mainContent.createTrack': '建立音軌',
|
'mainContent.createTrack': '建立音軌',
|
||||||
'mainContent.showGlobalTracks': '顯示全域音軌',
|
'mainContent.showGlobalTracks': '顯示全域音軌',
|
||||||
'status.chordGuideCandidate': '和弦指導候選: {name} - {notes} - {note}',
|
'status.chordGuideCandidate': '和弦指導候選: {name} - {notes} - {note}',
|
||||||
'settings.sidebar.title': '設置',
|
'settings.sidebar.title': '設定',
|
||||||
'settings.sidebar.close': '關閉設置',
|
'settings.sidebar.close': '關閉設定',
|
||||||
'settings.sidebar.general': '通用',
|
'settings.sidebar.general': '通用',
|
||||||
'settings.sidebar.audioIo': '音頻 I/O',
|
'settings.sidebar.audioIo': '音訊 I/O',
|
||||||
'settings.sidebar.behavior': '行為',
|
'settings.sidebar.behavior': '行為',
|
||||||
'settings.sidebar.templates': '模板',
|
'settings.sidebar.templates': '模板',
|
||||||
'settings.sidebar.chordGuide': '和弦指導',
|
'settings.sidebar.chordGuide': '和弦指導',
|
||||||
@@ -22,7 +22,7 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'settings.general.language.auto': '自動',
|
'settings.general.language.auto': '自動',
|
||||||
'settings.yes': '是',
|
'settings.yes': '是',
|
||||||
'settings.no': '否',
|
'settings.no': '否',
|
||||||
'settings.restoreDefault': '恢復默認',
|
'settings.restoreDefault': '恢復預設',
|
||||||
'settings.deleteCachedModel': '刪除已緩存模型',
|
'settings.deleteCachedModel': '刪除已緩存模型',
|
||||||
'settings.deleting': '刪除中...',
|
'settings.deleting': '刪除中...',
|
||||||
'settings.general.llmProvider.section': 'LLM 提供方',
|
'settings.general.llmProvider.section': 'LLM 提供方',
|
||||||
@@ -32,7 +32,7 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'settings.general.llmProvider.claudeOpenRouter': 'Claude(通過 OpenRouter)',
|
'settings.general.llmProvider.claudeOpenRouter': 'Claude(通過 OpenRouter)',
|
||||||
'settings.general.llmProvider.openaiCompatible': 'OpenAI 兼容服務(例如 OpenRouter、Ollama)',
|
'settings.general.llmProvider.openaiCompatible': 'OpenAI 兼容服務(例如 OpenRouter、Ollama)',
|
||||||
'settings.general.persistKeys.label': '在非 localhost 環境持久化 API Key',
|
'settings.general.persistKeys.label': '在非 localhost 環境持久化 API Key',
|
||||||
'settings.general.persistKeys.help': '啟用後,即使在非 localhost 環境下,API Key 也會保存到瀏覽器存儲中。警告:這可能增加 XSS 攻擊帶來的安全風險。',
|
'settings.general.persistKeys.help': '啟用後,即使在非 localhost 環境下,API Key 也會儲存到瀏覽器儲存空間中。警告:這可能增加 XSS 攻擊帶來的安全風險。',
|
||||||
'settings.general.localRuntime.cachedStatus': '緩存模型狀態',
|
'settings.general.localRuntime.cachedStatus': '緩存模型狀態',
|
||||||
'settings.general.localRuntime.cacheChecking': '正在檢查本地模型緩存...',
|
'settings.general.localRuntime.cacheChecking': '正在檢查本地模型緩存...',
|
||||||
'settings.general.localRuntime.cacheDownloaded': '已下載到瀏覽器緩存。',
|
'settings.general.localRuntime.cacheDownloaded': '已下載到瀏覽器緩存。',
|
||||||
@@ -52,7 +52,7 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'settings.general.openai.model': '模型',
|
'settings.general.openai.model': '模型',
|
||||||
'settings.general.openai.flexMode': 'Flex 模式',
|
'settings.general.openai.flexMode': 'Flex 模式',
|
||||||
'settings.general.openai.flexHelp': 'Flex 模式使用 OpenAI 的彈性服務層。優點:繁忙時段可能節省成本並提高吞吐。缺點:延遲可能波動,也可能排隊或被降優先級。僅對 OpenAI 提供方生效,對 OpenAI 兼容服務無影響。',
|
'settings.general.openai.flexHelp': 'Flex 模式使用 OpenAI 的彈性服務層。優點:繁忙時段可能節省成本並提高吞吐。缺點:延遲可能波動,也可能排隊或被降優先級。僅對 OpenAI 提供方生效,對 OpenAI 兼容服務無影響。',
|
||||||
'settings.general.keys.persisted': '密鑰會保存在本地(瀏覽器中的 IndexedDB)。',
|
'settings.general.keys.persisted': '密鑰會儲存在本地(瀏覽器中的 IndexedDB)。',
|
||||||
'settings.general.keys.sessionOnly': '出於安全考慮,在非本地主機環境下密鑰不會持久化,只保留在當前會話內存中。',
|
'settings.general.keys.sessionOnly': '出於安全考慮,在非本地主機環境下密鑰不會持久化,只保留在當前會話內存中。',
|
||||||
'settings.general.claudeOpenRouter.section': 'Anthropic Claude(通過 OpenRouter)',
|
'settings.general.claudeOpenRouter.section': 'Anthropic Claude(通過 OpenRouter)',
|
||||||
'settings.general.claudeOpenRouter.keyPlaceholder': '輸入您的 Claude API Key',
|
'settings.general.claudeOpenRouter.keyPlaceholder': '輸入您的 Claude API Key',
|
||||||
@@ -63,39 +63,39 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'settings.general.openaiCompatible.baseUrlPlaceholder': '例如 https://openrouter.ai/api/v1',
|
'settings.general.openaiCompatible.baseUrlPlaceholder': '例如 https://openrouter.ai/api/v1',
|
||||||
'settings.general.openaiCompatible.baseUrlHelp': '快捷預設:',
|
'settings.general.openaiCompatible.baseUrlHelp': '快捷預設:',
|
||||||
'settings.general.openaiCompatible.modelPlaceholder': '例如 qwen3:30b',
|
'settings.general.openaiCompatible.modelPlaceholder': '例如 qwen3:30b',
|
||||||
'settings.general.soundfont.section': 'Soundfont 設置',
|
'settings.general.soundfont.section': 'Soundfont 設定',
|
||||||
'settings.general.soundfont.managed': 'Soundfont 配置由服務器(kgone-server.json)管理,當前設置為只讀。',
|
'settings.general.soundfont.managed': 'Soundfont 設定由伺服器(kgone-server.json)管理,目前設定為唯讀。',
|
||||||
'settings.general.soundfont.baseUrl': '基礎 URL',
|
'settings.general.soundfont.baseUrl': '基礎 URL',
|
||||||
'settings.general.soundfont.baseUrlHelp': '如果改成不兼容的 soundfont 源,某些樂器可能發聲錯誤或無法播放。',
|
'settings.general.soundfont.baseUrlHelp': '如果改成不兼容的 soundfont 源,某些樂器可能發聲錯誤或無法播放。',
|
||||||
'settings.general.kgone.section': 'K.G.One 設置',
|
'settings.general.kgone.section': 'K.G.One 設定',
|
||||||
'settings.general.kgone.managed': 'K.G.One 配置由服務器(kgone-server.json)管理,當前設置為只讀。',
|
'settings.general.kgone.managed': 'K.G.One 設定由伺服器(kgone-server.json)管理,目前設定為唯讀。',
|
||||||
'settings.general.kgone.enabled': '啟用 K.G.One 集成',
|
'settings.general.kgone.enabled': '啟用 K.G.One 集成',
|
||||||
'settings.general.kgone.disabled': '禁用',
|
'settings.general.kgone.disabled': '禁用',
|
||||||
'settings.general.kgone.enabledOption': '啟用',
|
'settings.general.kgone.enabledOption': '啟用',
|
||||||
'settings.general.kgone.serverBaseUrl': '服務器基礎 URL',
|
'settings.general.kgone.serverBaseUrl': '伺服器基礎 URL',
|
||||||
'settings.general.kgone.serverBaseUrlHelp': '正在運行的 K.G.One Music Studio 服務器基礎 URL。用於整曲生成、片段生成和分軌。',
|
'settings.general.kgone.serverBaseUrlHelp': '正在運行的 K.G.One Music Studio 伺服器基礎 URL,用於整曲生成、片段生成和分軌。',
|
||||||
'settings.audioIo.title': '音頻 I/O',
|
'settings.audioIo.title': '音訊 I/O',
|
||||||
'settings.audioIo.deviceRouting': '裝置路由',
|
'settings.audioIo.deviceRouting': '裝置路由',
|
||||||
'settings.audioIo.refresh': '重新整理裝置清單',
|
'settings.audioIo.refresh': '重新整理裝置清單',
|
||||||
'settings.audioIo.refreshing': '重新整理中…',
|
'settings.audioIo.refreshing': '重新整理中…',
|
||||||
'settings.audioIo.description': '選擇 KGStudio 用於錄音與播放的裝置。輸入裝置的變更會在下一次錄音時生效。輸出裝置的變更在 v1 中需要重新整理頁面後生效。',
|
'settings.audioIo.description': '選擇 KGStudio 用於錄音與播放的裝置。輸入裝置的變更會在下一次錄音時生效。輸出裝置的變更在 v1 中需要重新整理頁面後生效。',
|
||||||
'settings.audioIo.inputDevice': '音頻輸入裝置',
|
'settings.audioIo.inputDevice': '音訊輸入裝置',
|
||||||
'settings.audioIo.outputDevice': '音頻輸出裝置',
|
'settings.audioIo.outputDevice': '音訊輸出裝置',
|
||||||
'settings.audioIo.inputHelp': '變更會在下一次錄音時生效。如果所選裝置被移除,KGStudio 會回退到系統預設裝置。',
|
'settings.audioIo.inputHelp': '變更會在下一次錄音時生效。如果所選裝置被移除,KGStudio 會回退到系統預設裝置。',
|
||||||
'settings.audioIo.outputHelp': '在 v1 中,輸出裝置變更需要重新整理頁面。瀏覽器對非預設輸出路由的支援有限,因此在不支援時 KGStudio 會繼續使用系統預設裝置。',
|
'settings.audioIo.outputHelp': '在 v1 中,輸出裝置變更需要重新整理頁面。瀏覽器對非預設輸出路由的支援有限,因此在不支援時 KGStudio 會繼續使用系統預設裝置。',
|
||||||
'settings.audioIo.outputSinkUnsupported': '此瀏覽器未提供可靠的即時 Web Audio 輸出切換能力。非預設輸出裝置選擇僅屬盡力而為,最終可能仍會使用系統預設裝置。',
|
'settings.audioIo.outputSinkUnsupported': '此瀏覽器未提供可靠的即時 Web Audio 輸出切換能力。非預設輸出裝置選擇僅屬盡力而為,最終可能仍會使用系統預設裝置。',
|
||||||
'settings.audioIo.chooseOutputDevice': '選擇輸出裝置…',
|
'settings.audioIo.chooseOutputDevice': '選擇輸出裝置…',
|
||||||
'settings.audioIo.previousSelectedInput': '先前選擇的輸入裝置(需要權限才能驗證)',
|
'settings.audioIo.previousSelectedInput': '先前選擇的輸入裝置(需要權限才能驗證)',
|
||||||
'settings.audioIo.previousSelectedOutput': '先前選擇的輸出裝置(需要權限才能驗證)',
|
'settings.audioIo.previousSelectedOutput': '先前選擇的輸出裝置(需要權限才能驗證)',
|
||||||
'settings.audioIo.status.inputUnavailable': '先前選擇的音頻輸入裝置不可用;將使用系統預設裝置。',
|
'settings.audioIo.status.inputUnavailable': '先前選擇的音訊輸入裝置不可用;將使用系統預設裝置。',
|
||||||
'settings.audioIo.status.outputUnavailable': '先前選擇的音頻輸出裝置不可用;將使用系統預設裝置。',
|
'settings.audioIo.status.outputUnavailable': '先前選擇的音訊輸出裝置不可用;將使用系統預設裝置。',
|
||||||
'settings.audioIo.status.refreshed': '音頻裝置清單已重新整理。',
|
'settings.audioIo.status.refreshed': '音訊裝置清單已重新整理。',
|
||||||
'settings.audioIo.status.readFailed': '無法從瀏覽器讀取音頻裝置。',
|
'settings.audioIo.status.readFailed': '無法從瀏覽器讀取音訊裝置。',
|
||||||
'settings.audioIo.status.inputDefaultNextSession': '音頻輸入將在下一次錄音時使用系統預設裝置。',
|
'settings.audioIo.status.inputDefaultNextSession': '音訊輸入將在下一次錄音時使用系統預設裝置。',
|
||||||
'settings.audioIo.status.inputChangedNextSession': '音頻輸入將在下一次錄音時切換。',
|
'settings.audioIo.status.inputChangedNextSession': '音訊輸入將在下一次錄音時切換。',
|
||||||
'settings.audioIo.status.outputDefaultAfterRefresh': '重新整理後音頻輸出將使用系統預設裝置。',
|
'settings.audioIo.status.outputDefaultAfterRefresh': '重新整理後音訊輸出將使用系統預設裝置。',
|
||||||
'settings.audioIo.status.outputSavedRefreshRequired': '音頻輸出裝置已儲存。在 v1 中請重新整理頁面以套用。',
|
'settings.audioIo.status.outputSavedRefreshRequired': '音訊輸出裝置已儲存。在 v1 中請重新整理頁面以套用。',
|
||||||
'settings.audioIo.status.outputPromptUnsupported': '此瀏覽器不支援彈出音頻輸出裝置選擇。',
|
'settings.audioIo.status.outputPromptUnsupported': '此瀏覽器不支援彈出音訊輸出裝置選擇。',
|
||||||
'settings.audioIo.status.outputSelectedRefreshRequired': '已選擇輸出裝置。請重新整理頁面以在 v1 中套用。',
|
'settings.audioIo.status.outputSelectedRefreshRequired': '已選擇輸出裝置。請重新整理頁面以在 v1 中套用。',
|
||||||
'settings.audioIo.status.outputSelectionDenied': '瀏覽器不允許選擇非預設輸出裝置。',
|
'settings.audioIo.status.outputSelectionDenied': '瀏覽器不允許選擇非預設輸出裝置。',
|
||||||
'settings.behavior.title': '行為',
|
'settings.behavior.title': '行為',
|
||||||
@@ -106,9 +106,9 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'settings.behavior.spectrogramHeightResolutionHelp': '控制可見音高範圍內的頻譜圖垂直細節。較高的值會讓音高輪廓更清晰,但在計算頻譜圖時會消耗更多 CPU 與記憶體。',
|
'settings.behavior.spectrogramHeightResolutionHelp': '控制可見音高範圍內的頻譜圖垂直細節。較高的值會讓音高輪廓更清晰,但在計算頻譜圖時會消耗更多 CPU 與記憶體。',
|
||||||
'settings.behavior.chatBox': '聊天框',
|
'settings.behavior.chatBox': '聊天框',
|
||||||
'settings.behavior.openAtStartup': '啟動時開啟',
|
'settings.behavior.openAtStartup': '啟動時開啟',
|
||||||
'settings.behavior.audio': '音頻',
|
'settings.behavior.audio': '音訊',
|
||||||
'settings.behavior.lookaheadTime': '前瞻時間(ms)',
|
'settings.behavior.lookaheadTime': '前瞻時間(ms)',
|
||||||
'settings.behavior.lookaheadTimeHelp': '音頻排程前瞻時間(0-500ms)。較低的值(10-20ms)可降低 MIDI 輸入延遲,但在較慢的系統上可能造成音頻卡頓。較高的值(100ms 以上)更有利於播放穩定性。變更會立即生效,無需重新啟動。',
|
'settings.behavior.lookaheadTimeHelp': '音訊排程前瞻時間(0-500ms)。較低的值(10-20ms)可降低 MIDI 輸入延遲,但在較慢的系統上可能造成音訊卡頓。較高的值(100ms 以上)更有利於播放穩定性。變更會立即生效,無需重新啟動。',
|
||||||
'settings.behavior.playbackDelay': '播放延遲(ms)',
|
'settings.behavior.playbackDelay': '播放延遲(ms)',
|
||||||
'settings.behavior.playbackDelayHelp': '按下開始按鈕後,播放會有一個很短的延遲(0-500ms)。增加此值可能有助於穩定播放,特別是在前瞻值較低時的前幾個節拍。變更會立即生效,無需重新啟動。',
|
'settings.behavior.playbackDelayHelp': '按下開始按鈕後,播放會有一個很短的延遲(0-500ms)。增加此值可能有助於穩定播放,特別是在前瞻值較低時的前幾個節拍。變更會立即生效,無需重新啟動。',
|
||||||
'settings.behavior.midiAutomationInterpolation': 'MIDI 自動化插值',
|
'settings.behavior.midiAutomationInterpolation': 'MIDI 自動化插值',
|
||||||
@@ -119,9 +119,9 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'settings.behavior.midiInputLatency': 'MIDI 輸入延遲(ms)',
|
'settings.behavior.midiInputLatency': 'MIDI 輸入延遲(ms)',
|
||||||
'settings.behavior.midiInputLatencyHelp': '用於 MIDI 錄音的時間校正(0-500ms)。如果錄下來的音符比您實際想演奏的位置略晚,可以增加此值以匹配您的 MIDI 裝置輸入延遲。每個音符在提交時都會向前回移這段時間。',
|
'settings.behavior.midiInputLatencyHelp': '用於 MIDI 錄音的時間校正(0-500ms)。如果錄下來的音符比您實際想演奏的位置略晚,可以增加此值以匹配您的 MIDI 裝置輸入延遲。每個音符在提交時都會向前回移這段時間。',
|
||||||
'settings.behavior.bounceStartsFromBeat1': '匯出從第 1 拍開始',
|
'settings.behavior.bounceStartsFromBeat1': '匯出從第 1 拍開始',
|
||||||
'settings.behavior.bounceStartsFromBeat1Help': '選擇「是」時,匯出 WAV/MP3 會包含從歌曲開頭到第一個被渲染區域之前的前導靜音。選擇「否」時,會裁掉這段前導靜音,並從第一個被渲染的音符或音頻區域開始匯出。',
|
'settings.behavior.bounceStartsFromBeat1Help': '選擇「是」時,匯出 WAV/MP3 會包含從歌曲開頭到第一個被渲染區域之前的前導靜音。選擇「否」時,會裁掉這段前導靜音,並從第一個被渲染的音符或音訊區域開始匯出。',
|
||||||
'settings.behavior.captureAudioForScreenSharing': '為螢幕分享擷取音頻',
|
'settings.behavior.captureAudioForScreenSharing': '為螢幕分享擷取音訊',
|
||||||
'settings.behavior.captureAudioForScreenSharingHelp': '需要重新啟動 KGStudio(重新整理頁面)後生效。當在視訊會議中分享螢幕時,如果 KGStudio 的音頻無法被擷取,請啟用此選項(例如 Zoom、Teams)。這會建立一個額外的音頻串流,供螢幕擷取應用程式偵測。',
|
'settings.behavior.captureAudioForScreenSharingHelp': '需要重新啟動 KGStudio(重新整理頁面)後生效。當在視像會議中分享螢幕時,如果 KGStudio 的音訊無法被擷取,請啟用此選項(例如 Zoom、Teams)。這會建立一個額外的音訊串流,供螢幕擷取應用程式偵測。',
|
||||||
'settings.behavior.captureAudioForScreenSharingWarning': '在 Zoom 中分享螢幕時,請務必確認已啟用「Share Sound」選項。',
|
'settings.behavior.captureAudioForScreenSharingWarning': '在 Zoom 中分享螢幕時,請務必確認已啟用「Share Sound」選項。',
|
||||||
'settings.behavior.validation.lookahead.invalidNumber': '前瞻時間必須是有效數字',
|
'settings.behavior.validation.lookahead.invalidNumber': '前瞻時間必須是有效數字',
|
||||||
'settings.behavior.validation.lookahead.range': '前瞻時間必須在 0 到 0.5 秒之間(0-500ms)',
|
'settings.behavior.validation.lookahead.range': '前瞻時間必須在 0 到 0.5 秒之間(0-500ms)',
|
||||||
@@ -160,10 +160,10 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'dialog.ok': '確定',
|
'dialog.ok': '確定',
|
||||||
'dialog.experimentalFeature': '實驗性功能',
|
'dialog.experimentalFeature': '實驗性功能',
|
||||||
'dialog.recommendedSource': '推薦源素材',
|
'dialog.recommendedSource': '推薦源素材',
|
||||||
'dialog.chordHint.audio': '和弦分析仍屬實驗性功能。和聲內容、編配密度以及瞬態較強的素材都可能影響準確率。建議先使用默認設置,再逐步微調靈敏度和穩定性,讓檢測結果更貼近實際樂句。',
|
'dialog.chordHint.audio': '和弦分析仍屬實驗性功能。和聲內容、編配密度以及瞬態較強的素材都可能影響準確率。建議先使用預設設定,再逐步微調靈敏度和穩定性,讓檢測結果更貼近實際樂句。',
|
||||||
'dialog.chordHint.midi': '和弦分析仍屬實驗性功能。和弦堆疊密度、重疊以及裝飾音都會影響結果。建議先使用默認設置,再調整短音抑制和和聲關注方式,以匹配該段音樂的和聲作用。',
|
'dialog.chordHint.midi': '和弦分析仍屬實驗性功能。和弦堆疊密度、重疊以及裝飾音都會影響結果。建議先使用預設設定,再調整短音抑制和和聲關注方式,以配合該段音樂的和聲作用。',
|
||||||
'dialog.chordHint.tempo': '速度分析仍屬實驗性功能。自由速度、瞬態稀疏以及多層打擊樂都可能降低準確率。建議先使用默認 BPM 範圍,如果第一次結果不理想,再把分析範圍收窄到更可能的速度區間。',
|
'dialog.chordHint.tempo': '速度分析仍屬實驗性功能。自由速度、瞬態稀疏以及多層打擊樂都可能降低準確率。建議先使用預設 BPM 範圍,如果第一次結果不理想,再把分析範圍收窄到更可能的速度區間。',
|
||||||
'dialog.sourceHint.kgone': '為了獲得更可靠的和弦標籤,建議分析已經削弱或移除了人聲和打擊樂的 stem。如果已啟用 K.G.One Music Studio 服務器集成,請使用帶有 "Vocal, Drums, Bass, Guitar, Piano, and Others" 的 Separator 模型,並優先分析 Piano 或 Others stem。',
|
'dialog.sourceHint.kgone': '為了獲得更可靠的和弦標籤,建議分析已經削弱或移除了人聲和打擊樂的 stem。如果已啟用 K.G.One Music Studio 伺服器整合,請使用帶有 "Vocal, Drums, Bass, Guitar, Piano, and Others" 的 Separator 模型,並優先分析 Piano 或 Others stem。',
|
||||||
'dialog.sourceHint.local': '為了獲得更可靠的和弦標籤,建議分析已經削弱或移除了人聲和打擊樂的 stem。如果您使用本地分軌器,請選擇 "Vocal, Drums, Bass, and Others" 模型,並使用 Others stem 進行分析。',
|
'dialog.sourceHint.local': '為了獲得更可靠的和弦標籤,建議分析已經削弱或移除了人聲和打擊樂的 stem。如果您使用本地分軌器,請選擇 "Vocal, Drums, Bass, and Others" 模型,並使用 Others stem 進行分析。',
|
||||||
'dialog.label.sensitivity': '靈敏度',
|
'dialog.label.sensitivity': '靈敏度',
|
||||||
'dialog.label.stability': '穩定性',
|
'dialog.label.stability': '穩定性',
|
||||||
@@ -179,16 +179,16 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'dialog.label.minimumBpm': '最小 BPM',
|
'dialog.label.minimumBpm': '最小 BPM',
|
||||||
'dialog.label.maximumBpm': '最大 BPM',
|
'dialog.label.maximumBpm': '最大 BPM',
|
||||||
'dialog.label.autoAlignRegionToBeat': '自動將片段對齊到拍點',
|
'dialog.label.autoAlignRegionToBeat': '自動將片段對齊到拍點',
|
||||||
'dialog.message.chordDetection': '在處理前調整音頻和弦檢測設置。',
|
'dialog.message.chordDetection': '在處理前調整音訊和弦檢測設定。',
|
||||||
'dialog.message.tempoDetection': '在處理前調整音頻速度檢測設置。',
|
'dialog.message.tempoDetection': '在處理前調整音訊速度檢測設定。',
|
||||||
'dialog.message.tempoApply': '檢測到速度:{bpm} BPM。請選擇應用方式。\n\n"更新當前速度"將修改此片段位置的有效速度。"插入速度變更"將在片段起始點前最近的小節處添加新的速度區域。',
|
'dialog.message.tempoApply': '檢測到速度:{bpm} BPM。請選擇應用方式。\n\n"更新當前速度"會修改此片段位置的有效速度。"插入速度變更"會在片段起始點前最近的小節加入新的速度區域。',
|
||||||
'dialog.action.updateCurrentTempo': '更新當前速度',
|
'dialog.action.updateCurrentTempo': '更新當前速度',
|
||||||
'dialog.action.insertTempoChange': '插入速度變更',
|
'dialog.action.insertTempoChange': '插入速度變更',
|
||||||
'eventList.title': '事件列表',
|
'eventList.title': '事件列表',
|
||||||
'eventList.scopeTabs': '事件列表範圍',
|
'eventList.scopeTabs': '事件列表範圍',
|
||||||
'eventList.scope.region': '區域',
|
'eventList.scope.region': '區域',
|
||||||
'eventList.scope.track': '音軌',
|
'eventList.scope.track': '音軌',
|
||||||
'eventList.scope.global': '全局',
|
'eventList.scope.global': '全域',
|
||||||
'eventList.deleteVisibleSelectedRows': '刪除當前可見的已選行',
|
'eventList.deleteVisibleSelectedRows': '刪除當前可見的已選行',
|
||||||
'eventList.table.position': '位置',
|
'eventList.table.position': '位置',
|
||||||
'eventList.table.status': '狀態',
|
'eventList.table.status': '狀態',
|
||||||
@@ -199,11 +199,11 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'eventList.region.filter.notes': '音符',
|
'eventList.region.filter.notes': '音符',
|
||||||
'eventList.region.filter.pitchBends': '彎音',
|
'eventList.region.filter.pitchBends': '彎音',
|
||||||
'eventList.region.filter.controller': '控制器',
|
'eventList.region.filter.controller': '控制器',
|
||||||
'eventList.region.empty': '請選擇一個 MIDI 區域,或先在鋼琴卷簾中打開一個區域,再查看事件列表。',
|
'eventList.region.empty': '請選擇一個 MIDI 區域,或先在 Piano Roll 中開啟一個區域,再查看事件列表。',
|
||||||
'eventList.region.add.label': '添加',
|
'eventList.region.add.label': '新增',
|
||||||
'eventList.region.add.noteTitle': '在播放頭位置添加音符',
|
'eventList.region.add.noteTitle': '在播放頭位置新增音符',
|
||||||
'eventList.region.add.pitchBendTitle': '在播放頭位置添加彎音',
|
'eventList.region.add.pitchBendTitle': '在播放頭位置新增彎音',
|
||||||
'eventList.region.add.controllerTitle': '在播放頭位置添加控制器事件',
|
'eventList.region.add.controllerTitle': '在播放頭位置新增控制器事件',
|
||||||
'eventList.region.addType.note': '音符',
|
'eventList.region.addType.note': '音符',
|
||||||
'eventList.region.addType.pitchBend': '彎音',
|
'eventList.region.addType.pitchBend': '彎音',
|
||||||
'eventList.region.addType.controller': '控制器',
|
'eventList.region.addType.controller': '控制器',
|
||||||
@@ -215,25 +215,25 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'eventList.track.filter.volume': '音量',
|
'eventList.track.filter.volume': '音量',
|
||||||
'eventList.track.filter.pan': '聲像',
|
'eventList.track.filter.pan': '聲像',
|
||||||
'eventList.track.empty': '請選擇一條音軌以查看區域和音軌自動化。',
|
'eventList.track.empty': '請選擇一條音軌以查看區域和音軌自動化。',
|
||||||
'eventList.track.add.label': '添加',
|
'eventList.track.add.label': '新增',
|
||||||
'eventList.track.add.midiRegionTitle': '在播放頭位置添加 MIDI 區域',
|
'eventList.track.add.midiRegionTitle': '在播放頭位置新增 MIDI 區域',
|
||||||
'eventList.track.add.volumeTitle': '在播放頭位置添加音量自動化點',
|
'eventList.track.add.volumeTitle': '在播放頭位置新增音量自動化點',
|
||||||
'eventList.track.add.panTitle': '在播放頭位置添加聲像自動化點',
|
'eventList.track.add.panTitle': '在播放頭位置新增聲像自動化點',
|
||||||
'eventList.track.addType.midiRegion': 'MIDI 區域',
|
'eventList.track.addType.midiRegion': 'MIDI 區域',
|
||||||
'eventList.track.status.audio': '音頻',
|
'eventList.track.status.audio': '音訊',
|
||||||
'eventList.track.status.midi': 'MIDI',
|
'eventList.track.status.midi': 'MIDI',
|
||||||
'eventList.track.status.volume': '音量',
|
'eventList.track.status.volume': '音量',
|
||||||
'eventList.track.status.pan': '聲像',
|
'eventList.track.status.pan': '聲像',
|
||||||
'eventList.global.filters': '全局事件篩選',
|
'eventList.global.filters': '全域事件篩選',
|
||||||
'eventList.global.filter.marker': '標記',
|
'eventList.global.filter.marker': '標記',
|
||||||
'eventList.global.filter.tempo': '速度',
|
'eventList.global.filter.tempo': '速度',
|
||||||
'eventList.global.filter.keySignature': '調號',
|
'eventList.global.filter.keySignature': '調號',
|
||||||
'eventList.global.filter.chord': '和弦',
|
'eventList.global.filter.chord': '和弦',
|
||||||
'eventList.global.add.label': '添加',
|
'eventList.global.add.label': '新增',
|
||||||
'eventList.global.add.markerTitle': '在播放頭位置添加標記區段',
|
'eventList.global.add.markerTitle': '在播放頭位置新增標記區段',
|
||||||
'eventList.global.add.tempoTitle': '在播放頭位置添加速度區段',
|
'eventList.global.add.tempoTitle': '在播放頭位置新增速度區段',
|
||||||
'eventList.global.add.keySignatureTitle': '在播放頭位置添加調號區段',
|
'eventList.global.add.keySignatureTitle': '在播放頭位置新增調號區段',
|
||||||
'eventList.global.add.chordTitle': '在播放頭位置添加和弦區段',
|
'eventList.global.add.chordTitle': '在播放頭位置新增和弦區段',
|
||||||
'eventList.global.addType.marker': '標記',
|
'eventList.global.addType.marker': '標記',
|
||||||
'eventList.global.addType.tempo': '速度',
|
'eventList.global.addType.tempo': '速度',
|
||||||
'eventList.global.addType.keySignature': '調號',
|
'eventList.global.addType.keySignature': '調號',
|
||||||
@@ -246,16 +246,16 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'eventList.global.validation.tempo': '請輸入僅包含數字的 BPM 值。需要介於 {min} 和 {max} 之間的整數。示例:128',
|
'eventList.global.validation.tempo': '請輸入僅包含數字的 BPM 值。需要介於 {min} 和 {max} 之間的整數。示例:128',
|
||||||
'eventList.global.validation.keySignature': '請輸入一個精確的調號名稱。需要規範值,例如 "C major" 或 "F# minor"。示例:F# minor',
|
'eventList.global.validation.keySignature': '請輸入一個精確的調號名稱。需要規範值,例如 "C major" 或 "F# minor"。示例:F# minor',
|
||||||
'eventList.global.validation.chord': '請輸入有效的和弦符號。需要應用可解析的和弦表示。示例:Bm7b5',
|
'eventList.global.validation.chord': '請輸入有效的和弦符號。需要應用可解析的和弦表示。示例:Bm7b5',
|
||||||
'eventList.global.validation.position': '請輸入項目起點或之後的位置。需要非負位置。示例:1 1 0',
|
'eventList.global.validation.position': '請輸入專案起點或之後的位置。需要非負位置。示例:1 1 0',
|
||||||
'eventList.global.validation.length': '請輸入正長度。需要大於零的時值。示例:4 0',
|
'eventList.global.validation.length': '請輸入正長度。需要大於零的時值。示例:4 0',
|
||||||
'globalTracks.label': '全局軌道',
|
'globalTracks.label': '全域軌道',
|
||||||
'globalTracks.marker': '標記',
|
'globalTracks.marker': '標記',
|
||||||
'globalTracks.tempo': '速度',
|
'globalTracks.tempo': '速度',
|
||||||
'globalTracks.signature': '調號',
|
'globalTracks.signature': '調號',
|
||||||
'globalTracks.chord': '和弦',
|
'globalTracks.chord': '和弦',
|
||||||
'globalTracks.addItem': '添加 {label} 全局軌道項目',
|
'globalTracks.addItem': '新增 {label} 全域軌道項目',
|
||||||
'pianoRoll.power.linear': '線性',
|
'pianoRoll.power.linear': '線性',
|
||||||
'pianoRoll.power.sqrtDefault': '√(默認)',
|
'pianoRoll.power.sqrtDefault': '√(預設)',
|
||||||
'pianoRoll.power.mild': '輕度',
|
'pianoRoll.power.mild': '輕度',
|
||||||
'pianoRoll.power.strong': '強烈',
|
'pianoRoll.power.strong': '強烈',
|
||||||
'pianoRoll.chordGuide.off': '關閉和弦指導',
|
'pianoRoll.chordGuide.off': '關閉和弦指導',
|
||||||
@@ -407,42 +407,42 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'percussion.full.79': '開庫卡',
|
'percussion.full.79': '開庫卡',
|
||||||
'percussion.full.80': '悶三角鐵',
|
'percussion.full.80': '悶三角鐵',
|
||||||
'percussion.full.81': '開三角鐵',
|
'percussion.full.81': '開三角鐵',
|
||||||
'toolbar.export.kgstudio': '導出為 KGStudio 文件',
|
'toolbar.export.kgstudio': '匯出為 KGStudio 檔案',
|
||||||
'toolbar.export.midi': '導出為 MIDI 文件',
|
'toolbar.export.midi': '匯出為 MIDI 檔案',
|
||||||
'toolbar.export.wav': '導出為 WAV',
|
'toolbar.export.wav': '匯出為 WAV',
|
||||||
'toolbar.export.mp3': '導出為 MP3',
|
'toolbar.export.mp3': '匯出為 MP3',
|
||||||
'toolbar.projectName.prompt': '輸入項目名稱:',
|
'toolbar.projectName.prompt': '輸入專案名稱:',
|
||||||
'toolbar.projectName.invalid': '無效的項目名稱。只允許字母、數字、空格、連字符、下劃線、句點和括號。',
|
'toolbar.projectName.invalid': '無效的專案名稱。只允許字母、數字、空格、連字符、底線、句點和括號。',
|
||||||
'toolbar.projectName.reserved': '"{name}" 是保留項目名稱。請選擇其他名稱。',
|
'toolbar.projectName.reserved': '"{name}" 是保留專案名稱。請選擇其他名稱。',
|
||||||
'toolbar.projectName.overwrite': '項目 "{name}" 已存在。要覆蓋它嗎?',
|
'toolbar.projectName.overwrite': '專案 "{name}" 已存在。要覆寫它嗎?',
|
||||||
'toolbar.projectName.renameOrCopy': '您想重命名這個項目,還是另存為一個副本?',
|
'toolbar.projectName.renameOrCopy': '您想重新命名這個專案,還是另存為副本?',
|
||||||
'toolbar.projectName.saveAsCopy': '另存為副本',
|
'toolbar.projectName.saveAsCopy': '另存為副本',
|
||||||
'toolbar.projectName.rename': '重命名',
|
'toolbar.projectName.rename': '重命名',
|
||||||
'toolbar.save.error': '保存時發生錯誤:{error}',
|
'toolbar.save.error': '儲存時發生錯誤:{error}',
|
||||||
'toolbar.load.error': '加載項目時發生錯誤:{error}',
|
'toolbar.load.error': '載入專案時發生錯誤:{error}',
|
||||||
'toolbar.newProject.confirm': '確定要創建新項目嗎?當前未保存的更改將會丟失。',
|
'toolbar.newProject.confirm': '確定要建立新專案嗎?目前未儲存的更改將會遺失。',
|
||||||
'toolbar.project.notFound': '未找到項目 "{name}"。',
|
'toolbar.project.notFound': '找不到專案 "{name}"。',
|
||||||
'toolbar.openProject.confirm': '要打開這個項目嗎?當前項目中未保存的更改將會丟失。',
|
'toolbar.openProject.confirm': '要開啟這個專案嗎?目前專案中未儲存的更改將會遺失。',
|
||||||
'toolbar.status.loadFailed': '加載項目失敗:{error}',
|
'toolbar.status.loadFailed': '載入專案失敗:{error}',
|
||||||
'toolbar.status.newProjectCreated': '已創建新項目 "{name}"',
|
'toolbar.status.newProjectCreated': '已建立新專案 "{name}"',
|
||||||
'toolbar.status.projectLoaded': '{description} 加載成功',
|
'toolbar.status.projectLoaded': '{description} 載入成功',
|
||||||
'toolbar.status.projectExportedKgstudio': '項目 "{name}" 已導出為 KGStudio 文件',
|
'toolbar.status.projectExportedKgstudio': '專案 "{name}" 已匯出為 KGStudio 檔案',
|
||||||
'toolbar.status.exportProjectError': '導出項目出錯:{error}',
|
'toolbar.status.exportProjectError': '匯出專案時發生錯誤:{error}',
|
||||||
'toolbar.export.failedProject': '導出項目失敗:{error}',
|
'toolbar.export.failedProject': '匯出專案失敗:{error}',
|
||||||
'toolbar.status.projectExportedMidi': '項目 "{name}" 已導出為 MIDI 文件',
|
'toolbar.status.projectExportedMidi': '專案 "{name}" 已匯出為 MIDI 檔案',
|
||||||
'toolbar.status.exportMidiError': '導出 MIDI 出錯:{error}',
|
'toolbar.status.exportMidiError': '匯出 MIDI 時發生錯誤:{error}',
|
||||||
'toolbar.export.failedMidi': '導出項目為 MIDI 失敗:{error}',
|
'toolbar.export.failedMidi': '匯出專案為 MIDI 失敗:{error}',
|
||||||
'toolbar.status.projectExportedWav': '項目 "{name}" 已導出為 WAV 文件',
|
'toolbar.status.projectExportedWav': '專案 "{name}" 已匯出為 WAV 檔案',
|
||||||
'toolbar.status.exportWavError': '導出 WAV 出錯:{error}',
|
'toolbar.status.exportWavError': '匯出 WAV 時發生錯誤:{error}',
|
||||||
'toolbar.export.failedWav': '導出項目為 WAV 失敗:{error}',
|
'toolbar.export.failedWav': '匯出專案為 WAV 失敗:{error}',
|
||||||
'toolbar.status.projectExportedMp3': '項目 "{name}" 已導出為 MP3 文件',
|
'toolbar.status.projectExportedMp3': '專案 "{name}" 已匯出為 MP3 檔案',
|
||||||
'toolbar.status.exportMp3Error': '導出 MP3 出錯:{error}',
|
'toolbar.status.exportMp3Error': '匯出 MP3 時發生錯誤:{error}',
|
||||||
'toolbar.export.failedMp3': '導出項目為 MP3 失敗:{error}',
|
'toolbar.export.failedMp3': '匯出專案為 MP3 失敗:{error}',
|
||||||
'toolbar.status.importFailed': '導入文件失敗:{error}',
|
'toolbar.status.importFailed': '匯入檔案失敗:{error}',
|
||||||
'toolbar.import.failedProjectFile': '導入項目文件失敗:{error}',
|
'toolbar.import.failedProjectFile': '匯入專案檔案失敗:{error}',
|
||||||
'toolbar.import.corruptedKgstudio': '.kgstudio 文件已損壞或無效:{error}',
|
'toolbar.import.corruptedKgstudio': '.kgstudio 檔案已損壞或無效:{error}',
|
||||||
'toolbar.status.importingMidi': '正在導入 MIDI 文件 "{name}"...',
|
'toolbar.status.importingMidi': '正在匯入 MIDI 檔案 "{name}"...',
|
||||||
'toolbar.status.failedImportMidi': '導入 MIDI 文件失敗:{error}',
|
'toolbar.status.failedImportMidi': '匯入 MIDI 檔案失敗:{error}',
|
||||||
'toolbar.status.playbackFailedStart': '播放啟動失敗',
|
'toolbar.status.playbackFailedStart': '播放啟動失敗',
|
||||||
'toolbar.status.recordingStoppedCommitted': '錄音已停止 - 音符已提交',
|
'toolbar.status.recordingStoppedCommitted': '錄音已停止 - 音符已提交',
|
||||||
'toolbar.status.failedStopPlayback': '停止播放失敗',
|
'toolbar.status.failedStopPlayback': '停止播放失敗',
|
||||||
@@ -453,44 +453,44 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'toolbar.bpm.prompt': '輸入新的 BPM({min}-{max}):',
|
'toolbar.bpm.prompt': '輸入新的 BPM({min}-{max}):',
|
||||||
'toolbar.bpm.invalid': 'BPM 無效。請輸入 {min} 到 {max} 之間的值。',
|
'toolbar.bpm.invalid': 'BPM 無效。請輸入 {min} 到 {max} 之間的值。',
|
||||||
'toolbar.status.bpmChanged': 'BPM 已改為 {value}',
|
'toolbar.status.bpmChanged': 'BPM 已改為 {value}',
|
||||||
'toolbar.timeSignature.prompt': '設置拍號:',
|
'toolbar.timeSignature.prompt': '設定拍號:',
|
||||||
'toolbar.status.timeSignatureChanged': '拍號已改為 {value}',
|
'toolbar.status.timeSignatureChanged': '拍號已改為 {value}',
|
||||||
'toolbar.status.keySignatureChanged': '調號已改為 {value}',
|
'toolbar.status.keySignatureChanged': '調號已改為 {value}',
|
||||||
'toolbar.status.copied': '項目已複製到剪貼板',
|
'toolbar.status.copied': '專案已複製到剪貼簿',
|
||||||
'toolbar.status.copyNone': '沒有可複製的已選項目',
|
'toolbar.status.copyNone': '沒有可複製的已選專案',
|
||||||
'toolbar.status.pasted': '已從剪貼板粘貼項目',
|
'toolbar.status.pasted': '已從剪貼簿貼上專案',
|
||||||
'toolbar.status.pasteFailed': '無法粘貼 - 沒有有效的剪貼板內容或上下文',
|
'toolbar.status.pasteFailed': '無法貼上,沒有有效的剪貼簿內容或上下文',
|
||||||
'toolbar.status.deleted': '已刪除所選區域',
|
'toolbar.status.deleted': '已刪除所選區域',
|
||||||
'toolbar.status.deleteNone': '沒有選中可刪除的區域',
|
'toolbar.status.deleteNone': '沒有已選取且可刪除的區域',
|
||||||
'toolbar.undo.none': '沒有可撤銷的操作',
|
'toolbar.undo.none': '沒有可撤銷的操作',
|
||||||
'toolbar.redo.none': '沒有可重做的操作',
|
'toolbar.redo.none': '沒有可重做的操作',
|
||||||
'toolbar.status.undid': '已撤銷:{description}',
|
'toolbar.status.undid': '已撤銷:{description}',
|
||||||
'toolbar.status.redid': '已重做:{description}',
|
'toolbar.status.redid': '已重做:{description}',
|
||||||
'toolbar.action': '操作',
|
'toolbar.action': '操作',
|
||||||
'toolbar.status.chatToggled': '聊天窗口已切換',
|
'toolbar.status.chatToggled': '聊天視窗已切換',
|
||||||
'toolbar.status.settingsToggled': '設置面板已切換',
|
'toolbar.status.settingsToggled': '設定面板已切換',
|
||||||
'toolbar.pianoRoll.selectMidiRegion': '請先選擇一個 MIDI 區域再打開鋼琴卷簾。',
|
'toolbar.pianoRoll.selectMidiRegion': '請先選擇一個 MIDI 區域,再開啟 Piano Roll。',
|
||||||
'toolbar.status.recordingStopped': '錄音已停止',
|
'toolbar.status.recordingStopped': '錄音已停止',
|
||||||
'toolbar.status.audioRecordingStarted': '音頻錄音已開始...',
|
'toolbar.status.audioRecordingStarted': '音訊錄音已開始...',
|
||||||
'toolbar.recording.openMidiRegion': '開始錄音前,請先在鋼琴卷簾中打開一個 MIDI 區域。',
|
'toolbar.recording.openMidiRegion': '開始錄音前,請先在 Piano Roll 中開啟一個 MIDI 區域。',
|
||||||
'toolbar.recording.selectMidiRegion': '開始錄音前,請先選擇一個 MIDI 區域。',
|
'toolbar.recording.selectMidiRegion': '開始錄音前,請先選擇一個 MIDI 區域。',
|
||||||
'toolbar.recording.noMidiDevice': '未檢測到 MIDI 設備。請連接 MIDI 鍵盤後重試。',
|
'toolbar.recording.noMidiDevice': '未檢測到 MIDI 裝置。請連接 MIDI 鍵盤後重試。',
|
||||||
'toolbar.status.recordingStarted': '錄音已開始...',
|
'toolbar.status.recordingStarted': '錄音已開始...',
|
||||||
'toolbar.button.new': '新建',
|
'toolbar.button.new': '新建',
|
||||||
'toolbar.button.load': '打開',
|
'toolbar.button.load': '開啟',
|
||||||
'toolbar.button.save': '保存',
|
'toolbar.button.save': '儲存',
|
||||||
'toolbar.button.export': '導出',
|
'toolbar.button.export': '匯出',
|
||||||
'toolbar.button.import': '導入',
|
'toolbar.button.import': '匯入',
|
||||||
'toolbar.button.settings': '設置',
|
'toolbar.button.settings': '設定',
|
||||||
'toolbar.button.undo': '撤銷',
|
'toolbar.button.undo': '撤銷',
|
||||||
'toolbar.button.redo': '重做',
|
'toolbar.button.redo': '重做',
|
||||||
'toolbar.button.select': '選擇',
|
'toolbar.button.select': '選擇',
|
||||||
'toolbar.button.pencil': '鉛筆',
|
'toolbar.button.pencil': '鉛筆',
|
||||||
'toolbar.button.splitRegion': '在播放頭處分割區域',
|
'toolbar.button.splitRegion': '在播放頭處分割區域',
|
||||||
'toolbar.button.mergeRegions': '合併選中的 MIDI 區域',
|
'toolbar.button.mergeRegions': '合併已選取的 MIDI 區域',
|
||||||
'toolbar.button.snapToGrid': '吸附到網格',
|
'toolbar.button.snapToGrid': '吸附到網格',
|
||||||
'toolbar.button.copy': '複製',
|
'toolbar.button.copy': '複製',
|
||||||
'toolbar.button.paste': '粘貼',
|
'toolbar.button.paste': '貼上',
|
||||||
'toolbar.button.delete': '刪除',
|
'toolbar.button.delete': '刪除',
|
||||||
'toolbar.button.backToBeginning': '回到開頭',
|
'toolbar.button.backToBeginning': '回到開頭',
|
||||||
'toolbar.button.play': '播放',
|
'toolbar.button.play': '播放',
|
||||||
@@ -507,18 +507,18 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'track.controls.automationDropdown': '自動化',
|
'track.controls.automationDropdown': '自動化',
|
||||||
'track.controls.automation.volume': '音量',
|
'track.controls.automation.volume': '音量',
|
||||||
'track.controls.automation.pan': '聲像',
|
'track.controls.automation.pan': '聲像',
|
||||||
'track.controls.settingsDropdown': '設置',
|
'track.controls.settingsDropdown': '設定',
|
||||||
'track.controls.settings.deleteTrack': '刪除音軌',
|
'track.controls.settings.deleteTrack': '刪除音軌',
|
||||||
'toolbar.keySignatureChooser': '選擇調號,當前為 {value}',
|
'toolbar.keySignatureChooser': '選擇調號,當前為 {value}',
|
||||||
'toolbar.export.label': '導出',
|
'toolbar.export.label': '匯出',
|
||||||
'toolbar.importProject.title': '導入項目',
|
'toolbar.importProject.title': '匯入專案',
|
||||||
'toolbar.importProject.description': '將項目文件拖放到這裡',
|
'toolbar.importProject.description': '將專案檔案拖放到這裡',
|
||||||
'toolbar.openingProject': '正在打開項目...',
|
'toolbar.openingProject': '正在開啟專案...',
|
||||||
'fileImport.invalidType': '文件類型無效。請選擇以下擴展名之一的文件:{extensions}',
|
'fileImport.invalidType': '檔案類型無效。請選擇以下副檔名之一的檔案:{extensions}',
|
||||||
'fileImport.close': '關閉導入彈窗',
|
'fileImport.close': '關閉匯入彈窗',
|
||||||
'fileImport.supportedFormats': '支持的格式:{formats}',
|
'fileImport.supportedFormats': '支援的格式:{formats}',
|
||||||
'fileImport.or': '或',
|
'fileImport.or': '或',
|
||||||
'fileImport.browse': '瀏覽文件',
|
'fileImport.browse': '瀏覽檔案',
|
||||||
'instrument.group.PIANO_AND_KEYBOARDS': '鋼琴與鍵盤',
|
'instrument.group.PIANO_AND_KEYBOARDS': '鋼琴與鍵盤',
|
||||||
'instrument.group.GUITAR': '吉他',
|
'instrument.group.GUITAR': '吉他',
|
||||||
'instrument.group.BASS': '貝斯',
|
'instrument.group.BASS': '貝斯',
|
||||||
@@ -603,9 +603,9 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'kgone.tab.remix': '混音',
|
'kgone.tab.remix': '混音',
|
||||||
'kgone.tab.repaint': '重繪',
|
'kgone.tab.repaint': '重繪',
|
||||||
'kgone.tab.separator': '分離',
|
'kgone.tab.separator': '分離',
|
||||||
'kgone.tab.requiresServer': '需要 K.G.One Music Studio 服務器集成',
|
'kgone.tab.requiresServer': '需要 K.G.One Music Studio 伺服器整合',
|
||||||
// Shared across tabs
|
// Shared across tabs
|
||||||
'kgone.shared.advancedSettings': '高級設置',
|
'kgone.shared.advancedSettings': '進階設定',
|
||||||
'kgone.shared.caption': '描述',
|
'kgone.shared.caption': '描述',
|
||||||
'kgone.shared.lyrics': '歌詞',
|
'kgone.shared.lyrics': '歌詞',
|
||||||
'kgone.shared.lyricsPlaceholder': '[Verse 1]\n在這裡輸入歌詞...\n\n[Chorus]\n...',
|
'kgone.shared.lyricsPlaceholder': '[Verse 1]\n在這裡輸入歌詞...\n\n[Chorus]\n...',
|
||||||
@@ -617,16 +617,16 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'kgone.shared.thinking': '思考模式(CoT 元數據生成)',
|
'kgone.shared.thinking': '思考模式(CoT 元數據生成)',
|
||||||
'kgone.shared.selectedRegion': '已選區域',
|
'kgone.shared.selectedRegion': '已選區域',
|
||||||
'kgone.shared.track': '音軌',
|
'kgone.shared.track': '音軌',
|
||||||
'kgone.shared.poweredBy': '技術支持:',
|
'kgone.shared.poweredBy': '技術支援:',
|
||||||
'kgone.shared.btn.loadingModel': '加載模型中...',
|
'kgone.shared.btn.loadingModel': '載入模型中...',
|
||||||
'kgone.shared.btn.generating': '生成中...',
|
'kgone.shared.btn.generating': '生成中...',
|
||||||
'kgone.shared.btn.processing': '處理中...',
|
'kgone.shared.btn.processing': '處理中...',
|
||||||
'kgone.shared.btn.downloading': '下載中...',
|
'kgone.shared.btn.downloading': '下載中...',
|
||||||
'kgone.shared.btn.preparingUpload': '準備上傳...',
|
'kgone.shared.btn.preparingUpload': '準備上傳...',
|
||||||
'kgone.shared.btn.importing': '導入中...',
|
'kgone.shared.btn.importing': '匯入中...',
|
||||||
'kgone.shared.hint.loadingModel': '正在加載模型——此過程可能需要 60 秒以上,請耐心等待...',
|
'kgone.shared.hint.loadingModel': '正在載入模型,此過程可能需要 60 秒以上,請耐心等候...',
|
||||||
'kgone.shared.hint.submitting': '正在提交生成請求...',
|
'kgone.shared.hint.submitting': '正在提交生成請求...',
|
||||||
'kgone.shared.hint.downloadingAudio': '正在下載音頻...',
|
'kgone.shared.hint.downloadingAudio': '正在下載音訊...',
|
||||||
// Clip tab
|
// Clip tab
|
||||||
'kgone.clip.field.prompt': '提示詞',
|
'kgone.clip.field.prompt': '提示詞',
|
||||||
'kgone.clip.field.promptPlaceholder': '例:粗糙, 酸性, 貝斯線, 303, 合成主音, FM, 次低音, 中高頻, 高頻相位, 高頻混響, 彎音, 8小節, 140 BPM, E 小調',
|
'kgone.clip.field.promptPlaceholder': '例:粗糙, 酸性, 貝斯線, 303, 合成主音, FM, 次低音, 中高頻, 高頻相位, 高頻混響, 彎音, 8小節, 140 BPM, E 小調',
|
||||||
@@ -649,7 +649,7 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'kgone.clip.field.sigmaMax': 'Sigma 最大值',
|
'kgone.clip.field.sigmaMax': 'Sigma 最大值',
|
||||||
'kgone.clip.field.cfgRescale': 'CFG 重縮放',
|
'kgone.clip.field.cfgRescale': 'CFG 重縮放',
|
||||||
'kgone.clip.hint.generating': '正在生成片段...',
|
'kgone.clip.hint.generating': '正在生成片段...',
|
||||||
'kgone.clip.hint.drag': '將上方播放器拖至音軌以導入片段。拖到<strong>音頻音軌</strong>可作為 WAV 區域導入(推薦),拖到<strong>MIDI 音軌</strong>可作為 MIDI 區域導入。注意:MIDI 是從音頻轉錄的,可能不完全準確。',
|
'kgone.clip.hint.drag': '將上方播放器拖至音軌以匯入片段。拖到<strong>音訊音軌</strong>可作為 WAV 區域匯入(推薦),拖到<strong>MIDI 音軌</strong>可作為 MIDI 區域匯入。注意:MIDI 是從音訊轉錄而來,未必完全準確。',
|
||||||
'kgone.clip.btn.generate': '生成片段',
|
'kgone.clip.btn.generate': '生成片段',
|
||||||
'kgone.clip.poweredBy': 'Foundation-1',
|
'kgone.clip.poweredBy': 'Foundation-1',
|
||||||
// Full Song tab
|
// Full Song tab
|
||||||
@@ -659,7 +659,7 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'kgone.fullSong.hint.generating': '生成中...',
|
'kgone.fullSong.hint.generating': '生成中...',
|
||||||
'kgone.fullSong.hint.generatingProgress': '生成中... {pct}% — {stage}',
|
'kgone.fullSong.hint.generatingProgress': '生成中... {pct}% — {stage}',
|
||||||
'kgone.fullSong.hint.generatingProgressNoStage': '生成中... {pct}%',
|
'kgone.fullSong.hint.generatingProgressNoStage': '生成中... {pct}%',
|
||||||
'kgone.fullSong.hint.drag': '將上方播放器拖至<strong>音頻音軌</strong>以導入歌曲。完整歌曲生成不支持拖至 MIDI 音軌。',
|
'kgone.fullSong.hint.drag': '將上方播放器拖至<strong>音訊音軌</strong>以匯入歌曲。完整歌曲生成不支援拖至 MIDI 音軌。',
|
||||||
'kgone.fullSong.btn.generate': '生成歌曲',
|
'kgone.fullSong.btn.generate': '生成歌曲',
|
||||||
'kgone.fullSong.poweredBy': 'ACE-Step 1.5',
|
'kgone.fullSong.poweredBy': 'ACE-Step 1.5',
|
||||||
// Remix tab
|
// Remix tab
|
||||||
@@ -674,18 +674,18 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'kgone.remix.hint.generating': '正在生成混音...',
|
'kgone.remix.hint.generating': '正在生成混音...',
|
||||||
'kgone.remix.hint.generatingProgress': '正在生成混音... {pct}% — {stage}',
|
'kgone.remix.hint.generatingProgress': '正在生成混音... {pct}% — {stage}',
|
||||||
'kgone.remix.hint.generatingProgressNoStage': '正在生成混音... {pct}%',
|
'kgone.remix.hint.generatingProgressNoStage': '正在生成混音... {pct}%',
|
||||||
'kgone.remix.hint.drag': '將上方播放器拖至<strong>音頻音軌</strong>以導入混音。',
|
'kgone.remix.hint.drag': '將上方播放器拖至<strong>音訊音軌</strong>以匯入混音。',
|
||||||
'kgone.remix.hint.noRegion': '請在時間軸上選擇一個音頻區域以進行混音。僅支持音頻區域——MIDI 區域不可混音。',
|
'kgone.remix.hint.noRegion': '請在時間軸上選擇一個音訊區域以進行混音。僅支援音訊區域,MIDI 區域不可混音。',
|
||||||
'kgone.remix.btn.generate': '生成混音',
|
'kgone.remix.btn.generate': '生成混音',
|
||||||
'kgone.remix.btn.processingRemix': '處理混音中...',
|
'kgone.remix.btn.processingRemix': '處理混音中...',
|
||||||
'kgone.remix.btn.importAligned': '對齊源區域並導入',
|
'kgone.remix.btn.importAligned': '對齊來源區域並匯入',
|
||||||
'kgone.remix.poweredBy': 'ACE-Step 1.5',
|
'kgone.remix.poweredBy': 'ACE-Step 1.5',
|
||||||
// Repaint tab
|
// Repaint tab
|
||||||
'kgone.repaint.field.repaintRange': '重繪範圍',
|
'kgone.repaint.field.repaintRange': '重繪範圍',
|
||||||
'kgone.repaint.field.loopModeOff': '循環模式已關閉。請啟用工具欄上的循環按鈕並設置循環範圍以定義重繪窗口。',
|
'kgone.repaint.field.loopModeOff': '循環模式已關閉。請啟用工具列上的循環按鈕並設定循環範圍,以定義重繪視窗。',
|
||||||
'kgone.repaint.field.start': '開始',
|
'kgone.repaint.field.start': '開始',
|
||||||
'kgone.repaint.field.end': '結束',
|
'kgone.repaint.field.end': '結束',
|
||||||
'kgone.repaint.field.untilEnd': '直至音頻末尾',
|
'kgone.repaint.field.untilEnd': '直到音訊結尾',
|
||||||
'kgone.repaint.field.captionPlaceholder': '例:風格:爵士,感覺:流暢悠揚,編排:鋼琴、立式貝斯、刷式鼓...',
|
'kgone.repaint.field.captionPlaceholder': '例:風格:爵士,感覺:流暢悠揚,編排:鋼琴、立式貝斯、刷式鼓...',
|
||||||
'kgone.repaint.field.captionHint': '描述重繪段落的目標風格和編排。',
|
'kgone.repaint.field.captionHint': '描述重繪段落的目標風格和編排。',
|
||||||
'kgone.repaint.field.lyricsHint': '留空則保留原歌詞,或為重繪段落提供新歌詞。',
|
'kgone.repaint.field.lyricsHint': '留空則保留原歌詞,或為重繪段落提供新歌詞。',
|
||||||
@@ -695,39 +695,39 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'kgone.repaint.hint.generating': '正在生成重繪...',
|
'kgone.repaint.hint.generating': '正在生成重繪...',
|
||||||
'kgone.repaint.hint.generatingProgress': '正在生成重繪... {pct}% — {stage}',
|
'kgone.repaint.hint.generatingProgress': '正在生成重繪... {pct}% — {stage}',
|
||||||
'kgone.repaint.hint.generatingProgressNoStage': '正在生成重繪... {pct}%',
|
'kgone.repaint.hint.generatingProgressNoStage': '正在生成重繪... {pct}%',
|
||||||
'kgone.repaint.hint.drag': '將上方播放器拖至<strong>音頻音軌</strong>以導入重繪結果。',
|
'kgone.repaint.hint.drag': '將上方播放器拖至<strong>音訊音軌</strong>以匯入重繪結果。',
|
||||||
'kgone.repaint.hint.noRegion': '請在時間軸上選擇一個音頻區域以進行重繪。僅支持音頻區域——MIDI 區域不可重繪。',
|
'kgone.repaint.hint.noRegion': '請在時間軸上選擇一個音訊區域以進行重繪。僅支援音訊區域,MIDI 區域不可重繪。',
|
||||||
'kgone.repaint.btn.generate': '生成重繪',
|
'kgone.repaint.btn.generate': '生成重繪',
|
||||||
'kgone.repaint.btn.processingRepaint': '處理重繪中...',
|
'kgone.repaint.btn.processingRepaint': '處理重繪中...',
|
||||||
'kgone.repaint.btn.importAligned': '對齊源區域並導入',
|
'kgone.repaint.btn.importAligned': '對齊來源區域並匯入',
|
||||||
'kgone.repaint.poweredBy': 'ACE-Step 1.5',
|
'kgone.repaint.poweredBy': 'ACE-Step 1.5',
|
||||||
// Separator tab
|
// Separator tab
|
||||||
'kgone.separator.field.separationModel': '分離模型',
|
'kgone.separator.field.separationModel': '分離模型',
|
||||||
'kgone.separator.field.chunkDuration': '可選音頻分塊時長(秒)',
|
'kgone.separator.field.chunkDuration': '可選音訊分塊時長(秒)',
|
||||||
'kgone.separator.field.chunkDurationPlaceholder': '留空則處理整個區域',
|
'kgone.separator.field.chunkDurationPlaceholder': '留空則處理整個區域',
|
||||||
'kgone.separator.field.modelOverlap': '模型重疊',
|
'kgone.separator.field.modelOverlap': '模型重疊',
|
||||||
'kgone.separator.hint.drag': '將上方各音軌播放器拖至<strong>音頻音軌</strong>以導入。不支持拖至 MIDI 音軌進行音軌分離。',
|
'kgone.separator.hint.drag': '將上方各音軌播放器拖至<strong>音訊音軌</strong>以匯入。不支援拖至 MIDI 音軌進行音軌分離。',
|
||||||
'kgone.separator.hint.noRegion.download': '請下載 {model},然後在時間軸上選擇一個音頻區域以提取音軌。',
|
'kgone.separator.hint.noRegion.download': '請下載 {model},然後在時間軸上選擇一個音訊區域以提取音軌。',
|
||||||
'kgone.separator.hint.noRegion.select': '請在時間軸上選擇一個音頻區域以提取音軌。僅支持音頻區域——MIDI 區域不可分離。',
|
'kgone.separator.hint.noRegion.select': '請在時間軸上選擇一個音訊區域以提取音軌。僅支援音訊區域,MIDI 區域不可分離。',
|
||||||
'kgone.separator.btn.separateStems': '分離音軌',
|
'kgone.separator.btn.separateStems': '分離音軌',
|
||||||
'kgone.separator.btn.importAllStems': '將所有音軌導入時間軸',
|
'kgone.separator.btn.importAllStems': '將所有音軌匯入時間軸',
|
||||||
'kgone.separator.poweredBy': 'UVR5 CLI',
|
'kgone.separator.poweredBy': 'UVR5 CLI',
|
||||||
'kgone.separator.model.vocalInstMedium': '人聲與樂器(中等精度)',
|
'kgone.separator.model.vocalInstMedium': '人聲與樂器(中等精度)',
|
||||||
'kgone.separator.model.vocalInstHigh': '人聲與樂器(高精度)',
|
'kgone.separator.model.vocalInstHigh': '人聲與樂器(高精度)',
|
||||||
'kgone.separator.model.6stem': '人聲、鼓、貝斯、吉他、鋼琴及其他',
|
'kgone.separator.model.6stem': '人聲、鼓、貝斯、吉他、鋼琴及其他',
|
||||||
'kgone.separator.model.htdemucs4s': '人聲、鼓、貝斯及其他',
|
'kgone.separator.model.htdemucs4s': '人聲、鼓、貝斯及其他',
|
||||||
'kgone.separator.btn.server.loadingModel': '加載模型中...',
|
'kgone.separator.btn.server.loadingModel': '載入模型中...',
|
||||||
'kgone.separator.btn.server.generating': '準備上傳...',
|
'kgone.separator.btn.server.generating': '準備上傳...',
|
||||||
'kgone.separator.btn.server.polling': '正在分離音軌...',
|
'kgone.separator.btn.server.polling': '正在分離音軌...',
|
||||||
'kgone.separator.btn.server.downloading': '下載中...',
|
'kgone.separator.btn.server.downloading': '下載中...',
|
||||||
'kgone.separator.btn.local.loadingModel': '準備本地模型...',
|
'kgone.separator.btn.local.loadingModel': '準備本地模型...',
|
||||||
'kgone.separator.btn.local.generating': '準備音頻...',
|
'kgone.separator.btn.local.generating': '準備音訊...',
|
||||||
'kgone.separator.btn.local.polling': '本地分離中...',
|
'kgone.separator.btn.local.polling': '本地分離中...',
|
||||||
'kgone.separator.btn.local.downloading': '收尾處理...',
|
'kgone.separator.btn.local.downloading': '收尾處理...',
|
||||||
'kgone.separator.local.title': '本地分離模式',
|
'kgone.separator.local.title': '本地分離模式',
|
||||||
'kgone.separator.local.description': '如果 K.G.One Music Studio 不可用,本地分離模式提供了一種直接在瀏覽器中提取音軌的內置替代方案。提供兩種本地模型:人聲與樂器(中等精度),以及人聲、鼓、貝斯及其他。下方的下載狀態反映當前選定的模型。人聲與樂器(中等精度)的處理時間通常比人聲、鼓、貝斯及其他更長,總處理時間仍取決於您的硬件配置。如果處理回退至 CPU,分離運行期間頁面響應可能暫時變慢。',
|
'kgone.separator.local.description': '如果 K.G.One Music Studio 不可用,本地分離模式提供一個可直接在瀏覽器中提取音軌的內建替代方案。提供兩種本地模型:人聲與樂器(中等精度),以及人聲、鼓、貝斯及其他。下方的下載狀態反映目前選定的模型。人聲與樂器(中等精度)的處理時間通常比人聲、鼓、貝斯及其他更長,總處理時間仍取決於您的硬體配置。如果處理回退至 CPU,分離運行期間頁面回應可能會暫時變慢。',
|
||||||
'kgone.separator.local.learnMore': '了解更多關於 K.G.One Music Studio 服務器集成的信息。',
|
'kgone.separator.local.learnMore': '了解更多關於 K.G.One Music Studio 伺服器整合的資訊。',
|
||||||
'kgone.separator.local.provider': '當前設備:',
|
'kgone.separator.local.provider': '目前裝置:',
|
||||||
'kgone.separator.local.model': '模型:',
|
'kgone.separator.local.model': '模型:',
|
||||||
'kgone.separator.local.downloaded': '已下載',
|
'kgone.separator.local.downloaded': '已下載',
|
||||||
'kgone.separator.local.notDownloaded': '未下載',
|
'kgone.separator.local.notDownloaded': '未下載',
|
||||||
@@ -743,37 +743,37 @@ export const zhHkMessages: TranslationMessages = {
|
|||||||
'kgone.separator.local.progress.downloadingMbOnly': '正在下載 {name}... {received} MB',
|
'kgone.separator.local.progress.downloadingMbOnly': '正在下載 {name}... {received} MB',
|
||||||
'kgone.separator.local.progress.ready': '{name} 已就緒。',
|
'kgone.separator.local.progress.ready': '{name} 已就緒。',
|
||||||
'kgone.separator.local.progress.preparingRuntime': '正在準備 ONNX 運行時環境...',
|
'kgone.separator.local.progress.preparingRuntime': '正在準備 ONNX 運行時環境...',
|
||||||
'kgone.separator.local.progress.readingAudio': '正在讀取音頻文件...',
|
'kgone.separator.local.progress.readingAudio': '正在讀取音訊檔案...',
|
||||||
'kgone.separator.local.progress.running': '正在瀏覽器中執行分離...',
|
'kgone.separator.local.progress.running': '正在瀏覽器中執行分離...',
|
||||||
'kgone.separator.local.progress.complete': '分離完成。',
|
'kgone.separator.local.progress.complete': '分離完成。',
|
||||||
|
|
||||||
'openProjectModal.title': '打開項目',
|
'openProjectModal.title': '開啟專案',
|
||||||
'openProjectModal.close': '關閉',
|
'openProjectModal.close': '關閉',
|
||||||
'openProjectModal.loading': '正在加載項目...',
|
'openProjectModal.loading': '正在載入專案...',
|
||||||
'openProjectModal.date.unknown': '未知',
|
'openProjectModal.date.unknown': '未知',
|
||||||
'openProjectModal.filter.placeholder': '篩選項目...',
|
'openProjectModal.filter.placeholder': '篩選專案...',
|
||||||
'openProjectModal.viewToggle.projects': '項目',
|
'openProjectModal.viewToggle.projects': '專案',
|
||||||
'openProjectModal.viewToggle.trash': '回收站',
|
'openProjectModal.viewToggle.trash': '回收站',
|
||||||
'openProjectModal.trash.hint': '已刪除的項目將在 30 天後自動移除。',
|
'openProjectModal.trash.hint': '已刪除的專案將在 30 天後自動移除。',
|
||||||
'openProjectModal.sort.name': '名稱',
|
'openProjectModal.sort.name': '名稱',
|
||||||
'openProjectModal.sort.created': '創建時間',
|
'openProjectModal.sort.created': '建立時間',
|
||||||
'openProjectModal.sort.updated': '更新時間',
|
'openProjectModal.sort.updated': '更新時間',
|
||||||
'openProjectModal.empty.trash': '回收站為空',
|
'openProjectModal.empty.trash': '回收站為空',
|
||||||
'openProjectModal.empty.noProjects': '暫無已保存的項目',
|
'openProjectModal.empty.noProjects': '暫無已儲存的專案',
|
||||||
'openProjectModal.empty.noMatch': '沒有符合篩選條件的項目',
|
'openProjectModal.empty.noMatch': '沒有符合篩選條件的專案',
|
||||||
'openProjectModal.meta.created': '創建於 {date}',
|
'openProjectModal.meta.created': '建立於 {date}',
|
||||||
'openProjectModal.meta.updated': '更新於 {date}',
|
'openProjectModal.meta.updated': '更新於 {date}',
|
||||||
'openProjectModal.meta.deleted': '刪除於 {date}',
|
'openProjectModal.meta.deleted': '刪除於 {date}',
|
||||||
'openProjectModal.action.open': '打開',
|
'openProjectModal.action.open': '開啟',
|
||||||
'openProjectModal.action.duplicate': '複製',
|
'openProjectModal.action.duplicate': '複製',
|
||||||
'openProjectModal.action.delete': '刪除',
|
'openProjectModal.action.delete': '刪除',
|
||||||
'openProjectModal.action.restore': '恢復',
|
'openProjectModal.action.restore': '還原',
|
||||||
'openProjectModal.action.deletePermanently': '永久刪除',
|
'openProjectModal.action.deletePermanently': '永久刪除',
|
||||||
'openProjectModal.dialog.duplicateName': '請輸入複製項目的名稱:',
|
'openProjectModal.dialog.duplicateName': '請輸入複製專案的名稱:',
|
||||||
'openProjectModal.dialog.invalidName': '項目名稱無效。只允許使用字母、數字、空格、連字符、下劃線、句號和括號。',
|
'openProjectModal.dialog.invalidName': '專案名稱無效。只允許使用字母、數字、空格、連字符、底線、句號和括號。',
|
||||||
'openProjectModal.dialog.duplicateError': '複製項目失敗:{error}',
|
'openProjectModal.dialog.duplicateError': '複製專案失敗:{error}',
|
||||||
'openProjectModal.dialog.deleteError': '刪除項目失敗:{error}',
|
'openProjectModal.dialog.deleteError': '刪除專案失敗:{error}',
|
||||||
'openProjectModal.dialog.restoreError': '恢復項目失敗:{error}',
|
'openProjectModal.dialog.restoreError': '還原專案失敗:{error}',
|
||||||
'openProjectModal.dialog.confirmPermanentDelete': '確定要永久刪除"{name}"嗎?\n\n此操作無法撤銷。',
|
'openProjectModal.dialog.confirmPermanentDelete': '確定要永久刪除"{name}"嗎?\n\n此操作無法撤銷。',
|
||||||
'openProjectModal.dialog.permanentDeleteError': '永久刪除項目失敗:{error}',
|
'openProjectModal.dialog.permanentDeleteError': '永久刪除專案失敗:{error}',
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user