<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>WavFlow on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/wavflow/</link>
        <description>Recent content in WavFlow on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Mon, 25 May 2026 08:00:37 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/wavflow/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>WavFlow：Meta の raw waveform space におけるオープンな音声生成プロジェクト</title>
        <link>https://knightli.com/ja/2026/05/25/wavflow-raw-waveform-audio-generation/</link>
        <pubDate>Mon, 25 May 2026 08:00:37 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/25/wavflow-raw-waveform-audio-generation/</guid>
        <description>&lt;p&gt;&lt;code&gt;facebookresearch/WavFlow&lt;/code&gt; は、Meta AI が公開したマルチモーダル音声生成プロジェクトだ。論文タイトルは &lt;code&gt;WavFlow: Audio Generation in Waveform Space&lt;/code&gt; である。&lt;/p&gt;
&lt;p&gt;プロジェクト：&lt;a class=&#34;link&#34; href=&#34;https://github.com/facebookresearch/WavFlow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/facebookresearch/WavFlow&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;対象は音声合成でも、単純な音楽生成でもない。動画とテキスト条件から、同期した高忠実度の音声を生成することに焦点を当てている。さらに特徴的なのは、よくある latent compression の経路を使わず、raw waveform space でエンドツーエンドの音声生成を試みている点だ。&lt;/p&gt;
&lt;p&gt;執筆時点で、GitHub ページでは約 55 star、3 fork が表示されている。コードは主に Python で、release は公開されていない。README も重要な注意点を明記している。組織上のポリシー制約により、production-trained checkpoints は現在公開できない。チームは完全にオープンソースのデータで訓練した foundation checkpoint に取り組んでおり、それまではユーザーが自分でモデルを訓練する必要がある。&lt;/p&gt;
&lt;h2 id=&#34;wavflow-が解こうとしている問題&#34;&gt;WavFlow が解こうとしている問題
&lt;/h2&gt;&lt;p&gt;多くのマルチモーダル音声生成手法は、まず音声を latent 空間に圧縮し、その上で生成し、最後に波形へ戻す。この経路は効率的だが、圧縮の過程で細部が失われ、最終的な音の質感、同期性、高周波情報に影響が出る可能性がある。&lt;/p&gt;
&lt;p&gt;WavFlow はこのステップを迂回し、原始波形空間で直接音声を生成しようとする。&lt;/p&gt;
&lt;p&gt;README によると、WavFlow は waveform patchifying と amplitude lifting によって、raw audio 上で flow matching を安定して行えるようにし、直接の &lt;code&gt;x&lt;/code&gt;-prediction を使う。平たく言えば、音を何らかの中間表現に圧縮してから生成するのではなく、音声波形そのものをモデルが扱いやすい patch に切り、振幅変換を行うことで、波形レベルで生成を学習する。&lt;/p&gt;
&lt;p&gt;ここが最も注目すべき点だ。エンドツーエンドの波形生成が安定して動くなら、エンコーダー/デコーダーがもたらす情報ボトルネックを減らせる可能性がある。&lt;/p&gt;
&lt;h2 id=&#34;対応する入力モード&#34;&gt;対応する入力モード
&lt;/h2&gt;&lt;p&gt;README と訓練ガイドを見ると、WavFlow は三つの入力モードを想定している。&lt;/p&gt;
&lt;p&gt;一つ目は VT2A、つまり video + text to audio だ。モデルに動画とテキスト説明を与え、画面と意味に同期した音声を生成させる。森、カエル、ドラム、スケートボードのような場面が例として挙げられている。&lt;/p&gt;
&lt;p&gt;二つ目は T2A、つまり text to audio だ。テキスト説明だけがあり、動画入力はない。訓練時には CLIP text feature を使い、推論時には CSV で &lt;code&gt;video_exist&lt;/code&gt; を &lt;code&gt;0&lt;/code&gt; にできる。&lt;/p&gt;
&lt;p&gt;三つ目は V2A、つまり video to audio だ。動画だけがあり、テキストはない。推論時には &lt;code&gt;text_exist&lt;/code&gt; を &lt;code&gt;0&lt;/code&gt; にでき、モデルは learned empty CLIP-text token を使う。&lt;/p&gt;
&lt;p&gt;この設計は実用的だ。実データでは、すべてのサンプルに完全な動画、テキスト、音声アノテーションが揃っているとは限らない。WavFlow は &lt;code&gt;video_exist&lt;/code&gt; と &lt;code&gt;text_exist&lt;/code&gt; のようなフィールドで欠損モダリティを明示し、訓練と推論の両方で異なる組み合わせを扱えるようにしている。&lt;/p&gt;
&lt;h2 id=&#34;評価と位置づけ&#34;&gt;評価と位置づけ
&lt;/h2&gt;&lt;p&gt;README では、WavFlow が VGGSound の VT2A タスクと AudioCaps の T2A タスクで評価され、既存の latent-based 手法に匹敵する性能を示したと説明されている。&lt;/p&gt;
&lt;p&gt;これは、すでに既存モデルを全面的に上回ったという意味ではない。端到端の raw waveform generation が、従来の latent フレームワークに必ずしも劣らないことを示している。少なくとも acoustic richness、fidelity、synchronization といった指標では、同じ水準に到達できる。&lt;/p&gt;
&lt;p&gt;プロジェクトページには forest、frog、drum、skateboard などの demo もあり、24 個以上のサンプルと並列 benchmark 比較が掲載されている。音声生成モデルでは demo が重要だ。文字指標だけでは、音の質感、空間感、同期感を十分に説明できないからだ。&lt;/p&gt;
&lt;h2 id=&#34;インストール&#34;&gt;インストール
&lt;/h2&gt;&lt;p&gt;公式は自動インストールスクリプトを用意している。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/facebookresearch/WavFlow.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; WavFlow
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/setup.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;conda activate wavflow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;scripts/setup.sh&lt;/code&gt; は &lt;code&gt;wavflow&lt;/code&gt; という conda 環境を作成し、必要な依存関係をインストールする。&lt;/p&gt;
&lt;p&gt;手動で入れる場合は README の通り。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;conda create -n wavflow &lt;span class=&#34;nv&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;3.10 -y
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;conda activate wavflow
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e . --no-deps
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;conda install -n wavflow -c conda-forge &lt;span class=&#34;s2&#34;&gt;&amp;#34;ffmpeg&amp;lt;7&amp;#34;&lt;/span&gt; -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ここでの &lt;code&gt;ffmpeg&amp;lt;7&lt;/code&gt; は主に torio の動画デコード用だ。README では、CLIP、Synchformer、empty-string CFG embedding などの外部重みは初回実行時に自動でダウンロードまたは計算され、&lt;code&gt;~/.cache/wavflow/&lt;/code&gt; にキャッシュされるとも説明されている。&lt;/p&gt;
&lt;h2 id=&#34;推論の実行&#34;&gt;推論の実行
&lt;/h2&gt;&lt;p&gt;公式はまだ production-trained checkpoints を公開していないため、以下の推論入口は、すでに訓練済み checkpoint を持っている場合にのみ使える。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/launch/predict.sh &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;--gpu N&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;--config PATH&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;デフォルト設定ファイルは次の通り。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wavflow/configs/infer.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;入力 CSV は &lt;code&gt;data.csv_path&lt;/code&gt; で指定し、動画、テキスト、またはその両方を受け付ける。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csv&#34; data-lang=&#34;csv&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;video_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;caption&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;video_exist&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;text_exist&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;/abs/path/sample1.mp4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;a whistling rocket explodes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;/abs/path/sample2.mp4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;birds chirping in a forest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;a whistling rocket explodes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;/abs/path/sample3.mp4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;video_exist=0&lt;/code&gt; は動画をデコードせず、learned empty CLIP/Sync tokens を使うことを意味する。&lt;code&gt;text_exist=0&lt;/code&gt; は caption を無視し、learned empty CLIP-text token を使うことを意味する。カンマを含む caption は引用符で囲む必要がある。&lt;/p&gt;
&lt;p&gt;よく使う起動パラメータは次の通り。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--gpu N
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--config PATH
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WAVFLOW_ENV
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重要な設定項目には、&lt;code&gt;model.name&lt;/code&gt;、&lt;code&gt;model.ckpt_path&lt;/code&gt;、&lt;code&gt;model.use_ema&lt;/code&gt;、&lt;code&gt;inference.duration_sec&lt;/code&gt;、&lt;code&gt;target_sample_rate&lt;/code&gt;、&lt;code&gt;inference.cfg&lt;/code&gt;、&lt;code&gt;num_steps&lt;/code&gt;、&lt;code&gt;noise_scale&lt;/code&gt;、&lt;code&gt;noise_shift&lt;/code&gt;、&lt;code&gt;prediction_type&lt;/code&gt;、&lt;code&gt;seed&lt;/code&gt;、出力ディレクトリがある。&lt;/p&gt;
&lt;h2 id=&#34;ema-の落とし穴&#34;&gt;EMA の落とし穴
&lt;/h2&gt;&lt;p&gt;README は &lt;code&gt;model.use_ema&lt;/code&gt; について特に注意している。&lt;/p&gt;
&lt;p&gt;WavFlow の checkpoint には &lt;code&gt;model_ema1&lt;/code&gt; が含まれることがあり、これは &lt;code&gt;ema_decay = 0.9999&lt;/code&gt; で更新される。訓練が数百または数千 step しか進んでいない場合、EMA にはまだランダム初期化値が多く残り、推論時にノイズを出すことがある。&lt;/p&gt;
&lt;p&gt;そのため、短い訓練、少数サンプルへの過学習、または smoke test を行う場合は、次の設定を検討したい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model.use_ema&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または十分に訓練した後に保存された &lt;code&gt;ema_epoch_*.pth&lt;/code&gt; を使う。この細部は実用的だ。知らないと、モデルが壊れていると誤解しやすいが、実際には EMA がまだ安定していないだけかもしれない。&lt;/p&gt;
&lt;h2 id=&#34;訓練フロー&#34;&gt;訓練フロー
&lt;/h2&gt;&lt;p&gt;公式の &lt;code&gt;TRAINING.md&lt;/code&gt; は訓練を二段階に分けている。&lt;/p&gt;
&lt;p&gt;第一段階は特徴抽出だ。&lt;/p&gt;
&lt;p&gt;T2A は CLIP text feature のみを抽出する。VT2A は CLIP frame feature、Synchformer feature、CLIP text feature を抽出する。例の CSV はおおよそ次の形になる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csv&#34; data-lang=&#34;csv&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;audio_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;video_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;caption&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;sample1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/abs/or/relative/wav/sample1.wav&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/abs/or/relative/video/sample1.mp4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;a whistling rocket explodes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;動画の長さは &lt;code&gt;extraction.duration_sec&lt;/code&gt; 以上である必要があり、デフォルトは 8 秒だ。それより短いクリップはスキップされる。特徴抽出は次のように実行できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/launch/extract_t2a.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/launch/extract_vt2a.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;より多くの GPU やカスタム設定を使う場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;NPROC_PER_NODE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt; bash scripts/launch/extract_vt2a.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CONFIG_PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;path/to/your_extract.yaml bash scripts/launch/extract_t2a.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;第二段階は訓練だ。&lt;/p&gt;
&lt;p&gt;単一ノードのマルチ GPU では次を使う。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/launch/train_single_node.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;マルチノード訓練では &lt;code&gt;NNODES&lt;/code&gt;、&lt;code&gt;NODE_RANK&lt;/code&gt;、&lt;code&gt;MASTER_ADDR&lt;/code&gt;、&lt;code&gt;MASTER_PORT&lt;/code&gt;、&lt;code&gt;NPROC_PER_NODE&lt;/code&gt; を設定する必要がある。訓練出力には &lt;code&gt;checkpoint_latest.pth&lt;/code&gt;、&lt;code&gt;checkpoint_epoch_*.pth&lt;/code&gt;、&lt;code&gt;ema_epoch_*.pth&lt;/code&gt;、生成された音声サンプル、&lt;code&gt;training.log&lt;/code&gt; が含まれる。&lt;/p&gt;
&lt;p&gt;訓練は自動 resume に対応する。実験ディレクトリに &lt;code&gt;checkpoint_latest.pth&lt;/code&gt; があれば、そこから続行される。&lt;/p&gt;
&lt;h2 id=&#34;誰が注目すべきか&#34;&gt;誰が注目すべきか
&lt;/h2&gt;&lt;p&gt;WavFlow は、完成済みの効果音ツールを探している一般ユーザーよりも、研究者やエンジニアリングチーム向けだ。&lt;/p&gt;
&lt;p&gt;特に次のような人に向いている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;video-to-audio、text-to-audio、multimodal audio generation を研究している人。&lt;/li&gt;
&lt;li&gt;raw waveform generation と latent-based audio generation を比較したいチーム。&lt;/li&gt;
&lt;li&gt;自前の音声生成モデルを訓練する必要があり、データと GPU リソースを用意できるユーザー。&lt;/li&gt;
&lt;li&gt;動画画面と音の同期を強く求める応用チーム。&lt;/li&gt;
&lt;li&gt;flow matching が原始音声波形上で成立するかを調べたい人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;単に Web ツールで prompt を入力して効果音をすぐ作りたいなら、現時点の WavFlow は最も手軽な選択ではない。公開 production checkpoint はまだなく、デプロイ経路も研究コードに近い。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、「ダウンロードしてすぐ使える」音声生成モデルとして扱うべきではない。公式は現時点で production-trained checkpoints を公開していないため、実際に推論するには自分で訓練するか、今後のオープンデータ checkpoint を待つ必要がある。&lt;/p&gt;
&lt;p&gt;第二に、ライセンスは寛容な商用利用を前提にしたものではない。README によると、WavFlow の大部分は CC-BY-NC 4.0 で、vendored components の一部は MIT、Apache 2.0、CC BY-NC 4.0、Stability AI Community License など元のライセンスを維持している。商用利用前には &lt;code&gt;LICENSE&lt;/code&gt; と &lt;code&gt;NOTICE.txt&lt;/code&gt; を慎重に読む必要がある。&lt;/p&gt;
&lt;p&gt;第三に、訓練データが非常に重要だ。WavFlow の強みは、音声、動画、テキストが揃った整合データに依存している。データ品質が低い、caption が不正確、音と映像が同期していない、といった場合、安定した音声生成を学習するのは難しい。&lt;/p&gt;
&lt;p&gt;第四に、raw waveform generation は latent bottleneck を減らせる一方で、訓練と推論コストを上げる可能性もある。実際のプロジェクトでは、音質、速度、VRAM、サンプルレート、出力時間の間で調整が必要になる。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;WavFlow の価値は、一つの明確な問いを出している点にある。マルチモーダル音声生成は、必ず最初に latent 空間へ圧縮しなければならないのか。&lt;/p&gt;
&lt;p&gt;WavFlow は waveform patchifying、amplitude lifting、flow matching によって、raw waveform space で同期した高忠実度音声を直接生成しようとする。評価結果は、この経路が少なくとも成熟した latent-based 手法と同じ水準に立てる可能性を示している。&lt;/p&gt;
&lt;p&gt;ただし現段階では、これは開箱即用の製品モデルというより、研究と訓練のためのフレームワークだ。公開 production checkpoint がないこと、ライセンスが非商用寄りであること、訓練に音声・動画・テキストの整合データが必要なことから、研究、再現、追加訓練に向いている。次世代の video-to-audio や text-to-audio モデルに関心があるなら、WavFlow はじっくり見る価値がある。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;facebookresearch/WavFlow：&lt;a class=&#34;link&#34; href=&#34;https://github.com/facebookresearch/WavFlow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/facebookresearch/WavFlow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;WavFlow Project Page：&lt;a class=&#34;link&#34; href=&#34;https://facebookresearch.github.io/WavFlow/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://facebookresearch.github.io/WavFlow/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;WavFlow arXiv：&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2605.18749&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://arxiv.org/abs/2605.18749&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;WavFlow Training Guide：&lt;a class=&#34;link&#34; href=&#34;https://github.com/facebookresearch/WavFlow/blob/main/TRAINING.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/facebookresearch/WavFlow/blob/main/TRAINING.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
