やりたいこと
AMDのGPUを使用してでStable Audio Open 1.0で音声作成してみます。
DirectMLを使用します。
環境構築
作業用のフォルダを作成します。
venv環境への移動(任意)
必要であればコマンドプロンプトで以下のコマンドを実行して、Venvの環境を作成してアクティブにします。
python -mvenv venv
venv\scripts\activate.bat
ライブラリのインストール
以下のコマンドを実行して必要なライブラリのインストールを行います。
pip install scipy
pip install torch torchvision torchaudio
pip install torch-directml
pip install soundfile
pip install diffusers
pip install transformers
pip install torchsde
pip install accelerate
スクリプトの作成
以下の内容をrun.pyのファイル名で保存します。
import scipy
import torch
import soundfile as sf
from diffusers import StableAudioPipeline
import torch_directml
import random
dml = torch_directml.device()
repo_id = "stabilityai/stable-audio-open-1.0"
pipe = StableAudioPipeline.from_pretrained(repo_id, torch_dtype=torch.float16, cache_dir="model")
pipe = pipe.to(dml)
prompt = "sound of heart beat"
generator = torch.Generator()
generator.manual_seed(random.randint(1, 65535))
audio = pipe(
prompt,
num_inference_steps=2,
audio_end_in_s=0.5,
num_waveforms_per_prompt=1,
generator=generator,
).audios
output = audio[0].T.float().cpu().numpy()
sf.write("output.wav", output, pipe.vae.sampling_rate)
実行
以下のコマンドを実行してスクリプトを実行します。
実行したフォルダにoutput.wavというファイルが作成されます。
python run.py
モデルのダウンロードに失敗する場合
下の記事を参考にしてください。
実行環境に関して
うちの環境(CPU:AMD Ryzen 7 7735HS / メモリ:32GB / GPU:CPU内臓)でブラウザやエディタなどを周世してギリギリ動作します。(成功するときとout of memoryで失敗するときがあります)
スクリプトの変更
プロンプトの変更
prompt = “sound of heart beat”のsound of heart beat部分を変更します。
音声ファイルの時間の変更
audio_end_in_s=0.5,の0.5を変更します。(単位は秒)
品質の変更
num_inference_steps=2の2を変更します。
この値は初期値は100です。貧弱な私の環境で無理やり動作させるために2にしています。
AMDのGPUボードを使用している環境などでは積極的に大きな値にしてください。
結果
AMDのGPUを用いて音声生成をすることができました。
参考にさせていただいたサイト

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.
コメント