Stable Audio Open 検証・運用で遭遇した問題一覧(2025年10月現在)

AI音声

本記事では、Stable Audio Open を Windows(CUDA/CPU)および macOS(MPS)環境で検証・運用する過程で遭遇した問題と、その対応策・教訓を体系的にまとめます。

🧩 主要な問題と対処法

導入関連

Python3.10環境がおすすめ

Stable-Audio-Open 0.19 では、必要とするライブラリが最新ではうまく動作しません。
PyTorchなどの相性もあり、Python3.10系の環境を構築することをおすすめします。

Flash Attention は無理に入れなくてもOK(CUDA環境)

  • 実行時に Flash Attention に関する警告が出ますが、古めの CUDA が要求されるため実質的にインストール不可の場合も多いでしょう。
  • 標準Attentionでも動作しますので無くても問題ありません。
  • パフォーマンスを少しでも改善したい場合はオプションになり得ます。

生成時間関連

出力音声は最長でも約47秒

  • モデル仕様により、1回の生成は最大約47秒に制限されます。
    基本的には、この範囲で生成する利用方法が推奨されます。
  • 環境音等、断続的な音声の場合は、出力後に外部でFFmpeg等でクロスフェード処理を追加し、滑らかに接続することで長尺の音楽も対応生成できます。
  • 音楽など連続性が必要なものは本モデルでは難しいため、他のモデルを検討しましょう。

こちらは出力を繰り返しFFmpegのクロスフェード処理で5分まで延長したサンプルです。
焚き火をイメージし、”crackling campfire, wood burning”をプロンプトとして与えたもので、違和感はありません。

出力は必ず最大長で行われる

  • seconds_start / seconds_end で時間を指定しても、末尾に無音部分が生じます。
    モデルが必ず最大長(約47秒)を返す仕様となっているようです。
  • ファイル出力前に出力結果の後半をカットして回避できます。
    seconds=秒数、rate=サンプリングレートです。
    output = output[:, :seconds * rate]
  • ファイル生成後に無音部分をトリミングしてもOK。

動作安定化関連

データ型不一致(float16 / float32)の予防

  • mac等、環境によっては生成されたデータの型が異なる場合があります。
    生成後に統一しておくことで、トリミングや音量調整などがやりやすくなります。
    • ouput=output.to(torch.float32)
  • 最終的なファイル保存時に必要に応じて形を変えると良いでしょう。

ループで生成を回すと処理が遅くなる(GPUキャッシュの問題?)

  • 生成を繰り返すと速度が急激に低下する場合があります。
  • torch.cuda.empty_cache()gc.collect() を定期的に実行すると回避できるようです。

生成される音量が大きすぎる

  • 音のレンジの調整やノイズが混じった場合に、何気なく再生すると爆音となる場合も。
    試行を繰り返す間は、ピーク正規化・音量調整で対応しましょう。
    output = output * 0.7

stepsは公式より多めがおすすめ

  • steps=100では品質が不安定で、steps=200で安定化しますが生成時間は倍になります。
  • steps=50など小さな値で試し、プロンプトやパラメターが定まったらstepsを増加すると良いでしょう。

⚙️ macOS 安定動作のための工夫

Windows環境では安定して動作しましたが、macOS(Macbook Air M2)で試している間、初期は大きなノイズが乗る現象に悩まされました。

現在まで、下記のような対策を複数組み合わせて結果、安定して動作しています。 メモリ不足やネットワークの要因で動作が固まる場合もありました。どれがノイズの原因か、決定的な要因は不明ですが、ご参考まで。

設定目的効果コード例
TOKENIZERS_PARALLELISM=falsefork警告防止プロセス競合防止os.environ["TOKENIZERS_PARALLELISM"] = "false"
MPSキャッシュクリア状態リセット安定性向上torch.mps.empty_cache()
メモリ解放徹底リーク防止状態クリーン化del output, conditioning, negative_conditioning
negative_conditioningノイズ抑制品質安定"low quality, distorted, noisy, muffled"
steps=200品質向上自然な生成設定項目変更
生成後キャッシュクリアメモリ圧迫防止長時間安定torch.mps.empty_cache()

ベンチマーク結果(Stable Audio Open)

手元の環境でのベンチマークを結果ご紹介します。

  • 13th Gen i9-139400F / RTX4070(VRAM 12G)
  • Macbook Air M2

プロンプトやパラメータを変化させながら試行する使い方を想定すると、結論としてはCUDA環境以外での実用的な運用は難しいと言えます。

速度比較

  • Windowsの場合、RTX4070(CUDA) は CPUのみに対して 約15.5倍速
  • Macの場合、Metal(MPS) は CPUのみに対して 約2.5倍速
  • CUDA環境ならM2 の 約13.4倍速

条件

  • 10秒音声 / 100 steps / dpmpp-3m-sde / seed=42
  • Prompt: “ocean waves crashing on beach, seagulls in distance”
環境デバイスLoad TimeGen TimePer StepTotal備考
Windows 11RTX 4070 (CUDA)10.11s42.66s0.427s52.77s✅ 実用的
CPU6.64s663.09s6.63s669.72s非実用的
MacBook Air M2MPS22.91s573.35s5.73s596.26s約2.5倍速(CPU比)
CPU23.20s1428.67s14.29s1451.87s非実用的

プロンプト内容やシード値でも生成時間はかなり変わりますので、あくまで目安とお考えください。

タイトルとURLをコピーしました