はじめに
AudioXはZeyue TianらによるGitHub上のオープンソースプロジェクトで、公式論文はarXivで公開されている(No.2503.10522)。DiffusionTransformer技術に基づいており、テキスト、ビデオ、画像、音声など様々な入力から高品質な音声や音楽を生成することができる。AudioXの特徴は、単一の入力をサポートするだけでなく、マルチモーダルデータの処理を統一し、自然言語制御によって結果を生成する点である。このプロジェクトでは、vggsound-caps(190,000件の音声記述)とV2M-caps(6,000,000件の音楽記述)という2つのデータセットを提供し、学習データ不足の問題を解決しています。AudioXは、開発者、研究者、クリエイターのために、コードと学習済みモデルをオープンソース化しています。
機能一覧
- 音声を生成するための複数の入力をサポート:あなたは、対応するオーディオや音楽を生成するためにテキスト、ビデオ、写真やオーディオを使用することができます。
- 自然言語コントロール:「軽いピアノ音楽」など、テキストの説明でオーディオの内容やスタイルを調整できます。
- 高品質出力:生成されたオーディオと音楽の音質は高く、プロレベルに近い。
- 統一されたマルチモーダル処理:異なるタイプの入力を同時に処理し、一貫した結果を生成する能力。
- オープンソースリソース:二次開発を容易にするために、完全なコード、事前学習済みモデル、データセットが利用可能です。
- ネイティブデモのサポート:機能を簡単にテストするためのGradio経由のインタラクティブなインターフェイス。
ヘルプの使用
AudioXはプログラミングの知識が必要で、Pythonの経験があるユーザーに適しています。以下は、インストールと使い方の詳細です。
設置プロセス
- ダウンロードコード
ターミナルで以下のコマンドを入力して、AudioXリポジトリをクローンします:
git clone https://github.com/ZeyueT/AudioX.git
次にプロジェクト・ディレクトリに移動する:
cd AudioX
- 環境づくり
AudioXにはPython 3.8.20が必要です。仮想環境を作るにはCondaを使います:
conda create -n AudioX python=3.8.20
環境を活性化させる:
conda activate AudioX
- 依存関係のインストール
プロジェクトに必要なライブラリをインストールする:
pip install git+https://github.com/ZeyueT/AudioX.git
オーディオ処理ツールを再度インストールする:
conda install -c conda-forge ffmpeg libsndfile
- 訓練済みモデルのダウンロード
モデルフォルダを作成する:
mkdir -p model
モデルと設定ファイルのダウンロード
wget https://huggingface.co/HKUSTAudio/AudioX/resolve/main/model.ckpt -O model/model.ckpt
wget https://huggingface.co/HKUSTAudio/AudioX/resolve/main/config.json -O model/config.json
- インストールの確認
環境が正常であることをテストする:
python -c "import audiox; print('AudioX installed successfully')"
エラーが報告されなければ、インストールは成功です。
主な機能
AudioXは、テキストからオーディオへ(T2A)、ビデオから音楽へ(V2M)など、さまざまな生成タスクをサポートしています。具体的な操作方法は以下の通りです。
テキストから音声を生成する
- 次のようなPythonファイルを作成する。
text_to_audio.py
. - 次のコードを入力してください:
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
text = "敲击键盘的声音"
audio = model.generate(text=text)
audio.save("keyboard.wav")
- スクリプトを実行する:
python text_to_audio.py
- 生成されたオーディオは
keyboard.wav
その効果をプレーヤーで確認することができます。
ビデオから音楽を生成する
- 次のようなビデオファイルを用意する。
sample.mp4
. - スクリプトの作成
video_to_music.py
インプット:
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
audio = model.generate(video="sample.mp4", text="为视频生成音乐")
audio.save("video_music.wav")
- 走っている:
python video_to_music.py
- 生成された音楽は
video_music.wav
.
Gradioのローカルデモを実行する
- それをターミナルに入力する:
python3 run_gradio.py --model-config model/config.json --share
- コマンド実行後、ローカルリンクが生成されます(例:http://127.0.0.1:7860)。このリンクを開くと、ウェブインターフェースを介してAudioXをテストすることができます。
- テキスト(例:「ピアノとフィドルのための音楽」)を入力するか、インターフェイス上でビデオをアップロードし、結果を聞くために[生成]をクリックします。
スクリプトによる推論の例
より複雑な生成タスクのために、詳細な推論スクリプトが公式に提供されている:
- ドキュメントの作成
generate.py
インプット:
import torch
from stable_audio_tools import get_pretrained_model, generate_diffusion_cond
device `Truncated`torch.torch.torch.torch.torch.torch.torch.torch.torch_torch.torch.torch_torch.torch.torch
device = "cuda" if torch.cuda.is_available() else "cpu"
model, config = get_pretrained_config("HKUSTAudio/AudioX")
model = model.to(device)
sample_rate = config["sample_rate"]
sample_size = config["sample_size"]
video_path = "sample.mp4"
text_prompt = "为视频生成钢琴音乐"
conditioning = [{"video_prompt": [read_video(video_path, 0, 10, config["video_fps"]).unsqueeze(0)],
"text_prompt": text_prompt,
"seconds_start": 0,
"seconds_total": 10}]
output = generate_diffusion_cond(model, steps=250, cfg_scale=7, conditioning=conditioning, sample_size=sample_size, device=device)
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)
- 走っている:
python generate.py
- 生成されたオーディオは
output.wav
.
設定例
以下は、各タスクの入力設定である:
- テキストからオーディオへ::
text="敲击键盘的声音"
,video=None
- ビデオから音楽へ::
video="sample.mp4"
,text="为视频生成音乐"
- 混合入力::
video="sample.mp4"
,text="海浪声和笑声"
ほら
- GPUは生成速度を大幅に向上させるので、推奨される。
- ビデオフォーマットはmp4、オーディオ出力はwavである必要があります。
- ネットワークが安定していることを確認してください。モデルのダウンロードには数分かかる場合があります。
アプリケーションシナリオ
- 作曲
悲しいフィドルの曲」のようなテキスト説明を入力すると、ミュージッククリップを素早く生成できます。 - ビデオ・サウンドトラック
動画をアップロードして、マッチしたBGMや効果音を生成。 - 研究開発
オープンソースのコードとデータセットを使用した音声生成技術の改善。
品質保証
- 中国語に対応していますか?
はい、中国語の入力に対応しています。 - 必要な保管スペースは?
コードとモデルは約2-3GBで、完全なデータセットはさらに数十GBを必要とする。 - 発電にかかる時間は?
GPUでは数秒から1分、CPUでは数分かかるかもしれない。