HOT-Step CPP: C++とGGMLによるローカルAI音楽生成

HOT-Step CPPで、ステレオ48kHzの音楽をローカルに生成。ACE-Step用の高機能C++/GGMLインターフェースで、オーディオツール、プラグイン、モデルトレーニングもサポート。

HOT-Step CPP: C++とGGMLによるローカルAI音楽生成

クラウド音楽生成サービスは便利ですが、ランニングコストがかかり、クリエイティブな素材を外部サービスにアップロードし、生成設定が隠されていることがよくあります。HOT-Step CPPは、ネイティブC++/GGMLエンジンをバックエンドにしたブラウザベースのアプリケーションに、ローカルAI音楽生成をパッケージ化した、別のアプローチを取ります。

キャプションと歌詞で曲を説明し、生成パラメータを選択し、ステレオ48kHzのオーディオを完全に自分のハードウェアで生成できます。APIキー、サブスクリプション、クラウド推論は不要です。

このプロジェクトはacestep.cppを拡張し、生成、オーディオ処理、ステム分離、MIDI転写、マスタリング、モデル管理、実験的なトレーニングワークフローを含む100以上の機能を提供します。

HOT-Step CPPが興味深い理由

HOT-Step CPPは、音楽生成ツールではめったに利用できない3つの利点を組み合わせています。

  1. ローカル推論 — 歌詞、プロンプト、生成されたトラックは自分のマシンに残ります。
  2. ネイティブパフォーマンス — 推論エンジンはC++で実装され、CUDA、Vulkan、Metal、CPU実行などのGGMLバックエンドを使用します。
  3. プロダクション指向のツール — 生成は始まりに過ぎません。アプリケーションには、カバー、ステム、MIDI、マスタリング、VST3処理、歌詞管理、リペイント、品質評価が含まれます。

このアプリケーションはACE-Step 1.5を中心に構築されており、実験的なネイティブMiniMax-Music3バックエンドも利用できます。これにより、クリエイティブなワークステーションとしても、ローカル生成オーディオエンジニアリングのテストベッドとしても有用です。

主な生成ワークフロー

オートジェン

オートジェンは、完全な仕様ではなくアイデアから始めたいユーザー向けに設計されています。ジャンルを選択し、必要に応じて主題と言語を指定すると、統合言語モデルが以下を生成できます。

  • 歌詞
  • スタイルキャプション
  • 曲のメタデータ
  • タイトル

完全に生成された歌詞、主題から書かれた歌詞、またはインストゥルメンタルワークフローを選択できます。プレビューモードでは、オーディオ生成にコミットする前に生成された歌詞を編集できます。シリアルキューは一度に1つのジョブを処理し、ライブ進行状況を公開します。

カスタムジェン

カスタムジェンは、生成コントロールへの直接アクセスを提供します。独自の歌詞とキャプションを提供し、タイトルとアーティストを選択し、以下を設定できます。

  • BPM
  • 長さ
  • キー
  • 拍子
  • ソルバーとスケジューラー
  • ガイダンスモード
  • CFGスケールと潜在変数コントロール
  • 後処理オプション

再現性とパラメータ実験が重要な場合、これが最適なワークフローです。シードと生成メタデータが保持されるため、記憶に頼るのではなくバリエーションを比較できます。

柔軟なサンプリングとプラグインシステム

エンジンには、17のソルバー、9のスケジューラー、7のガイダンスモードが含まれています。Luaプラグインアーキテクチャにより、新しいODE/SDEソルバー、ノイズスケジューラー、ガイダンスモード、後処理パイプラインをC++エンジンを再構築せずに追加できます。

プラグインを作成するには、.luaファイルを次の場所に配置します。

engine/plugins/

プラグインは次回起動時にUIで利用可能になります。プラグインは独自のスライダー、トグル、ドロップダウンを公開でき、研究指向のサンプリングメソッドを通常のアプリケーションインターフェースから使用できます。含まれる例には、CFG-MP、SMC-CFG、CFG-Zero⋆があります。

この設計は開発者にとって特に価値があります。サンプリング実験は、すべてのユーザーがカスタムバイナリをコンパイルする必要なく、小さなスクリプトとして配布できます。

生成を超えたオーディオ制作機能

HOT-Step CPPは、生成された音楽を最終ファイルではなく、編集および洗練するための素材として扱います。

マッチングと後処理

マッチングマスタリングエンジンは、ラウドネス、イコライゼーション、ダイナミクスをリファレンストラックに合わせます。インスタントなマスタリング/未マスタリングのA/Bトグルにより、処理が結果を改善したかどうかを簡単に判断できます。処理はネイティブ48kHzで動作し、不要なリサンプリングの往復を回避します。

追加の処理には、ウィーナーフィルタースペクトルノイズリデューサー、ネイティブC++スペクトラルリフター、PP-VAEニューラルポリッシング、ボーカルナチュラライザーDSP、長さバッファリング、自動トリミング、設定可能なフェードアウトが含まれます。内部パイプラインはWAV32のままで、WAV、MP3、FLACとしてエクスポートできます。

ステーブルステップ

ステーブルステップは、完成したトラックのインストゥルメンタル部分を、部分的な再ノイズ化を通じてStable Audio 3で再レンダリングします。その目標は、歌詞とボーカルをそのままに、VAEフィズやその他のスペクトルアーティファクトをより説得力のあるディテールに置き換えることです。

ワークフローは、BS-RoFormerでリードボーカルとバッキングボーカルを分離し、インストゥルメンタルを処理し、ボーカル素材をリミックスします。ユーザーはリファイン強度を調整し、元のキャプションから派生したプロンプトを使用できます。

2つのバックエンドが利用可能です。

  • GGML: 約5.8 GBのモデル
  • ONNX/TensorRT: 約12 GBのモデル

Stable Audioモデルは、Stability AIコミュニティライセンスの下で配布されています。

カバー、ステム、MIDI

カバースタジオ

カバースタジオは、Essentiaを使用してリファレンストラックを分析し、BPM、キー、エネルギー、音色情報を抽出します。ソースの選択した側面を保持または変換しながら、スタイルマッチしたカバーを生成できます。

有用なコントロールには、構造忠実度、ソース保存、キー転調プレビュー付きピッチシフト、テンポスケーリング、ステム分離、再結合、アルバムごとのアダプタープリセットが含まれます。

ステムスタジオとステムビルダー

ステムスタジオは、4段階の分離パイプラインを使用します。

  1. プライマリ6ステム分離用BS-RoFormer
  2. リードボーカルとバッキングボーカル分離用Mel-Band RoFormer
  3. ドラムサブ分離用MDX23C
  4. 楽器リファインメント用HTDemucs

シーケンシャルVRAM管理により、分離中のピーク使用量は3 GB未満に保たれます。インタラクティブミキサーは、マルチソロ、ステムごとのボリュームコントロール、ZIPエクスポートをサポートしています。

ステムビルダーは逆方向に機能します。ソーストラックを提供し、DiTエンジンに補完的なボーカル、ドラム、ベース、ギター、ピアノのステムを生成するよう依頼します。曲全体を再生成する代わりに、アレンジを反復的に構築できます。

MIDIスタジオ

MIDIスタジオは、KyutaiとMireloのMuScriptorのネイティブC++/GGMLポートです。このプロジェクトは、リファレンス実装に対するバイト単位の検証とGPUアクセラレーションを報告しています。3.5分のトラックは1分未満で転写できます。

このツールは、34の楽器グループとドラムにわたるマルチトラックMIDIを生成します。小、中、大モデルが利用可能で、UIは転写中にライブピアノロールを表示します。ユーザーは、クロスフェードスライダーと楽器ごとのミュートまたはソロコントロールを使用して、元のオーディオとMIDIレンディションをすぐに比較できます。

モデルの重みはHugging Faceでゲートされており、CC BY-NC 4.0でライセンスされているため、この機能は非商用利用を目的としています。

実験的なモデルトレーニング

トレーニングスタジオでは、Pythonや外部の前処理ツールなしで、HOT-Step内でスタイルアダプターをトレーニングできます。曲のフォルダーをアプリケーションに指定すると、次のワークフローをガイドできます。

  • データセット作成
  • ローカルBPMとキー分析
  • Geniusからの歌詞取得
  • オーディオ対応AIキャプション
  • テンソル前処理
  • Planner LM LoRAトレーニング
  • DiT LoRAトレーニング

プランナーモデルには、0.6B、1.7B、4Bのバリアントが含まれます。純粋なLMオーディションモードでは、DiTの影響なしに、プランナーがベースモデルに対して何を学習したかを比較できます。

この機能は明示的に実験的です。少なくとも16 GBのVRAMを備えたGPUが推奨され、フル深度のDiTトレーニングは24 GB以上のシステムに適しています。メモリ使用量が多く、動作が変化することが予想されます。

MiniMax-Music3バックエンド

HOT-Step CPPには、MiniMax-Music3の初歩的なネイティブC++/GGMLポートも含まれています。プロジェクトはこれを初期実装と説明し、知る限りではPython以外でのモデルの最初のバージョンです。

モデルマネージャーからMiniMax-Music3パックをインストールすると、グローバルバーにバックエンドスイッチが表示されます。パックは約24 GBで、f16で約24 GBのVRAMが必要です。

現在のサポートは、以下を使用したテキストから音楽への生成に限定されています。

  • キャプション
  • 歌詞
  • 長さ
  • シード

カバー、リペイント、ステム、アダプター、トレーニングは、このバックエンドではまだサポートされていません。出力は生の44.1 kHz WAVとして保存されます。量子化された低VRAMバリアントが計画されています。

ハードウェアとプラットフォームのサポート

プリビルドリリースは以下で利用可能です。

プラットフォーム アクセラレーションオプション
Windows x64 CUDA、Vulkan、CPU
Linux x64 CUDA、Vulkan、CPU
macOS Apple Silicon Metal

NVIDIAユーザーには、CUDAが最適なパフォーマンスを提供し、RTX 2060以降を推奨します。VulkanはAMD、Intel、古いNVIDIAハードウェアをサポートします。CPUモードはサポートされているすべてのマシンで動作しますが、大幅に遅くなります。

一般的なストレージ要件は、アプリケーションとスターターモデルで約10 GBです。標準のACE-Stepモデルセットは、アプリケーションを通じて約7 GBのダウンロードが必要です。

ポータブルリリースでのクイックスタート

最も簡単なインストール方法は、リリースアーカイブをダウンロードして解凍し、プラットフォーム固有のスクリプトを起動することです。

Windows

  1. CUDA、Vulkan、またはCPU用のアーカイブをダウンロードして解凍します。
  2. HOT-Step.batを実行します。
  3. ブラウザが自動的に開かない場合は、http://localhost:3001を開きます。
  4. モデル → その他のモデルを取得に移動し、約7 GBのスターターモデルセットをダウンロードします。

Windows 10または11 64ビットが必要です。CUDAバリアントには互換性のあるNVIDIAドライバーが必要で、VulkanバリアントにはVulkan 1.1以降のドライバーが必要です。

Linux

./HOT-Step.sh

Ubuntu 22.04または同等のx86_64ディストリビューションを使用します。CUDAユーザーはNVIDIAドライバー525以降が必要です。VulkanユーザーはVulkan 1.1対応ドライバーとlibvulkan1が必要です。

macOS

macOS 13以降を実行しているApple Siliconシステムで:

./HOT-Step.sh

リリースにはNode.jsが含まれているため、個別のNodeインストールは不要です。macOSが署名されていないバイナリをブロックする場合は、一度だけ quarantine 属性を削除します。

xattr -cr /path/to/HOT-Step-CPP/

ソースからのビルド

サブモジュールを含むリポジトリをクローンします。

git clone --recursive https://github.com/scragnog/HOT-Step-CPP.git
cd HOT-Step-CPP

--recursiveなしでリポジトリをクローンした場合は、依存関係を手動で初期化します。

git submodule update --init --recursive

Windows + CUDA

C++によるデスクトップ開発、Visual Studio統合付きCUDA Toolkit 12.x以降、CMake 3.14+、Git、Node.js 18–22 LTSを含むVisual Studio 2022 Build Toolsをインストールします。Node.js 24はサポートされていません。

便利なビルドコマンドは次のとおりです。

engine\build.cmd

手動のCMakeビルドの場合:

cd engine
mkdir build
cd build
cmake .. -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=native
cmake --build . --config Release -j %NUMBER_OF_PROCESSORS%
cd ..\..

macOS + Metal

Xcode Command Line Tools、CMake、Node.js 18–22 LTS、Gitをインストールします。次に、Metalを有効にしてビルドします。

cd engine
mkdir build && cd build
cmake .. -DGGML_METAL=ON -DGGML_METAL_EMBED_LIBRARY=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j $(sysctl -n hw.ncpu)
cd ../..

Metalシェーダーライブラリを埋め込むことで、実行時に外部の.metallibファイルは不要になります。

Linux

CUDAビルドは次を使用します。

cd engine
mkdir -p build && cd build
cmake .. -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . -j $(nproc)

Vulkanの場合:

cmake .. -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . -j $(nproc)

CPUのみのビルドの場合は、バックエンドフラグを省略します。

cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j $(nproc)

起動前にサーバーとUIの依存関係をインストールします。

cd server && npm install && cd ..
cd ui && npm install && cd ..

WindowsではLAUNCH.batを実行し、macOSとLinuxでは./launch.shを実行します。本番モードはポート3001でリッスンします。開発モードはポート3000でViteフロントエンドを使用します。

モデルレイアウト

ソースビルドでは、models/の下に次のファイルが必要です。

models/
├── acestep-5Hz-lm-4B-Q8_0.gguf
├── Qwen3-Embedding-0.6B-Q8_0.gguf
├── acestep-v15-turbo-Q8_0.gguf
└── vae-BF16.gguf

推奨ファイルはおおよそ次のとおりです。

コンポーネント ファイル サイズ
言語モデル acestep-5Hz-lm-4B-Q8_0.gguf 4.2 GB
テキストエンコーダー Qwen3-Embedding-0.6B-Q8_0.gguf 748 MB
DiT acestep-v15-turbo-Q8_0.gguf 2.4 GB
VAE vae-BF16.gguf 322 MB

より小さい0.6Bおよび1.7B LMバリアントが利用可能です。オプションモデルには、ScragVAE(322 MB)、PP-VAE(644 MB)、StableStep GGMLアセット(5.8 GB)、StableStep ONNXアセット(12 GB)が含まれます。

アプリ内のモデルマネージャーは通常より簡単です。キュレーションされたスターターパックを提供し、5つのHugging Faceリポジトリにわたる100以上のGGUFモデルへのアクセスを、再開可能な並行ダウンロードで提供します。

開発者向けアーキテクチャ

システムは、協力する3つのコンポーネントに分かれています。

コンポーネント テクノロジー 責任
エンジン C++、CUDA、GGML モデル推論とネイティブオーディオ操作を実行
サーバー Node.js、TypeScript ジョブを調整し、曲を管理し、アプリケーションを提供
UI React、Vite、TypeScript ブラウザベースのクリエイティブインターフェースを提供

この分離により、プロジェクトはいくつかの方向からアプローチしやすくなります。C++開発者は推論とDSPに取り組むことができ、TypeScript開発者はオーケストレーションとAPIを拡張でき、フロントエンド開発者はエンジンを変更せずにクリエイティブワークフローを追加できます。

エンジンはGGUFとHugging Face safetensorsをサポートしています。safetensorsフォルダーはモデルディレクトリにドロップでき、UIでフォーマットバッジで識別されます。BF16 safetensorsはBF16 GGUFとビットパーフェクトな出力を生成し、LoRAアダプターは両方のフォーマットで動作します。

一般的なビルドの問題

特に一般的ないくつかの問題があります。

  • Node.js 24インストール失敗: nvm install 22nvm use 22でNode.js 22 LTSに切り替えます。
  • MSVC C2589エラー: NOMINMAXを定義し、必要に応じてCMakeを/DNOMINMAX /DWIN32_LEAN_AND_MEANで構成します。
  • CUDA Toolkitディレクトリが見つからない: CUDA_PATHを確認し、Visual Studio統合をインストールし、ターミナルを再起動します。
  • Ninjaバイナリの場所エラー: Ninjaはバイナリをengine/build/Release/ではなくengine/build/に直接配置します。
  • 古いCMake構成: CUDAバージョンまたはコンパイラ設定を変更した後、engine/build/を削除して再度構成します。
  • Windowsパス長エラー: vcvars64.batPATHが拡張された場合は、新しいターミナルを開きます。
  • macOS Gatekeeperブロック: 解凍したリリースディレクトリにxattr -crを使用します。

誰が試すべきか?

HOT-Step CPPは、AI音楽生成をローカルで制御したい開発者、ミュージシャン、技術に精通したクリエイターに最適です。テキストからオーディオへのデモ以上のものです。このプロジェクトは、拡張可能なネイティブエンジン、本格的なブラウザUI、実験的なモデルポート、生成されたオーディオを完成したプロダクションに近づけるための成長するツールコレクションを提供します。

トレードオフは複雑さです。大規模なモデルはかなりのディスクスペースとVRAMを必要とする場合があり、一部の機能は実験的であり、MiniMax-Music3とトレーニングスタジオのワークフローはまだ進化しています。しかし、ローカルAIツールに慣れているユーザーにとっては、その同じ開放性が魅力です。設定を検査し、モデルを交換し、Luaプラグインを書き、ソースからビルドし、クリエイティブパイプライン全体を自分のマシンに保つことができます。

ソース

scragnog/HOT-Step-CPP: Turn dials. Summon bangers! NOW WITH MORE C++! Local AI music generation powered by GGML