Smart Turn Multimodalの紹介
2026年1月14日
いつ話すべきかを判断することは、人間が毎日無意識に行っていることです。従来、会話AIは電話に焦点を当てており、 入力は音声に限られていました。しかし今では、カメラや画面を備えたデバイスと会話できるようになり、 複数のモダリティを活用できるようになりました。音声AIは、 Pipecatや LiveKit などのオープンソースフレームワークの恩恵を受けてきました。 彼らの取り組みに触発され、私たちはPipecatの Smart Turn の音声・視覚対応フォークをリリースします。これにより、リアルタイムの発話終了検出に視覚的手がかりを取り入れることができます。 本リリースは実験的なものです。粗削りな部分や継続的な変更が予想されます。
課題:沈黙は曖昧である
純粋な音声ベースのターン検出は、韻律、文法、沈黙に依存して、ユーザーが話し終えたかどうかを判断します。 しかし、優れた音声モデルでも曖昧な間には苦労します。500ミリ秒の沈黙は、ユーザーが考えているのか、 返答を待っているのかを示している可能性があります。視覚的なコンテキストがなければ、システムは保守的な タイムアウト閾値(多くの場合1000ミリ秒以上)を使用せざるを得ず、会話の流暢さを損ないます。
視覚的手がかりは異なる働きをします。人は完全な沈黙の中でも、ボディランゲージ(開いた口、視線をそらす、 手を挙げるなど)で発言権を保持できます。これがSmart Turn Multimodalが埋めようとしているギャップです。
マルチモーダルエンドポインティングが有効だったケースの例
後期融合アーキテクチャ
Smart Turn Multimodalは後期融合アプローチを使用します。音声と映像は別々の エンコーダーストリームで処理され、最終的なボトルネック層でのみ統合されます。これにより、 事前学習済みのWhisperエンコーダーを維持しながら、映像エンコーダーが最終的な決定を調整できます。
2つのブランチは以下の通りです:
- 音声ブランチ: Smart Turn v3.2のWhisper Tinyエンコーダー、8秒の音声を処理
- 映像ブランチ: Kinetics-400で事前学習されたR3D-18(3D ResNet)エンコーダー、直近32フレーム(約1秒)を処理
映像ブランチは音声予測を調整することを学習します。Whisperが「曖昧(0.5)」と判断しても、 映像で口が閉じていれば、融合出力は「完了(0.9)」に向かいます。カメラがオフまたは利用できない場合、 モデルはゼロパディングによって音声のみの推論にグレースフルにフォールバックします。コード変更は不要です。
(8 seconds)"] -->|Log-Mel Spec| B("Whisper Encoder") C["Video Frames
(Last 32 frames)"] -->|"Resize 112x112"| D("Video Encoder
R3D-18") end subgraph FeatureExtraction ["Feature Extraction"] B -->|Context Pooling| E["Audio Embedding
384-dim"] D -->|Linear Projection| F["Video Embedding
256-dim"] end subgraph LateFusion ["Late Fusion"] E --> G{"Concat"} F --> G G -->|"Fused Vector
640-dim"| H["Fusion Layer
(Linear + GELU)"] end subgraph Output H -->|Project back to 384| I["Classifier"] I -->|Sigmoid| J(("Turn End
Probability")) end style B fill:#e1f5fe,stroke:#01579b,stroke-width:2px style D fill:#fff3e0,stroke:#ff6f00,stroke-width:2px style H fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px style J fill:#fce4ec,stroke:#880e4f,stroke-width:2px
Smart Turn Multimodalアーキテクチャ:音声(Whisper)と映像(R3D-18)ブランチが融合層で収束
コンポーネントの詳細
音声エンコーダー(Whisper Tiny)
音声ブランチはWhisper Tinyのエンコーダー部分を使用します。8秒の音声を80チャンネルの ログメルスペクトログラム(80メルバンド、約400タイムステップ)に変換します。バックボーンは 68万時間の音声で事前学習されたTransformer Encoderです。平均プーリングの代わりに、 Smart Turn v3.2のクロスアテンションプーリングを使用して、発話を表す単一の384次元コンテキストベクトルを抽出します。
映像エンコーダー(R3D-18)
映像ブランチはKinetics-400データセットで事前学習された3D ResNet-18(R3D-18)を使用します。 2D CNNとは異なり、3D畳み込みは時空間特徴を捉えるため、モデルは「静止した開いた口」と 「閉じていく口」を区別できます。
- 入力: 112×112解像度の32フレーム(約1秒の映像)
- 出力: 512次元の特徴量を融合のために256次元に投影
(Batch, 3, 32, 112, 112)"] -->|"3D Conv"| L1["Layer 1
Spatiotemporal Features"] L1 -->|"ResNet Blocks"| L3["R3D-18 Backbone"] L3 -->|"AvgPool3D"| L4["Raw Features
(Batch, 512)"] L4 -->|"Linear Projection"| Output["Video Embedding
(Batch, 256)"] style Input fill:#fff3e0,stroke:#ff6f00,stroke-width:2px style Output fill:#fff3e0,stroke:#ff6f00,stroke-width:2px
R3D-18映像エンコーダー:時空間特徴(時間経過に伴う動き)を処理
融合層
連結ベースの後期融合を使用します。音声エンコーダーは384次元の埋め込みを生成し、 映像エンコーダーは256次元の埋め込みを生成します。これらは640次元のベクトルに連結され、 線形層、レイヤー正規化、GELU活性化を通じて384次元に投影されます。 結果は分類器に送られ、シグモイドを介してターン終了確率を出力します。
映像が欠落している場合(カメラオフ)、映像埋め込みはゼロテンソルに置き換えられます。 この「モダリティドロップアウト」により、モデルはコード変更なしでカメラ障害に対して堅牢になります。
e_a: 384-dim"] B["Video Embedding
e_v: 256-dim"] M{"Missing Video?"} M -- Yes --> Z["Zero Tensor
0: 256-dim"] M -- No --> B A --> C{"Concatenate"} Z -.-> C B --> C C -->|"Combined: 640-dim"| D["Linear Layer
640 -> 384"] D --> E["Layer Norm"] E --> F["GELU Activation"] F -->|"h_fused: 384-dim"| G["To Classifier"] style C fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px style G fill:#f3e5f5,stroke:#4a148c,stroke-width:2px style Z stroke-dasharray: 5 5
融合メカニズム:連結により映像特徴が音声の確信度を調整
学習
音声モデルの学習済み特徴を失わないよう、2段階の学習プロセスを使用します:
- ステージ1(アライメント): 音声エンコーダーと分類器を凍結。映像エンコーダーと 融合層のみ学習可能。映像ブランチは音声予測を正しい方向に調整する埋め込みを出力することを学習。
- ステージ2(ジョイントファインチューニング): ネットワーク全体を解凍し、 低い学習率で学習。これにより音声ブランチはコア機能を失うことなく、視覚的コンテキストにわずかに適応。
学習データ
学習にはMetaのCasual Conversations データセットのサブセットを使用しています。データは非会話的なエントリ(例:動いたり感情を表現するよう 指示された動画)を除去するためにクリーニングされています。
使用方法
マルチモーダルモデルは推論時に音声と映像の両方のテンソルを必要とします。映像が利用できない場合は
Noneを渡すと、モデルは自動的にゼロテンソルを使用し、内部的に音声のみの動作にフォールバックします。
モデルの実行または学習については、 Smart Turn Multimodal GitHubリポジトリ をご覧ください。
現在の制限事項
これは実験的リリースです。既知の制限事項:
- データセットの多様性: 現在、主に台本のない独白の1つのデータセットで学習。 多様な会話スタイルへの汎化はまだ検証中。
- VADトリガー: モデルはVADが検出した沈黙によって起動。実際には、人間は 沈黙が発生する前にターンの終わりを予測することが多い——これは今後の課題。
- 後期融合: 融合はボトルネックでのみ発生。これにより音声バックボーンは そのまま維持されるが、早期のクロスモーダルインタラクションは制限される。
謝辞
以下の方々に感謝いたします:
- オープンソース音声AIエコシステムをリードするPipecat/Daily
- Casual Conversationsデータセットを提供するMeta