メインコンテンツへスキップ
← ブログに戻る
事例紹介2026年7月18日by K.hirano

HeartMuLa 3B vs ACE-Step 1.5 徹底比較:ローカルAI音楽生成、歌詞はどこまで再現できるか

自宅サーバー(RTX 4070 Ti 12GB)でHeartMuLa 3BとACE-Step 1.5を実機比較。歌詞再現度をWhisperXで定量評価し、12GB VRAM環境で踏んだ導入の罠も記録しました。

#heartmula#Ace-Step#ローカルAI音楽生成#RTX4070Ti#whisperx

まず結論を書くと、歌詞をきっちり歌わせたい場面ではHeartMuLa 3B、雰囲気重視のインストならACE-Step 1.5に軍配が上がりました。自宅のRTX 4070 Ti(VRAM 12GB)で両方を実機比較した結果です。同じ歌詞・同じタグを両方に投げて生成し、WhisperXで歌詞の一致率を数値化しました。8ジャンル平均でHeartMuLaがやや優勢(0.545 vs 0.464)でしたが、動かすまでにはそれぞれ別種の罠がありました。

目次

Sunoは知ってるけど、ローカルでどこまでやれるのか気になった

AI音楽生成といえばSunoが真っ先に名前が挙がる。ただ、クラウドサービス頼みだとどうしても「アカウントがある間だけ使える」「無料枠だと生成数に限りがある」という不安がついて回る。うちは自宅にRTX 4070 Ti(VRAM 12GB)を積んだAIサーバーがあって、ComfyUIやQwen3-TTSなど普段からローカルAIを回しているので、「音楽生成もローカルでどこまでやれるのか」を実機で試してみた。

候補に挙げたのは2つ。

  • ACE-Step 1.5 — 既にうちで稼働実績のある定番のローカル音楽生成モデル
  • HeartMuLa 3B — 2026年1月に登場した新顔。Apache 2.0ライセンスで、歌詞制御力に定評があるという触れ込み

同じ歌詞・同じタグを両方のモデルに投げて、実際にどれだけ歌詞を正確に歌ってくれるかをWhisperXで文字起こしして数値化してみた。単なる聴き比べで終わらせず、「動かすまでに何が起きたか」まで含めて書く。

HeartMuLa 3Bを12GB VRAMで動かすまでの罠

HeartMuLaはCLI専用ツールで、Gradio UIのようなサーバーは同梱されていない。python examples/run_music_generation.py を都度叩く軽量な構成だ。導入自体はPython 3.10の仮想環境を用意して pip install -e . するだけとシンプルだったが、実際に生成を試すと立て続けに3つの壁にぶつかった。

1つ目はVRAM不足。デフォルトの cfg_scale(Classifier-Free Guidanceの強度)は1.5なのだが、これが1.0以外の値だと内部でバッチサイズが2倍になる実装になっている。3Bモデル+音声コーデックのロードだけで12GB枠のほとんどを使い切ってしまうため、KVキャッシュを確保する段階でCUDA out of memoryが発生した。--cfg_scale 1.0 に落としてバッチを1本化することで解決したが、これは生成のガイダンス強度を犠牲にする妥協でもある。

2つ目はモデルロード時に見つけた発見で、--max_audio_length_ms(生成する曲の長さ指定)を短くしてもVRAM使用量は変わらなかった。中身を追うと、KVキャッシュのサイズはコード側で max_seq_len=8192 に固定されていて、指定した曲の長さとは無関係だった。

3つ目は音声保存時のエラー。新しいtorchaudioは保存バックエンドとしてtorchcodecを要求するが、これが実機のCUDAビルドとバージョンが噛み合わず、libnvrtc.so.13が見つからないというエラーでロードに失敗した。torchaudioのsave()を諦め、soundfileライブラリ経由でwav保存する形にコードを一部書き換えて回避した。

この3つを乗り越えれば、あとは安定して動く。1曲(90秒)の生成にかかる時間は、モデルロード込みで約1分前後だった。

ACE-Step 1.5、UIの標準操作だとバッチ生成が頻繁に落ちる

ACE-Step側は既に自宅で運用実績があったので導入自体に問題はなかったが、Gradio UIの「Custom」モードで標準通りに生成すると、歌詞付きの曲でほぼ毎回こんなエラーが出た。

RuntimeError: stack expects each tensor to be equal size, but got [18570, 64] at entry 0 and [20160, 64] at entry 1

UIのデフォルトは「1回で2サンプル同時生成」する仕様になっているのだが、歌詞ありの曲だと言語モデルが終了トークンを出すタイミングが2サンプルで微妙にズレる。生成された2本の長さが揃わないまま結合しようとして内部でクラッシュする、という設計上の穴だ。UI上にはこの同時生成数を1に減らす操作画面が見当たらなかったため、Gradioの内部APIを直接叩いてバッチサイズを1に固定することで安定させた。

インストゥルメンタル曲では起きにくく、歌詞付きの曲で再現性高く発生した。ACE-Stepを標準UIで使っていて謎のRuntimeErrorに遭遇した人がいたら、まずバッチサイズを疑ってみてほしい。

8ジャンルで聴き比べる

同じ歌詞・同じスタイルタグを両モデルに投げて生成する、というシンプルな検証方法で進めた。ジャンルはJ-POP、Rock、Lo-Fi Hip-hop、Ambient、Rap、アニソン、ユーロビート、沖縄イメージの8つ。プレビュー用に冒頭25秒を切り出している。

J-POP(日本語歌詞・女性ボーカル)

  • HeartMuLa:
  • ACE-Step:

日本語の歌詞制御は今回の検証で最も差が出たジャンルだった。

Rock(英語歌詞・男性ボーカル)

  • HeartMuLa:
  • ACE-Step:

Lo-Fi Hip-hop(インスト)

  • HeartMuLa:
  • ACE-Step:

Ambient / Healing(インスト)

  • HeartMuLa:
  • ACE-Step:

Rap(英語・男性ラップ)

  • HeartMuLa:
  • ACE-Step:

アニソン(日本語歌詞・女性ボーカル)

  • HeartMuLa:
  • ACE-Step:

ユーロビート(英語歌詞・男性ボーカル)

  • HeartMuLa:
  • ACE-Step:

ここは実は今回一番の「事故」が起きたジャンルで、後述するがACE-Step側は歌詞がほぼ消えてしまっていた。

沖縄イメージ(三線・琉球音階)

  • HeartMuLa:
  • ACE-Step:

三線という西洋の学習データには少なそうな楽器・琉球音階をどう再現するか気になっていたジャンル。

WhisperXで歌詞の一致率を数値化してみた

「聴いた印象」だけだと主観が入りすぎるので、生成した音声をWhisperX(large-v3)で文字起こしし、意図した歌詞との一致率を機械的に計算した。インスト曲(Lo-Fi Hip-hop、Ambient)は歌詞がないので対象外、歌詞ありの6ジャンルで比較している。

HeartMuLaACE-Step
J-POP0.4880.289
Rock0.7760.839
Rap0.5630.653
アニソン0.4350.441
ユーロビート0.4250.000
沖縄イメージ0.5830.563
平均0.5450.464

数値だけ見るとHeartMuLaが優勢に見えるが、内訳を見るとそう単純でもない。RockとRapの英語曲では、むしろACE-Stepの方がスコアが高かった。反復的なコーラス構造の曲では、ACE-Stepも安定して歌詞を再現できるという推測が成り立つ。

差が大きく開いたのは日本語のJ-POPと、そしてユーロビート。特にユーロビートのACE-Step側はWhisperXの音声区間検出が「歌声が見つからない」と判定するレベルまで歌詞が消えてしまい、実質的にインスト化していた。HeartMuLaでこの種の「歌詞ごと消える」事故には遭遇していない。

総合すると、HeartMuLaは歌詞から外れる"事故"が少なく安定ACE-Stepは当たれば高精度だが時々歌詞ごと飛ぶことがある、という対照的な結論になった。

注意点

このスコアはWhisperX自体の文字起こし精度も混ざった複合指標であり、モデルの歌唱精度だけを純粋に測れているわけではない。あくまで「大まかな傾向を掴む一次指標」として見てほしい。また、比較対象は各ジャンル1回ずつの生成であり、シードを変えて複数回試せばスコアは多少上下する可能性がある。

まとめ:どっちを使うべきか

RTX 4070 Ti(12GB)クラスの環境で両方動かした実感としては、

  • 歌詞を正確に歌わせたい場面(Vlog主題歌、歌詞メッセージ性の強い用途)にはHeartMuLa 3B。ただしデフォルト設定のままでは動かないので、cfg_scale=1.0にする、soundfileで保存するといった一手間は前提になる。
  • ジャンルの雰囲気・グルーヴ重視でインスト中心ならACE-Step 1.5。既に自宅で運用実績があり枯れている分、UI操作の手軽さは今も分がある。ただしバッチ生成時のstackエラーには要注意。

どちらもクラウド課金なしでローカルGPU1枚で動く選択肢として十分実用的だった。Sunoの代替を探しているなら、両方試してみて用途に合う方を選ぶのが良さそうだ。

出典: HeartMuLa 公式GitHub / ACE-Step 1.5(自宅サーバー既存運用) 検証日・環境: 2026年7月、自宅AIサーバー(RTX 4070 Ti・VRAM 12GB、Ubuntu 24.04)

関連リンク

  • 実際の構成を探すなら、GPU 比較ページやローカルLLM向け構成記事もあわせて見ると判断しやすいです。
  • ハードウェア候補は用途別の AI 構成ガイドからたどると、単体製品より違和感なく検討できます。

この記事を書いた人

HW系エンジニアとして20年以上、10,000件を超える顧客訪問と2,000件を超える単独ソリューション実績。AIツールを使った個人開発やIoT農園など、Raspberry Piを使ったオートメーション化なども実践中です!エンジニア専門結婚相談所も運営中、ClaudeCodeで解決できない心の課題も解決いたします!

関連AIツール

META-MARK × AI

ローカルAIを動かすGPU、ちゃんと選べていますか?

VRAM・性能・コスパをMetaScoreで数値化。AIアプリ別の推奨ハードウェア要件も確認できます。