Stable Audio 3・ACE-Step 1.5・MusicGenをRTX 3060で比較:生成速度、日本語の歌、メロディ指定を検証

社内の検証マシン「DQN」(GeForce RTX 3060、VRAM 12 GiB)で、ローカルで動く音楽生成AIを3つ比べました。2026年5月に公開されたStable Audio 3 Medium、歌入りの曲を作れるACE-Step 1.5、メロディを音声で指定できるMusicGen-melodyです。
結果を先にまとめます。速さはStable Audio 3が圧倒的で、3分の曲を約4.8秒で生成しました。日本語の歌詞を歌わせられたのはACE-Step 1.5だけで、2分30秒の曲を約31秒で生成し、歌詞の大半が音声認識で読み取れる程度に歌われていました。メロディを指定してアレンジさせる用途では、MusicGen-melodyだけが「メロディを保ったまま、ベースや打楽器を加える」ことができました。
検証日:Stable Audio 3は2026年10月1日、ACE-Step 1.5とMusicGen-melodyは2026年10月2日(いずれも日本時間)。生成した音声はすべてこの記事で試聴できます。
比較した3つのモデル
| 項目 | Stable Audio 3 Medium | ACE-Step 1.5 | MusicGen-melody |
|---|---|---|---|
| 開発元 | Stability AI | ACE Studio・StepFun | Meta |
| 1回で生成できる長さ | 最大380秒 | 10〜600秒 | 30秒 |
| 歌声と歌詞 | 非対応 | 対応(50以上の言語) | 非対応 |
| メロディの指定 | Audio-to-Audioで間接的に | カバー機能などで間接的に | メロディ音声で条件付けできる |
| ライセンス | Stability AI Community License(同意フォームあり) | MIT | CC-BY-NC 4.0(非商用) |
仕様の出典は、各モデルの公式リポジトリ・モデルカードとCLIのヘルプ表示です(末尾の参照資料を参照)。Stable Audio 3 Mediumは、テキストエンコーダーにGoogleのT5Gemmaを使っているため、Gemma Terms of Useへの同意も必要でした。Stability AI Community Licenseは、年商100万ドル未満なら商用利用もできる条件です。MusicGen-melodyの重みは非商用ライセンスなので、業務で使う場合は注意が必要です。
検証環境
| 項目 | 内容 |
|---|---|
| OS / CPU / メモリ | Ubuntu 24.04 LTS / Intel Core i5-12400 / 32 GiB |
| GPU | NVIDIA GeForce RTX 3060、VRAM 12 GiB、ドライバー 580.173.02 |
| Python | 3.12(モデルごとに別のvenvを作成) |
| Stable Audio 3 | 公式リポジトリ 3a82c80、torch 2.7.1+cu126、Flash Attention 2.8.3 |
| ACE-Step 1.5 | 公式リポジトリ ca1e85f、torch 2.10.0+cu128、transformers 4.57.6(uv sync で導入) |
| MusicGen-melody | Hugging Face transformers 5.18.0、torch 2.11.0+cu128、fp16 |
DQNでは普段、ローカルLLMのサーバーがVRAMを約10 GiB使っています。今回の検証中はこのサービスを止めてGPUを空け、終了後に再起動して正常に応答することを確認しました。
セットアップの要点
Stable Audio 3 Medium
Hugging Faceのモデルページでライセンスに同意してから、公式リポジトリを使います。Mediumの実行にはFlash Attention 2が必要です。RTX 3060とPython 3.12に合うビルド済みのwheelを入れました。モデルのダウンロード量は約10 GBです。
git clone https://github.com/Stability-AI/stable-audio-3
cd stable-audio-3
# venv を作成し、torch 2.7.1・Flash Attention 2・本体を導入
.venv/bin/stable-audio --model medium -p "プロンプト" --duration 120 --seed 10 -o out.wav
ACE-Step 1.5
パッケージ管理ツールuvで依存関係をまとめて導入します。モデルは初回実行時に自動でダウンロードされます。曲の生成本体(DiT)にはturbo版を使いました。曲の構成を考える言語モデル(LM)は、VRAM 12 GiBの場合、公式の推奨どおり0.6B版を使う必要がありました(理由は後述)。
git clone https://github.com/ace-step/ACE-Step-1.5
cd ACE-Step-1.5
uv sync
# Python API: DiT は acestep-v15-turbo、LM は acestep-5Hz-lm-0.6B(vllm バックエンド)
MusicGen-melody
Hugging Face transformersの MusicgenMelodyForConditionalGeneration を使いました。テキストのプロンプトに加えて、メロディの音声を入力として渡せます。モデルは facebook/musicgen-melody(約1.5B)です。
検証1:同じプロンプトでインスト曲を生成
3つのモデルに同じプロンプトを渡して、スチールパンが主役のカリプソを作らせました。シードは10に固定しています。
Upbeat Caribbean calypso, bright steel pan lead melody, steel drums, congas and bongos, shakers, walking bass, 110 BPM, sunny, joyful, tropical beach party, instrumental
| 項目 | Stable Audio 3 Medium | ACE-Step 1.5 | MusicGen-melody |
|---|---|---|---|
| 生成した長さ | 120秒 | 120秒 | 30秒 |
| 生成時間 | 3分の曲で約4.8秒(※) | 28.7秒 | 29.2秒 |
| ピークVRAM(PyTorch計測) | 5.1 GiB(※) | 10.9 GiB(LM 1.7B) | 4.5 GiB |
| モデルの読み込み | 約13秒 | 21.7秒(LM 0.6B、2回目) | 4.1秒(2回目) |
| ステップ数など | 8ステップ | 8ステップ、LMによる構成の推論あり | 自己回帰、guidance 3.0 |
※ Stable Audio 3のこのカリプソ(120秒)単体の生成時間は記録していません。表の値は、前日に同じ環境で3分の曲を1回で生成したときの測定値です。同じテストでは、メインメモリを最大で約18 GB使いました。
ACE-Step 1.5の28.7秒の内訳は、ログによると次のとおりです。LMが曲のメタデータ(BPM、調、拍子など)を決める段階に6.3秒、LMが音の設計図にあたるコードを600個生成する段階に14.6秒、DiTによる拡散生成に2.6秒でした。残りは音声への変換と保存の時間です。時間の大半はLMが使っていて、DiT自体はStable Audio 3と同じくらい速いことがわかります。
プロンプトにない項目は、LMが自動で補います。今回は調が「D major」、拍子が「2」と推論されました。BPMはプロンプトの110がそのまま使われました。
検証2:ACE-Step 1.5で日本語の歌詞を歌わせる
Stable Audio 3とMusicGenには歌詞を入力できません。そこで、ACE-Step 1.5だけで、日本語の歌詞付きの曲を作れるかを試しました。歌詞は今回のためにオリジナルで用意しました。
caption: Bright Japanese city pop, female vocal, funky electric guitar, slap bass,
warm synth pads, steel pan accents, catchy chorus, uplifting, night drive
vocal_language: ja / bpm: 112 / duration: 150 / seed: 7
[Verse 1]
夜更けのモニター 青く光る
キーを叩けば 夢が動き出す
小さなロボが 隣で笑う
「もう少しだけ」 コーヒーを注ぐ
[Chorus]
コードの海を 泳いでゆこう
バグも涙も 星に変えて
朝が来るまで 止まらない
ぼくらの未来を ビルドしよう
[Verse 2]
赤いエラーに 首をかしげて
ひとつずつ 謎を解いてゆく
画面の向こう 誰かが待つ
届けたい音を ここで鳴らそう
[Chorus](繰り返し)
[Outro]
ぼくらの未来を ビルドしよう
生成時間は31.1秒、ピークVRAMは8.5 GiBでした(LMは0.6B版)。内訳は、メタデータの推論に5.0秒、コード生成に16.7秒、DiTに3.6秒です。
音声認識で歌詞を確認した
歌詞どおりに歌えているかを客観的に確かめるため、日本語の音声認識モデルkotoba-whisper v2.2(faster-whisper版、CPUで実行)で、生成した曲を文字起こししました。伴奏を分離せずに、曲のまま認識させています。
| 時刻 | 認識結果 | 元の歌詞 |
|---|---|---|
| 0〜15秒 | 夜更なモニター青く光る | 夜更けのモニター 青く光る |
| 15〜19秒 | 黄色を叩けば夢が動き出す | キーを叩けば 夢が動き出す |
| 19〜28秒 | 小さなロボが隣で笑う/もう少しだけコーヒーを注ぐ | (同じ) |
| 30〜41秒 | 雨雲も涙も星に変えて/朝が来るまで止まらない | バグも涙も 星に変えて/朝が来るまで 止まらない |
| 60〜80秒 | 赤いエラに首をかしげて/一つずつ謎を解いていく/画面の向こう誰かが待つ/届けたい音をここで鳴らそう | (ほぼ同じ) |
| 80〜88秒 | 高度の海を泳いで行こう/バーグも涙も星に変えて | コードの海を 泳いでゆこう/バグも涙も 星に変えて |
| 95〜114秒 | リールドしよう/僕らの未来をリルーしよう | ビルドしよう/ぼくらの未来を ビルドしよう |
Verse 1とVerse 2は、ほぼ歌詞の順番どおりに認識されました。崩れやすかったのは「コード」「バグ」「ビルド」といったカタカナの外来語です。ただし、認識の誤りなのか、実際に発音が崩れているのかは、この方法では区別できません。1回目のサビは、冒頭の「コードの海を」が「紅葉のロー」と、末尾が「僕らの未来を見る」と、大きく崩れて認識されました。最後の約35秒は、歌のない後奏になっていました。
検証3:メロディを指定してアレンジさせる
どのモデルも、楽譜やMIDIを直接読み込むことはできません。代わりに、メロディを単純な電子音で鳴らした音声を入力として渡しました。メロディは今回用意したオリジナルの8小節(ハ長調、110 BPM)で、2回繰り返した34.9秒の音声です。プロンプトは検証1と同じです。
Stable Audio 3の --init-noise-level は、元の音声にどれだけノイズを加えてから作り直すかを決める値です。小さいほど元の音が残り、大きいほど自由に作り直されます。
数値で比べた結果
2つの指標を計算しました。1つ目は、元のメロディとの音の高さの一致度です。各時点で鳴っている音を12の音名(ド、ド#、レ…)ごとの強さに直して、元のメロディとの類似度(コサイン類似度)を最初の30秒で平均しました。0.5秒以内のずれは許容しています。2つ目は、伴奏が加わったかの目安として、4 kHz以上(シェイカーなど打楽器の帯域)と150 Hz未満(ベースの帯域)が全体のエネルギーに占める割合です。
| 音声 | メロディ一致度 | 4 kHz以上 | 150 Hz未満 |
|---|---|---|---|
| 入力メロディ | (基準) | 0.00% | 0.00% |
| MusicGen-melody(メロディ指定あり) | 0.84 | 1.78% | 33.18% |
| Stable Audio 3(noise 0.6) | 0.92 | 0.03% | 0.02% |
| Stable Audio 3(noise 0.8) | 0.27 | 0.97% | 23.70% |
| 参考:MusicGen(メロディ指定なし) | 0.34 | 1.53% | 0.32% |
| 参考:Stable Audio 3(検証1の曲) | 0.30 | — | — |
MusicGen-melodyは、メロディの一致度を0.84に保ったまま、ベースと高音域の打楽器を加えていました。メロディを指定しなかった場合(0.34)と比べると、入力したメロディに沿っていることがはっきりわかります。
Stable Audio 3は、noise 0.6だと一致度が0.92と最も高くなりました。しかし、ベースと打楽器の帯域がほぼ0%で、入力の電子音がほとんどそのまま残った状態でした。noise 0.8にすると伴奏は加わりますが、一致度はメロディ指定なしと同じ水準まで下がりました。今回の2つの設定では、「メロディを残しながら編曲する」ことはできませんでした。0.6と0.8の間の値は試していません。
つまずいた点
- ACE-Step 1.5のVRAM不足:最初はLMに1.7B版を使いました。インスト曲は生成できましたが、歌入りの150秒の曲で「必要なVRAMが約1.2 GB足りない」というエラーになりました。LMを0.6B版に替えると、ピークVRAM 8.5 GiBで生成できました。公式の目安でも、VRAM 8〜12 GBなら0.6B版が推奨されています。
- ACE-Step 1.5の初回起動:モデルのダウンロードを含めて、読み込みに185秒かかりました。Flash Attentionを入れていない環境では、LMの推論エンジン(nano-vllm)がCUDA Graphを使わない設定に切り替わる、というログが出ました。
- Stable Audio 3のFlash Attention:Mediumの実行には必須です。ソースからビルドすると時間がかかるので、環境に合うビルド済みのwheelを探して入れました。
- MusicGen-melodyの長さ:1回の生成は30秒が上限です。それより長い曲を作るには、続きを生成してつなげる処理が別に必要です。今回は試していません。
用途別の使い分け
| やりたいこと | 向いているモデル | 理由 |
|---|---|---|
| 作業用BGMやインスト曲をたくさん作る | Stable Audio 3 Medium | 数分の曲を数秒で生成でき、VRAMの使用量も少ない |
| 歌詞のある曲を作る | ACE-Step 1.5 | 今回の3つで唯一、日本語の歌詞を歌える。ライセンスもMIT |
| 決まったメロディを編曲させる | MusicGen-melody | メロディを保ったまま伴奏を加えられた。ただし非商用ライセンスで、1回30秒まで |
この結果から評価できる範囲
各条件とも、1つのシードで1回だけ生成した結果です。同じモデルでもシードによって出来は大きく変わるため、この記事の音声がそれぞれのモデルの平均的な品質を表しているとは限りません。音質や曲としての良さについて、複数人による聴き比べの評価は行っていません。
メロディの一致度は、音名ごとの強さを比べる簡易な指標です。和音や伴奏の音が増えると、メロディが残っていても値は下がります。音符単位でメロディが正確に再現されたかを示すものではありません。歌詞の確認に使った音声認識も、伴奏のある歌声では誤認識が起こります。
生成時間は、モデルを読み込んだ後の1曲分の時間です。Stable Audio 3の値だけは前日に別の曲で測ったものです。ピークVRAMはPyTorchが確保した最大量で、GPU全体の使用量とは一致しません。ACE-Step 1.5の10.9 GiBには、LMの推論エンジンが前もって確保したメモリも含まれます。
参照資料
Stable Audio 3 公式リポジトリ / Stable Audio 3 Medium モデルカード / ACE-Step 1.5 公式リポジトリ / ACE-Step 1.5 モデルカード / MusicGen-melody モデルカード / transformers の MusicGen Melody 解説 / kotoba-whisper v2.2(faster-whisper版)。公式情報は2026年10月1〜2日に確認。
