# 話者ビュー

> マルチカメラの編集を、話者を画面に並べてレンダリングします。横並び、縦積み、グリッド、ピクチャーインピクチャーで表示し、話している人を強調します。

Source: https://nodaro.ai/ja/docs/nodes/video/speaker-view

**話者ビュー**ノードは、話者を画面に映した形で編集をレンダリングします。2 人のホストを横並びにしたり、縦型のクリップで話している人を追ったり、パネルディスカッションをグリッドで見せたり、ピクチャーインピクチャーを使ったりでき、各話者に合わせた切り抜きも設定できます。話者が変わるたびに切り替え、話している人を強調します。音声は編集のものをそのまま使います。

- Found in: Video › Cut & Assemble
- API type: `speaker-view`

話者ビューの料金は、レンダリングした出力の分数に応じて決まります。単価は、**品質**と、レンダリングで同時に画面に映る話者の数によって変わります。[クレジット](#credits)を参照してください。

話者ビューは Nodaro Cloud で動作します。セルフホスティング環境では、[Nodaro Cloud に接続](https://nodaro.ai/docs/self-hosting/cloud-connect)すると、ノードは各実行をクラウドに中継します。セルフホスティング環境は各カメラのファイルを Nodaro Cloud に送るため、500 MB を超える非公開のカメラファイルは実行前に拒否されます。公開 URL か、より小さいファイルを使ってください。

## 使いどころ
- ポッドキャストの 2 人のホストを横並びで見せ、話している人を強調する。
- 話している人を追う縦型のクリップを、各人に合わせた切り抜きで作る。
- 最大 6 人のパネルディスカッションをグリッドで見せる。
- ピクチャーインピクチャーで、1 人を大きく、もう 1 人を小窓で見せる。

## クイックスタート
話者ビューが決めるのは話者を**どう**見せるかで、**誰**を映すかは決めません。各カットのカメラは[**カメラ切り替え**](https://nodaro.ai/docs/nodes/video/camera-switch)が選び、話者ビューはそのカメラを配置します。一般的な流れは、**音声同期**、話者ラベル付きの**文字起こし**、**編集プラン**、**カメラ切り替え**、**話者ビュー**の順です。

### ノードを追加する
キャンバス上で Tab を押し、**動画 › カットと結合 › 話者ビュー**を選びます。

### 編集を接続する
カメラ切り替えの**カメラ切り替え済みの編集（EDL）**出力を **EDL** 入力に接続します。字幕を付ける場合は、カメラ切り替えの**文字起こし（名前付き）**出力を**文字起こし**入力に接続します。

### 先にアスペクト比を選ぶ
**アスペクト比**を選びます。表示されるレイアウトは、アスペクト比で決まります。

### レイアウト、切り替え、強調を選ぶ
**レイアウト**、**切り替え**、**強調**を選びます。各カメラを話者に合わせて切り抜くには、**フレーミングを編集…**をクリックします。

Workflow: 編集プランが編集を書き、カメラ切り替えが各カットのカメラを選び、話者ビューが話者を配置し、字幕を追加が結果に字幕を付けます。

- 編集プラン → カメラ切り替え (EDL)
- カメラ切り替え → 話者ビュー (EDL)
- 話者ビュー → 字幕を追加 (動画)

## 入力
| 入力 | 必須 | 接続するもの |
| --- | --- | --- |
| **EDL** | はい | 収録の時間軸にある 1 つの編集。[**編集プラン**](https://nodaro.ai/docs/nodes/video/edit-plan)か[**カメラ切り替え**](https://nodaro.ai/docs/nodes/video/camera-switch)の出力です。クリップのセットでは、キャンバス上でクリップごとに話者ビューが 1 回実行されます。メディアは、編集の各ソースの URL から取得されます。 |
| **文字起こし** | 編集が話者を指定していない場合 | 話者ラベル付きの単語単位の文字起こし。話者ビューは各話者の発言で編集を分割し、話者が指定されたセグメントがない場合はラベルを使います。 |
| **顔のトラック** | いいえ | [**話者フレーム**](https://nodaro.ai/docs/nodes/video/speaker-frames)の**顔のトラック**出力。ここに接続できるのはそのノードだけです。各話者の切り抜きが、その顔を追うようになります。[顔トラッキング](#face-tracking)を参照してください。 |

**EDL** に接続したノードがまだ実行されていない場合、設定パネルにそのことが表示され、**ここまで実行**が提示されます。これは話者ビューより前のノードを実行し、話者ビュー自体は実行しません。

## 出力
| 出力 | 内容 |
| --- | --- |
| **動画** | レンダリングされた編集。 |
| **EDL** | 描画したとおりの編集：話者の発言で分割され、レイアウト、切り替え、強調が書き込まれています。顔のトラックがある場合、顔を追った各枠には、カメラ、トラック、動きが記されます。これは EDL で文字起こしではないため、字幕を追加の**文字起こし**入力には使えません。 |
| **文字起こし** | 接続した文字起こしを、描画した編集に合わせて対応付け直したもの。削除された部分の単語は除かれ、残りは動画で再生される位置に移ります。[**字幕を追加**](https://nodaro.ai/docs/nodes/video/add-captions)の**文字起こし**入力に接続します。文字起こしを接続していない場合は空です。 |

各テイクは、それぞれの EDL と文字起こしを保持します。結果で古いテイクを選ぶと、そのテイクの EDL と文字起こしに戻ります。

## 設定
| 設定 | 初期値 | 内容 |
| --- | --- | --- |
| **アスペクト比** | 編集のもの、なければ 16:9 | 16:9、9:16、1:1、4:5。最終版は 1920×1080、1080×1920、1080×1080、1080×1350 です。プレビューは短い辺が 720 ピクセルです。 |
| **品質** | **最終版 — 確認ステップなし** | または**先にプレビュー — 確認してから最終レンダリング**。最終版を作る前に確認するための、非公開の 720p のレンダリングです。 |
| **レイアウト** | **自動** | **自動**、**シングル**、**横並び**、**縦積み**、**グリッド**、**ピクチャーインピクチャー**。**自動**はカメラ切り替えのレイアウトの提案に従い、なければ**シングル**になります。 |
| **切り替え** | **カット** | 話者が変わるときの動き：**カット**、**パン**、**ズーム**、またはトランジションの一覧から選ぶ**クロスフェード**。カメラが 1 台の場合、初期値は**パン**です。 |
| **切り替えの長さ（ms）** | 600 | **パン**または**ズーム**の長さ。0〜5,000 ms、50 ms 単位。 |
| **強調** | **拡大** | **拡大**、**枠**、**減光**を単独または組み合わせて使います。すべてオフにすると強調なしになります。 |
| **強調のイーズ（ms）** | 300 | 0〜5,000 ms、50 ms 単位。 |
| **枠の色** | 白 | **枠**の強調の色。**詳細設定**にあります。 |
| **フレーミング** | フルフレーム | 話者ごとの各カメラの切り抜き。**フレーミングを編集…**で設定します。パネルには、設定された切り抜きの数が表示されます。 |
| **話者ごとにカメラを分割** | オフ | **フレーミング**にあります。フレーミングが保存されていない場合、1 台のカメラを共有する話者に、それぞれデフォルトの 3 分の 1 の枠が割り当てられます。これは、**フレーミングを編集…**が最初に表示するボックスと同じです。[フレーミング](#framing)を参照してください。 |
| **モーション** | 顔のトラックを接続すると**追従** | **顔トラッキング**にあります。**追従**は、切り抜きを顔に合わせて動かします。**固定**は、各セグメントを顔をもとに 1 回だけフレーミングします。**顔のトラック**に何か接続するまで、この設定はグレーで表示されます。 |

設定パネルは、アスペクト比や話者の数で使えない選択肢をグレーで表示し、ポインターを合わせるかキーボードのフォーカスを移すと理由を示します。理由はタッチ画面向けに、グループの下にも一覧表示されます。

### どの選択肢がどこで使えるか
| レイアウト | 話者が変わるとき | 切り替え | 強調 |
| --- | --- | --- | --- |
| **シングル** | 1 つの枠が新しい話者に合わせて切り抜きを変えます。 | **カット**、1 台のカメラの 2 つの切り抜き間の**パン**、**ズーム**、**クロスフェード** | 使いません。シングルは 1 人の話者だけを表示するためです。 |
| **ピクチャーインピクチャー** | メインの画面と小窓が入れ替わります。 | **カット**、**ズーム**、**クロスフェード**、両方が 1 台のカメラにある場合は**パン** | **枠**と**減光**。入れ替わり自体が拡大の役割を果たします。 |
| **横並び**、**縦積み**、**グリッド** | 枠はそのままで、話している人の枠に印が付きます。 | レイアウト自体が変わる箇所だけ：**カット**または**クロスフェード** | **拡大**、**枠**、**減光**とその組み合わせ |

- **横並び**は 16:9 と 1:1、**縦積み**は 9:16、4:5、1:1 で描画されます。**グリッド**、**シングル**、**ピクチャーインピクチャー**はすべてのアスペクト比で描画されます。
- **横並び**、**縦積み**、**ピクチャーインピクチャー**はちょうど 2 人の話者を、**グリッド**は 2〜6 人を扱います。枠には、最初に登場した順に話者が入ります。
- アスペクト比や話者の数で使えないレイアウトは、対になるレイアウト（横並びと縦積み）でレンダリングされます。それも使えない場合は、話者の数が合えばグリッド、合わなければシングルになります。
- **パン**は 1 台のカメラの中で動きます。別のカメラの話者に変わるときはカットになります。**切り替え**の選択肢の下に、それぞれの切り替えが使われる話者の変化の数がパネルに表示されます。
- **クロスフェード**は、2 人の話者の間で収録の一部がカットされ、編集の時間が飛ぶ箇所でだけ使われます。続いている発言の途中には使われません。

## フレーミング
**フレーミングを編集…**をクリックすると、フレーミングエディターがウィンドウ全体に開きます。編集のカメラと話者が必要なため、先に編集プランとカメラ切り替えを実行してください。文字起こしにも編集プランにも話者ラベルがなく、まだどのカメラにもフレーミングする話者がいない場合、エディターは何も描けないフレームを表示する代わりに、そのことを伝えます。話者ビューが誰が話しているかを把握できるように、文字起こしまたは編集プランを接続してください。それまでは、**三分割に戻す**と**フレーミングを保存**はオフのままです。閲覧のみで共有されたワークフローでは、エディターは開きません。

- **カメラと話者。** エディターには編集の各カメラと、その下にカメラが映す話者が一覧表示されます。1 人だけを映すカメラ（クローズアップなど）は、**ボックスを描く**をクリックするまでフルフレームで表示されます。複数の話者を映すカメラ（ワイドショットなど）は、話者ごとに 1 つのボックスから始まります。**三分割に戻す**でそのボックスに戻せます。
- **フレーム。** ボックスの下でカメラ自体の動画が再生され、編集のマスター時間のスクラバーが付きます。**（話者名）へジャンプ**で、そのカメラでその話者が 3 秒を超えて話す最初の場面に移動します。
- **切り抜き。** ボックスは自由な長方形です。レンダラーはボックスの中心を基準に、レイアウトの枠の形に合わせて切り抜くため、1 つのボックスですべてのレイアウトとアスペクト比に対応できます。**表示形式**でレイアウトを選ぶと、その切り抜きが点線の長方形で表示されます。ラベルには切り抜きのサイズと拡大率が表示され、画質が落ち始める 1.5 倍を超えると黄色になります。
- **キー。** 矢印キーでボックスをカメラの 1 ピクセルずつ、Shift を押すと 10 ピクセルずつ動かします。Tab でボックス間を移動し、F で選んだ話者をフルフレームで表示します。**入れ替え**で、1 台のカメラの 2 人の話者のボックスを入れ替えます。
- **保存。** **フレーミングを保存**で、表示されているすべてのボックスを保存します。保存するまで何も記録されず、保存していない変更がある状態で閉じると確認されます。フレーミングを一度も保存していないノードは、すべてのカメラをフルフレームでレンダリングします。
- **顔。** 顔のトラックを接続している場合、エディターは話者フレームが追跡した顔を点線のボックスで描き、トラックとその話者のラベルを付けます。[顔トラッキング](#face-tracking)を参照してください。

**話者ごとにカメラを分割**を使うと、何も描かずにワイドショットをフレーミングできます。スイッチをオンにし、ノードにフレーミングが保存されていない場合、1 台のカメラに映る各話者に、デフォルトの 3 分の 1 の枠が割り当てられます。枠は高さいっぱいで、出力と同じ形になり、フレームのうちその話者の部分を中心にします。話者には、最初に登場した順に 3 分の 1 の枠が割り当てられます。

- **適用される条件。** 1 台のカメラで、画面に 2〜6 人の話者が映る 1 つの編集で、出力が 16:9 以外の場合です。話者が 1 人、7 人以上、複数のカメラ、複数のクリップにまたがる実行は、フルフレームのままです。16:9 の出力もフルフレームのままです。各ボックスがフレーム全体になるためです。
- **優先されるもの。** ボックスは 16:9 のカメラを前提にしています。保存したフレーミングが常に優先されます。顔のトラックを接続している場合、トラックが名前を付けた話者はその顔を追い、デフォルトの 3 分の 1 の枠はほかの話者だけをフレーミングします。

## 顔トラッキング
顔トラッキングを使うと、各話者の切り抜きが、固定のボックスではなくその顔を追います。[**話者フレーム**](https://nodaro.ai/docs/nodes/video/speaker-frames)の**顔のトラック**出力を、**顔のトラック**入力に接続します。または、設定パネルで**顔トラッキングを追加**をクリックします。話者ビューと同じ編集と同じ文字起こしを読み込む話者フレームノードが追加され、そのトラックが接続されます。この操作は 1 回で元に戻せます。

話者フレームには現在クレジットの価格が設定されていないため、まだ実行できません。顔のトラックを接続した話者ビューは、話者フレームに結果ができるまで拒否されます。

- **同じ文字起こし。** 話者フレームは、話者ビューと同じ文字起こし、つまりカメラ切り替えの**文字起こし（名前付き）**出力を読み込む必要があります。そうすると、トラックに、編集で使われている話者名が付きます。
- **顔を追うもの。** カメラに話者を映す各枠は、その話者の顔のトラックを追います。トラックに 2 秒を超える途切れがある箇所では、クリップのほかの場面での顔の位置から、それもなければ**フレーミングを編集…**の切り抜きから、切り抜きの位置を決めます。話者フレームでチェックを外したカメラは、常にあなたのフレーミングを使います。
- **モーション。** **追従**は、切り抜きを顔に合わせて滑らかに動かし、顔が中央付近にある間は動かしません。**固定**は、各セグメントを顔をもとに 1 回だけフレーミングします。どちらでも、話者の発言の間に切り抜きのサイズは変わりません。
- **トラックが誰か。** トラックは、話者フレームが付けた話者名を、カメラ切り替えでの名前の変更を通して受け取ります。次に、話者フレームノードでの修正が適用されます。まだ名前のないトラックは、顔の中心がちょうど 1 つのボックスの中にある場合、**フレーミングを編集…**で描いたそのボックスの名前を受け取ります。エディターが自動で描いたボックスが、トラックに名前を付けることはありません。
- **トラックを修正する。** **フレーミングを編集…**で、顔のラベルをクリックするか、フレームの下の一覧を使います。話者、**誰でもない**、または修正を外す**検出どおり**を選びます。**フレーミングを保存**で、修正が話者フレームノードに保存されます。何も再実行されません。
- **カバー率。** カメラ上の時間のうち、トラックでカバーされている割合が 60% 未満の話者は、バッジに示されます。その残りの時間では、レンダリングにあなたのフレーミングが使われます。
- **最終レンダリングとプレビューを更新**は、保存されたトラックを使います。話者フレームを再実行することはないため、プレビューと最終版は同じトラックを使います。

## クレジット
話者ビューの料金は、レンダリングした出力の分数に応じて決まります。分単位に切り上げられ、最低 1 分です。単価は、レンダリングの**品質**とその区分によって変わります。プレビューは最終版より単価が低くなります。ノードは、実行の前に正確な料金を表示します。

| 区分 | 適用される場合 |
| --- | --- |
| 低い単価 | すべてのセグメントで画面に映る画像が 2 つまでで、ズームがない場合。たとえば、2 人の話者での**シングル**、**横並び**、**縦積み**、**ピクチャーインピクチャー**や、2 人の**グリッド**です。 |
| 高い単価 | いずれかのセグメントで画面に映る画像が 3〜6 つの場合。たとえば、3 人以上の**グリッド**です。ズームがある場合もこの単価になります。1 つの画像をフレーミングし直す**ズーム**の切り替えや、編集自体に含まれるズームです。 |

- **レンダリング全体で 1 つの区分。** 3 人の話者が画面に映るセグメントが 1 つでもあれば、レンダリング全体が高い単価になります。
- **区分は、描画したとおりのレイアウトで決まります。** 3 人以上の話者での**横並び**、**縦積み**、**ピクチャーインピクチャー**は**グリッド**として描画されるため、高い単価になります。**横並び**や**グリッド**での**ズーム**の切り替えは何も描画せず、料金も増えません。
- **パン、カット、クロスフェード、強調**は、区分を変えません。
- **編集で確保し、レンダリングで請求します。** レンダリングの開始時に、編集の長さからクレジットが確保されます。クロスフェードによって、完成したカットが短くなる場合があります。請求されるのはレンダリングしたカットの分数で、確保した額を超えることはなく、残りは解放されます。
- **プレビューと最終版は別々のレンダリングです。** それぞれが独自の単価で請求されます。クリップのセットでは、各クリップがそのクリップの長さと区分で、個別にレンダリングされて請求されます。

実行の前に、ノード、**実行**ボタン、**最終レンダリング**ボタン、**プレビューを更新**ボタンに見積もりが表示されます。話者の数がまだわからない場合、低い単価で見積もられるのは、**ズーム**の切り替えのない**シングル**だけです。ほかのレイアウトはすべて高い単価で見積もられるため、見積もりが請求額より高くなることはあっても、低くなることはありません。

## ヒント
- マルチカメラの収録では、**先にカメラ切り替えを実行してください**。話者ビューはカメラを選ばず、話者を指定していないマルチカメラの編集は拒否します。
- **重なりに合わせる。** カメラ切り替えで**レイアウトの提案**をオンにし、話者ビューの**レイアウト**を**自動**にすると、2 人が同時に話すときに横並びのレイアウトで見せます。EDL 適用は、レイアウトの提案を含む編集を拒否します。
- **EDL 適用に戻す。** 設定パネルの **EDL 適用 に戻す**で、このノードをその場で EDL 適用ノードに置き換えます。この操作は 1 回で元に戻せます。EDL 適用側には、逆の操作の**話者ビュー に置き換える**があります。
- **先にアスペクト比を選ぶ。** 表示されるレイアウトは、アスペクト比で決まります。

## トラブルシューティング
| メッセージまたは問題 | 原因と対処 |
| --- | --- |
| 「編集プラン はまだ実行されていません。レイアウトとフレーミングには、その話者の情報が必要です。」 | EDL は接続されていますが、それを送るノードにまだ結果がありません。先にそのノードを実行してください。 |
| 文字起こしの話者が編集の話者と一致しない。 | カメラ切り替えは話者の名前を変えます。文字起こしノードの文字起こしではなく、カメラ切り替えの**文字起こし（名前付き）**出力を接続してください。 |
| 「この編集には複数のカメラがありますが、話者が指定されたセグメントがありません」 | 編集プランと話者ビューの間にカメラ切り替えを接続してください。 |
| 選んだレイアウトと違う形でレンダリングされる。 | アスペクト比か話者の数でそのレイアウトを使えないため、最も近いレイアウトでレンダリングされます。たとえば 9:16 では、横並びの代わりに縦積みになります。 |
| 「顔のトラックが接続されていますが、話者フレームにはまだ出力がありません。先に話者フレームを実行するか、接続を外して顔トラッキングなしでレンダリングしてください。」 | **顔のトラック**入力は接続されていますが、話者フレームに結果がありません。接続を外すと、あなたのフレーミングでレンダリングされます。 |
| 「顔のトラックが「Wide」をカバーしていません。この編集で話者フレームを再実行してください。」 | レンダリングが追うカメラを、話者フレームが一度もサンプリングしていません。この編集で話者フレームをもう一度実行してください。 |
| 編集が拒否される。 | 収録の時間軸にある 1 つの編集ではない、URL のないソースがある、切り抜きが小さすぎるかフレームの外にある、または出力が 180 分を超えています。 |

## API から
`POST /v1/speaker-view` は、`edl`（オブジェクトまたは JSON 文字列の EDL 1 つ）を受け取り、任意で `transcript`、`quality`、`targetAspect`、`layout`、`switch`、`emphasis`、`accentColor`、`speakerRegions`、`tracks`、`motion` を受け取ります。`layout` は `auto`、`single`、`side-by-side`、`stacked`、`grid`、`pip` のいずれかです。`switch.type` は `cut`、`pan`、`zoom`、`xfade:<transition>` のいずれか、`emphasis.style` は `scale`、`border`、`dim` を `+` でつないだもの、または `none` です。

`tracks` は話者フレームの**顔のトラック**出力で、`motion` は `static` または `glide` です。`motion` のデフォルトは `glide` で、`tracks` がない場合は無視されます。拒否されたリクエストには、`400` と `invalid_edl`、`unsupported_setting`、`too_long`、`invalid_tracks` のいずれかが返ります。レンダリングでは、[クレジット](#credits)のとおりに確保と請求が行われます。

完了したジョブの `output_data` には、`videoUrl`、`thumbnailUrl`、`json`（描画したとおりの EDL）、`transcript`（接続した文字起こしを、その EDL に合わせて対応付け直したもの）が含まれます。[単体のノードを実行する](https://nodaro.ai/docs/developers/api/nodes)と[ジョブ](https://nodaro.ai/docs/developers/api/jobs)を参照してください。

## よくある質問

### 話者ビューと EDL 適用の違いは何ですか？

EDL 適用は、カットごとに 1 台のカメラをフルフレームで表示します。話者ビューは、複数の話者を同時に横並び、縦積み、グリッド、ピクチャーインピクチャーで表示し、話している人を強調できます。

### 話者ビューの料金はどのように決まりますか？

話者ビューの料金は、レンダリングした出力の分数に応じて決まります。分単位に切り上げられ、最低 1 分です。単価は、品質と、同時に画面に映る話者の数によって変わります。プレビューは最終版より安く、ノードは実行の前に料金を表示します。

### 話者ビューは表示するカメラを選びますか？

いいえ。話者ビューが決めるのは話者の見せ方で、誰を映すかは決めません。各カットのカメラを選ぶのはカメラ切り替えです。マルチカメラの収録では、編集プランと話者ビューの間にカメラ切り替えを接続してください。

### 縦型の動画で使えるレイアウトはどれですか？

9:16 と 4:5 では、シングル、縦積み、グリッド、ピクチャーインピクチャーを使えます。横並びは 16:9 と 1:1 でのみ描画されます。アスペクト比に合わないレイアウトは、最も近いレイアウトでレンダリングされます。

### 話者ビューのレンダリングに字幕を付けられますか？

はい。「文字起こし」入力に文字起こしを接続します。「文字起こし」出力は、描画された編集に合わせて時間を対応付け直した文字起こしで、字幕を追加の「文字起こし」入力に接続できます。
