facebookresearch/WavFlow は、Meta AI が公開したマルチモーダル音声生成プロジェクトだ。論文タイトルは WavFlow: Audio Generation in Waveform Space である。
プロジェクト:https://github.com/facebookresearch/WavFlow
対象は音声合成でも、単純な音楽生成でもない。動画とテキスト条件から、同期した高忠実度の音声を生成することに焦点を当てている。さらに特徴的なのは、よくある latent compression の経路を使わず、raw waveform space でエンドツーエンドの音声生成を試みている点だ。
執筆時点で、GitHub ページでは約 55 star、3 fork が表示されている。コードは主に Python で、release は公開されていない。README も重要な注意点を明記している。組織上のポリシー制約により、production-trained checkpoints は現在公開できない。チームは完全にオープンソースのデータで訓練した foundation checkpoint に取り組んでおり、それまではユーザーが自分でモデルを訓練する必要がある。
WavFlow が解こうとしている問題
多くのマルチモーダル音声生成手法は、まず音声を latent 空間に圧縮し、その上で生成し、最後に波形へ戻す。この経路は効率的だが、圧縮の過程で細部が失われ、最終的な音の質感、同期性、高周波情報に影響が出る可能性がある。
WavFlow はこのステップを迂回し、原始波形空間で直接音声を生成しようとする。
README によると、WavFlow は waveform patchifying と amplitude lifting によって、raw audio 上で flow matching を安定して行えるようにし、直接の x-prediction を使う。平たく言えば、音を何らかの中間表現に圧縮してから生成するのではなく、音声波形そのものをモデルが扱いやすい patch に切り、振幅変換を行うことで、波形レベルで生成を学習する。
ここが最も注目すべき点だ。エンドツーエンドの波形生成が安定して動くなら、エンコーダー/デコーダーがもたらす情報ボトルネックを減らせる可能性がある。
対応する入力モード
README と訓練ガイドを見ると、WavFlow は三つの入力モードを想定している。
一つ目は VT2A、つまり video + text to audio だ。モデルに動画とテキスト説明を与え、画面と意味に同期した音声を生成させる。森、カエル、ドラム、スケートボードのような場面が例として挙げられている。
二つ目は T2A、つまり text to audio だ。テキスト説明だけがあり、動画入力はない。訓練時には CLIP text feature を使い、推論時には CSV で video_exist を 0 にできる。
三つ目は V2A、つまり video to audio だ。動画だけがあり、テキストはない。推論時には text_exist を 0 にでき、モデルは learned empty CLIP-text token を使う。
この設計は実用的だ。実データでは、すべてのサンプルに完全な動画、テキスト、音声アノテーションが揃っているとは限らない。WavFlow は video_exist と text_exist のようなフィールドで欠損モダリティを明示し、訓練と推論の両方で異なる組み合わせを扱えるようにしている。
評価と位置づけ
README では、WavFlow が VGGSound の VT2A タスクと AudioCaps の T2A タスクで評価され、既存の latent-based 手法に匹敵する性能を示したと説明されている。
これは、すでに既存モデルを全面的に上回ったという意味ではない。端到端の raw waveform generation が、従来の latent フレームワークに必ずしも劣らないことを示している。少なくとも acoustic richness、fidelity、synchronization といった指標では、同じ水準に到達できる。
プロジェクトページには forest、frog、drum、skateboard などの demo もあり、24 個以上のサンプルと並列 benchmark 比較が掲載されている。音声生成モデルでは demo が重要だ。文字指標だけでは、音の質感、空間感、同期感を十分に説明できないからだ。
インストール
公式は自動インストールスクリプトを用意している。
|
|
scripts/setup.sh は wavflow という conda 環境を作成し、必要な依存関係をインストールする。
手動で入れる場合は README の通り。
|
|
ここでの ffmpeg<7 は主に torio の動画デコード用だ。README では、CLIP、Synchformer、empty-string CFG embedding などの外部重みは初回実行時に自動でダウンロードまたは計算され、~/.cache/wavflow/ にキャッシュされるとも説明されている。
推論の実行
公式はまだ production-trained checkpoints を公開していないため、以下の推論入口は、すでに訓練済み checkpoint を持っている場合にのみ使える。
|
|
デフォルト設定ファイルは次の通り。
|
|
入力 CSV は data.csv_path で指定し、動画、テキスト、またはその両方を受け付ける。
|
|
video_exist=0 は動画をデコードせず、learned empty CLIP/Sync tokens を使うことを意味する。text_exist=0 は caption を無視し、learned empty CLIP-text token を使うことを意味する。カンマを含む caption は引用符で囲む必要がある。
よく使う起動パラメータは次の通り。
|
|
重要な設定項目には、model.name、model.ckpt_path、model.use_ema、inference.duration_sec、target_sample_rate、inference.cfg、num_steps、noise_scale、noise_shift、prediction_type、seed、出力ディレクトリがある。
EMA の落とし穴
README は model.use_ema について特に注意している。
WavFlow の checkpoint には model_ema1 が含まれることがあり、これは ema_decay = 0.9999 で更新される。訓練が数百または数千 step しか進んでいない場合、EMA にはまだランダム初期化値が多く残り、推論時にノイズを出すことがある。
そのため、短い訓練、少数サンプルへの過学習、または smoke test を行う場合は、次の設定を検討したい。
|
|
または十分に訓練した後に保存された ema_epoch_*.pth を使う。この細部は実用的だ。知らないと、モデルが壊れていると誤解しやすいが、実際には EMA がまだ安定していないだけかもしれない。
訓練フロー
公式の TRAINING.md は訓練を二段階に分けている。
第一段階は特徴抽出だ。
T2A は CLIP text feature のみを抽出する。VT2A は CLIP frame feature、Synchformer feature、CLIP text feature を抽出する。例の CSV はおおよそ次の形になる。
|
|
動画の長さは extraction.duration_sec 以上である必要があり、デフォルトは 8 秒だ。それより短いクリップはスキップされる。特徴抽出は次のように実行できる。
|
|
より多くの GPU やカスタム設定を使う場合:
|
|
第二段階は訓練だ。
単一ノードのマルチ GPU では次を使う。
|
|
マルチノード訓練では NNODES、NODE_RANK、MASTER_ADDR、MASTER_PORT、NPROC_PER_NODE を設定する必要がある。訓練出力には checkpoint_latest.pth、checkpoint_epoch_*.pth、ema_epoch_*.pth、生成された音声サンプル、training.log が含まれる。
訓練は自動 resume に対応する。実験ディレクトリに checkpoint_latest.pth があれば、そこから続行される。
誰が注目すべきか
WavFlow は、完成済みの効果音ツールを探している一般ユーザーよりも、研究者やエンジニアリングチーム向けだ。
特に次のような人に向いている。
- video-to-audio、text-to-audio、multimodal audio generation を研究している人。
- raw waveform generation と latent-based audio generation を比較したいチーム。
- 自前の音声生成モデルを訓練する必要があり、データと GPU リソースを用意できるユーザー。
- 動画画面と音の同期を強く求める応用チーム。
- flow matching が原始音声波形上で成立するかを調べたい人。
単に Web ツールで prompt を入力して効果音をすぐ作りたいなら、現時点の WavFlow は最も手軽な選択ではない。公開 production checkpoint はまだなく、デプロイ経路も研究コードに近い。
使うときの注意点
第一に、「ダウンロードしてすぐ使える」音声生成モデルとして扱うべきではない。公式は現時点で production-trained checkpoints を公開していないため、実際に推論するには自分で訓練するか、今後のオープンデータ checkpoint を待つ必要がある。
第二に、ライセンスは寛容な商用利用を前提にしたものではない。README によると、WavFlow の大部分は CC-BY-NC 4.0 で、vendored components の一部は MIT、Apache 2.0、CC BY-NC 4.0、Stability AI Community License など元のライセンスを維持している。商用利用前には LICENSE と NOTICE.txt を慎重に読む必要がある。
第三に、訓練データが非常に重要だ。WavFlow の強みは、音声、動画、テキストが揃った整合データに依存している。データ品質が低い、caption が不正確、音と映像が同期していない、といった場合、安定した音声生成を学習するのは難しい。
第四に、raw waveform generation は latent bottleneck を減らせる一方で、訓練と推論コストを上げる可能性もある。実際のプロジェクトでは、音質、速度、VRAM、サンプルレート、出力時間の間で調整が必要になる。
まとめ
WavFlow の価値は、一つの明確な問いを出している点にある。マルチモーダル音声生成は、必ず最初に latent 空間へ圧縮しなければならないのか。
WavFlow は waveform patchifying、amplitude lifting、flow matching によって、raw waveform space で同期した高忠実度音声を直接生成しようとする。評価結果は、この経路が少なくとも成熟した latent-based 手法と同じ水準に立てる可能性を示している。
ただし現段階では、これは開箱即用の製品モデルというより、研究と訓練のためのフレームワークだ。公開 production checkpoint がないこと、ライセンスが非商用寄りであること、訓練に音声・動画・テキストの整合データが必要なことから、研究、再現、追加訓練に向いている。次世代の video-to-audio や text-to-audio モデルに関心があるなら、WavFlow はじっくり見る価値がある。
参考資料
- facebookresearch/WavFlow:https://github.com/facebookresearch/WavFlow
- WavFlow Project Page:https://facebookresearch.github.io/WavFlow/
- WavFlow arXiv:https://arxiv.org/abs/2605.18749
- WavFlow Training Guide:https://github.com/facebookresearch/WavFlow/blob/main/TRAINING.md