【音楽生成AI】Stable Audio Open 1.0のインストール

【音楽生成AI】Stable Audio Open 1.0のインストール AI

音楽生成AIは、近年急速に発展を遂げています。
その中でもStability AIが開発したStable Audio Open 1.0は注目に値するオープンソースモデルです。

このモデルは、テキストプロンプトから最長47秒のステレオオーディオを生成することができます。
短いオーディオサンプルやサウンドエフェクト、プロダクション要素の生成に最適化されています。

本記事では、Stable Audio Open 1.0のインストール方法と動作確認について解説します。

本記事の内容

  • Stable Audio Open 1.0とは?
  • Stable Audio Open 1.0のインストール
  • Stable Audio Open 1.0の動作確認

それでは、上記に沿って解説していきます。

Stable Audio Open 1.0とは?

Stable Audio Open 1.0は、Stability AIが開発したオープンソースの音楽生成AIモデルです。
このモデルは、テキストプロンプトから最長47秒のステレオオーディオを44.1kHzで生成します。

システムは3つの主要コンポーネントで構成されています。

まず、オートエンコーダが波形を圧縮し、扱いやすいシーケンス長にします。
次に、T5ベースのテキスト埋め込みを用いてテキストを条件付けします。
最後に、トランスフォーマーベースの拡散(DiT)モデルがオートエンコーダの潜在空間で動作します。

このモデルは短いオーディオサンプルやサウンドエフェクト、プロダクション要素の生成に最適化されています。

なお、Stable Audio 2.0は有料版のサービスとなります。

商用利用のライセンスやより長いオーディオクリップの生成など、追加の高度な機能を提供します。
Stable Audio 2.0はプロフェッショナル向けに設計されており、商業的なプロジェクトに適しています。

Stable Audio Open 1.0のインストール

PyTorchとstable-audio-toolsが必要となっています。
PyTorchに関しては、GPU版のインストールが推奨されています。

今回は、以下のコマンドでGPU版PyTorchをインストールしています。

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

そして、stable-audio-toolsは以下のコマンドでインストール可能です。

pip install stable-audio-tools

インストールは、これだけとなります。
モデルに関しては、動作確認時に自動的にダウンロードされます。

Stable Audio Open 1.0の動作確認

stabilityai/stable-audio-open-1.0 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

上記ページにサンプルコードが記載されています。
それを実行して、動いた人はラッキーです。

ImportError: cannot import name 'packaging' from 'pkg_resources'

私の環境(Windows、Python 3.10)では、上記のエラーが出ました。
そのメッセージの中にclip.pyが出てくるはずです。

このファイルを以下のように修正します。

clip/clip.py内でのインポート修正

# 変更前
from pkg_resources import packaging

# 変更後
import packaging

再度、実行しましょう。
それで動いたらラッキーです。

サンプルコード自体に問題があるようです。
仕方がないので、ChatGPTに修正してもらいました。

その結果が、以下。

import torch
import torchaudio
from einops import rearrange
from stable_audio_tools import get_pretrained_model
from stable_audio_tools.inference.generation import generate_diffusion_cond

device = "cuda" if torch.cuda.is_available() else "cpu"

# Download model
model, model_config = get_pretrained_model("stabilityai/stable-audio-open-1.0")
sample_rate = model_config["sample_rate"]
sample_size = model_config["sample_size"]

model = model.to(device)

# Set up text and timing conditioning
conditioning = [{
    "prompt": "128 BPM tech house drum loop",
    "seconds_start": 0, 
    "seconds_total": 30
}]

# Generate stereo audio
output = generate_diffusion_cond(
    model,
    steps=100,
    cfg_scale=7,
    conditioning=conditioning,
    sample_size=sample_size,
    sigma_min=0.3,
    sigma_max=500,
    sampler_type="dpmpp-3m-sde",
    device=device
)

# Rearrange audio batch to a single sequence
output = rearrange(output, "b d n -> d (b n)")

# Peak normalize, clip, convert to int16, and save to file
output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu()
torchaudio.save("output.wav", output, sample_rate)

上記コードを実行すると、同じディレクトリ上にoutput.wavが作成されます。
このファイルを確認できれば、動作成功と言えます。

No module named 'flash_attn'

上記のモジュールがないと言われますが、12秒程度で音声が作成されます。
なお、GPUメモリが24GBのマシンで動かしています。

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