# スピーカーレイアウト

> ポッドキャストやインタビューの収録全体を、何もカットせずに 1 つのノードで話者ごとにフレーミングします。複数のカメラでは、各話者をその人のカメラで映します。

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

**スピーカーレイアウト**ノードは、収録全体を 1 回で話者ごとにフレーミングします。何もカットしないので、動画は収録と同じ長さになります。カメラが 1 台の場合は、各話者を順番にフレーミングします。1 つの会話を複数のカメラで撮った場合は、各話者をその人のカメラで映します。

内部では、手作業で接続できるのと同じ工程を実行します。話者ラベルと単語のタイミング付きの[**文字起こし**](https://nodaro.ai/docs/nodes/audio/transcribe)と、収録全体に対する[**話者ビュー**](https://nodaro.ai/docs/nodes/video/speaker-view)です。話者ビューは、画面上の各話者に枠を付け、話している人に切り替えます。各工程はそれぞれ独立したジョブとして実行されるので、長い収録、キャンセル、失敗は、手作業で組んだワークフローと同じように扱われます。

スピーカーレイアウトは話者ビューでレンダリングし、話者ビューは Nodaro Cloud で実行されます。セルフホスティング環境では、**連携 › nodaro.ai** から、または API キーで、[環境を Nodaro Cloud に接続](https://nodaro.ai/docs/self-hosting/cloud-connect)してください。接続がない場合、ノードは表示されず、実行は何かが始まる前に拒否されます。

## 使いどころ
- 2 人で話す動画ポッドキャスト全体を、話者ごとにフレーミングした縦型の動画にする。
- 何もカットせずに、各話者がその人のカメラに映るマルチカメラのインタビューを作る。
- パネルディスカッションの収録を、全員を枠に収めた正方形または `4:5` の動画にする。

収録のカット、たとえば無音やフィラーワードの削除もしたい場合は、フレーミングを選んだ[**エピソードを引き締める**](https://nodaro.ai/docs/nodes/video/tighten-episode)を使います。短いクリップには、[**クリップパック**](https://nodaro.ai/docs/nodes/video/clip-pack)を使います。

## クイックスタート
### ノードを追加する
キャンバス上で Tab を押し、**動画 › ポッドキャスト › スピーカーレイアウト**を選びます。

### 収録を接続する
動画を**録音**入力に接続します。たとえば[**動画アップロード**](https://nodaro.ai/docs/nodes/video/upload-video)ノードから接続します。収録は最長 3 時間までで、音声が入っている必要があります。

### 形とレイアウトを選ぶ
まず**形**を選び、次に**レイアウト**、**切り替え**、**強調**を選びます。デフォルトは `9:16`、**縦積み**、**カット**、**スケール**です。

### 実行する
ノードの**実行**をクリックします。ノードは、フレーミングした動画と、話者ビューが描いた編集を返します。

Workflow: スピーカーレイアウトは、2 人のポッドキャスト全体を話者を縦に並べて 9:16 にフレーミングし、動画を次に渡します。

- 動画アップロード → スピーカーレイアウト (録音)
- スピーカーレイアウト → SNS フォーマット (動画)

## 入力
| 入力 | 受け付けるもの | 役割 |
| --- | --- | --- |
| **録音** | 動画 | 収録。最長 3 時間で、音声が必要です。必須です。[複数のカメラ](#several-cameras)の場合は、各カメラの録音をここに接続します。 |
| **マスターオーディオ** | オーディオ | 複数のカメラの場合：ミキサーやレコーダーのトラックで、動画の音声になります。任意です。 |

次のものは、何も課金される前に拒否されます。

- **すでに幅の狭い動画。**録音が 1 本の場合、選んだ形と同じかそれより狭い動画には、話者を追って動かせる余分な幅がありません。もっと縦長の形を選ぶか、幅の広い動画を使ってください。
- **映像のない録音。**フレーミングするものがありません。
- **読み込めない録音。**

**録音**に複数の録音を接続した場合、最初の録音がカメラ 1 になります。設定パネルで録音をドラッグすると、順番を変えられます。

## 出力
| 出力 | 渡すもの |
| --- | --- |
| **動画** | フレーミングした動画。動画は自分の長さを持っているので、[**動画のトリミング**](https://nodaro.ai/docs/nodes/video/trim-video)や[**動画を結合**](https://nodaro.ai/docs/nodes/video/combine-videos)のように、受け取るものの長さで料金が決まるノードは、フレーミングした動画の長さで料金が決まります。 |
| **編集（EDL）** | 話者ビューが描いた編集。収録全体と、各話者の枠が入っています。別のレンダリング、たとえば別の形の 2 つ目の[**話者ビュー**](https://nodaro.ai/docs/nodes/video/speaker-view)に接続できます。メディアではなくデータなので、オーディオ、動画、画像だけを受け付ける入力には接続できません。そこには**動画**出力を接続します。 |

## 設定
| 設定 | 役割 |
| --- | --- |
| **形** | 動画の形：`16:9`、`9:16`（デフォルト）、`1:1`、`4:5`。 |
| **レイアウト** | 選んだ形で話者ビューが描けるレイアウト：**自動**、**シングル**、**横並び**、**縦積み**（デフォルト）、**グリッド**、**ピクチャーインピクチャー**。その形で描けないレイアウトは、描けるレイアウトに変わります。 |
| **切り替え** | 話者が変わるたびの切り替え方。デフォルトは**カット**です。レイアウトで使えない切り替えは、話者ビューと同じように、理由とともにグレー表示されます。 |
| **強調** | 話している人の目立たせ方：**なし**、または**スケール**（デフォルト）、**枠**、**減光**の単独か組み合わせ。 |
| **フレーミングの方法** | **自動（顔を追従）**（デフォルト）、**均等分割**、**顔を追従**。[顔の追従](#following-faces)を参照してください。 |
| **レンダリング前に確認** | デフォルトはオフです。オンにすると、実行は簡易プレビューで止まります。[レンダリング前に確認](#review-before-render)を参照してください。 |
| **カメラ** | 録音が 2 本以上あるか、マスターオーディオがあるときに表示されます。[複数のカメラ](#several-cameras)を参照してください。 |

**クロスフェード**の切り替えは常にグレー表示で、「録画から切り取られる区間がないため、クロスフェードをかける箇所がありません。」という理由が付きます。**パン**と**ズーム**は、各話者の位置を固定する**横並び**、**縦積み**、**グリッド**ではグレー表示になります。ノードや API リクエストでグレー表示の切り替えを指定しても、カットとして描かれます。

画面上の各話者には、自動で枠が付きます。短い時間しか聞こえない声、つまり 10 秒未満かつ会話の 5% 未満の声には、専用の枠が付きません。そのため、文字起こしに紛れ込んだラベルが画面の一部を占めることはありません。

### 顔の追従
**フレーミングの方法**で、話者の枠をどこから得るかを決めます。

- **自動（顔を追従）。**話者フレームを利用できるときは顔を追従し、利用できないときは均等分割を使います。拒否されることも、追加で課金されることもありません。見積もりも同じルールに従います。
- **均等分割。**画面上の各話者が、画面を均等に分け合います。
- **顔を追従。**[**話者フレーム**](https://nodaro.ai/docs/nodes/video/speaker-frames)が各顔を追跡し、話者ビューがそれを追います。話者フレームは、サンプリングした 1,000 フレームのブロックを開始するごとに課金されます。顔はまだ話者と対応付けられません。1 人だけが映るカメラは追従し、複数の話者が共有するカメラは均等分割のままです。

話者フレームを利用できない場合、設定パネルにフレーミングの方法は表示されず、**自動（顔を追従）**は均等分割になります。このとき**顔を追従**に設定したノードには注意書きが表示され、その実行は何も課金される前に `403 node_not_available` で拒否されます。

### 複数のカメラ
各カメラの録音を**録音**に接続します。ミキサーやレコーダーのトラックがある場合は、**マスターオーディオ**に接続します。実行は、[**音声同期**](https://nodaro.ai/docs/nodes/audio/audio-sync)で録音の時間を合わせ、音声を文字起こしし、[**話者マップ**](https://nodaro.ai/docs/nodes/audio/speaker-map)で各話者がどのカメラに映っているかを判定します。カメラが 2 台以上ある場合は、[**カメラ切り替え**](https://nodaro.ai/docs/nodes/video/camera-switch)が各区間を話している人に割り当てます。そのあと、話者ビューが各カメラのショットをフレーミングします。

- **録音。**1 つの会話の録音を最大 6 本、順番に：カメラ 1、カメラ 2、と続きます。カメラにできるのは最大 5 本です。6 本目の枠は音声用で、マスターオーディオか、音声だけの録音 1 本です。
- **マスターオーディオ。**動画の音声であり、録音の時間を合わせる基準の時計です。マスターオーディオがない場合、ノードは動画全体で 1 つの音声を選ぶので、音声がカメラのマイクの間で切り替わることはありません。
- **引きのカメラ。**全員が映るカメラ。自分のカメラがない話者は、このカメラで映ります。デフォルトはなしです。
- **録音はすでに同期済み。**すべての録音がすでに 1 つの時計を共有している場合にオンにします。実行は音声同期の工程を省きます。
- **誰がどのカメラに映るか。**デフォルトでは、話者マップがカメラ自身のマイクから判定します。上書きするには、話者をカメラか引きのショットに設定します。話者 1 は最初に聞こえた声、話者 2 はその次の声、と続きます。

実行の結果には、誰をどのカメラに割り当てたかが、時間合わせとマップの注記とともに記されます。話者マップを利用できない場合、エディターやアプリでの実行は最初の録音だけを読み込み、設定パネルにその旨が表示されます。

## レンダリング前に確認
**レンダリング前に確認**をオンにすると、実行はプレビューで止まります。話者ビューは、低いプレビュー料金でプレビューをレンダリングします。プレビューを見てから、ノードの**最終レンダリング**をクリックします。プレビューを作ったときの設定で、動画をフル品質でレンダリングします。

- **編集するものはありません。**レイアウトには変更するカットがないので、ノードに確認用のエディターはありません。
- **最終レンダリングはレンダリングだけを行います。**文字起こし、話者フレーム、そして複数のカメラの場合の音声同期、話者マップ、カメラ切り替えは、再び実行も課金もされません。手数料もかかりません。
- **誰かが確認する必要があります。**確認する人がいないワークフローやアプリの実行はプレビューで止まれず、`preview_review_required` で失敗します。MCP ツールの `speaker_layout` と `continue_use_case` は、それを呼び出す AI アシスタントが確認します。
- **リストの項目ごとには使えません。** **レンダリング前に確認**をオンにしたノードにリストから入力すると、どの実行も始まる前に拒否され、何も課金されません。オフにすると、リストは項目ごとにノードを 1 回ずつ実行し、それぞれが独立した実行として手数料がかかります。

## 実行が失敗した場合
完了した工程は完了したままです。文字起こし、時間合わせ、カメラのマップなどの結果は保持され、再び課金されることはありません。ノードの**続行**を押すと、失敗した工程とそれ以降の工程だけが再び実行されます。失敗した実行の手数料は返還され、**続行**で再び確保されるので、1 つの実行に手数料がかかるのは 1 回だけです。

## クレジット
スピーカーレイアウトは、各工程をそれが代わりを務めるノードと同じ料金で課金し、さらに実行ごとに少額の手数料がかかります。ノードは、手数料を含む見積もり全体を実行前に表示します。

| 工程 | 料金 |
| --- | --- |
| 文字起こし（ElevenLabs STT） | 1 回の実行につき 25 クレジット |
| 話者ビュー | レイアウトに応じて、収録 1 分あたり 11〜14 クレジット。プレビューは 1 分あたり 3〜4 クレジットです。[**話者ビュー**](https://nodaro.ai/docs/nodes/video/speaker-view#credits)を参照してください。 |
| 話者フレーム（顔を追従するフレーミングの場合） | サンプリングした 1,000 フレームのブロックを開始するごとに課金され、実行の合計を 1 回だけ切り上げます。録音が 1 本の場合は、動画全体を 1 秒あたり 2 フレームでサンプリングします。[**話者フレーム**](https://nodaro.ai/docs/nodes/video/speaker-frames#credits)を参照してください。 |
| 音声同期（複数のカメラの場合） | 音声に合わせる録音 1 本につき 11 クレジット。録音がすでに同期済みの場合はかかりません。 |
| 話者マップ（複数のカメラの場合） | 1 回の実行につき一律の料金。[**話者マップ**](https://nodaro.ai/docs/nodes/audio/speaker-map#credits)を参照してください。 |
| カメラ切り替え（カメラが 2 台以上の場合） | 1 回の実行につき一律の料金。[**カメラ切り替え**](https://nodaro.ai/docs/nodes/video/camera-switch#credits)を参照してください。 |

- **実行ごとの手数料**は、1 回の実行につき 1 回かかります。確認のあとの**最終レンダリング**には、手数料は再びかかりません。
- **リストは各項目を独立した実行として処理し、**それぞれに手数料がかかります。
- **課金されるのは、フレーミングした動画そのものの分数です。**見積もりではありません。

### 実行前の見積もり
見積もりは、話者ビューを収録の全長、つまり作られる動画の長さで計算します。レイアウトは実行前にはわからないため、見積もりには話者ビューの高いほうの料金を使います。画面上の話者が 2 人以内でズームのない収録は、低いほうの料金で課金されます。長さがわからない収録は、上限の 180 分で見積もられます。複数のカメラの場合、話者ビューは音声の長さ、つまりマスターオーディオ、なければ最も長い録音の長さで計算されます。

## ヒント
- **自動のフレーミングのままにする。** **自動（顔を追従）**は、できるときは顔を追従し、できないときも追加料金はかかりません。
- **長い収録は確認する。** **レンダリング前に確認**をオンにして、フル品質のレンダリングに支払う前にプレビューを確認します。
- **編集を再利用する。** **編集（EDL）**出力を 2 つ目の話者ビューに接続すると、同じフレーミングを別の形でレンダリングできます。
- **カットとフレーミングを両方行う。**無音やフィラーワードも取り除くには、フレーミングを選んだ[**エピソードを引き締める**](https://nodaro.ai/docs/nodes/video/tighten-episode)を使います。

## トラブルシューティング
| 問題 | 対処 |
| --- | --- |
| 動画の幅が狭すぎるため実行が拒否される | 動画がすでに形と同じか、それより狭くなっています。もっと縦長の**形**を選ぶか、幅の広い動画を使ってください。 |
| 実行が始まる前に拒否される | 収録が動画であり、長さが 3 時間以内で、音声が入っていることを確認してください。 |
| 最初の録音しか使われなかった | 話者マップを利用できないため、ノードは最初の録音だけを読み込みます。設定パネルにその旨が表示されます。 |
| **顔を追従**が `403 node_not_available` で拒否される | 話者フレームを利用できません。**均等分割**か**自動（顔を追従）**を選んでください。 |
| ノードが `preview_review_required` で失敗する | プレビューを確認する人がいない実行でした。API、トリガー、確認する人がいないアプリからの実行では、**レンダリング前に確認**をオフにしてください。 |
| 1 つの工程が失敗した | ノードの**続行**を押します。完了した工程は結果を保持し、再び課金されません。 |
| セルフホスティング環境にノードがない | 環境を Nodaro Cloud に接続してください。[Nodaro Cloud への接続](https://nodaro.ai/docs/self-hosting/cloud-connect)を参照してください。 |

## API から
`POST /v1/speaker-layout` は実行を開始し、`jobId` と `executionId` を付けて `202` を返します。ボディには `mediaUrls`（動画の録音 1 本、または 1 つの会話の録音を最大 6 本並べたリスト）と、任意で `masterAudioUrl`、`cameras`、`targetAspect`、`layout`、`switchType`、`emphasisStyle`、`framingSource`、`reviewBeforeRender` を指定します。ジョブは `GET /v1/jobs/:id/status` でポーリングします。

- `cameras` は、`wide`（録音の番号、または `null`）、`synced`（録音がすでに時計を共有している場合は `true`）、`speakerCameras`（話者の番号を録音の番号に対応付けるもの）を受け取ります。`0` は引きのショットを意味します。
- `framingSource` は `"auto"`、`"static"`、`"tracking"` のいずれかです。省略すると `"auto"` になります。`emphasisStyle` は `"none"`、または `"scale"`、`"border"`、`"dim"` を `"+"` でつないだものです。
- ジョブの `output_data` には、フレーミングした動画（`videoUrl`）、実行が長さを把握している場合はその秒数（`durationSec`）、編集（`json`）、文字起こし、`quality`（プレビューは `proxy`、それ以外は `final`）が入ります。複数の録音での実行には、誰がどのカメラに映るかの報告である `cameras` が加わります。失敗した実行は、失敗した工程を `failedStep` に示します。
- `Idempotency-Key` ヘッダーを付けると、同じリクエストの再試行は同じ `jobId` と `"deduped": true` を返し、何も開始しません。
- `POST /v1/speaker-layout/estimate` は同じボディを受け取り、何も開始せずに `{ data: { totalCredits, stepsCredits, feeCredits, durationSec } }` を返します。
- `POST /v1/speaker-layout/continue` に `{ jobId, mode }` を渡すと、実行を続行します。`"mode": "from-failed"` は、失敗した実行で完了しなかった部分を実行します。`"mode": "render-final"` は、確認用の実行の最終版をレンダリングします。`editedEdl` は受け取らず、送ると `400 use_case_no_plan` で拒否されます。

SDK（`client.edit.speakerLayout`、`client.edit.estimateSpeakerLayout`、`client.edit.continueUseCase`）、CLI（`nodaro edit speaker-layout`、見積もりには `--estimate`、そして `nodaro edit continue-use-case`）、MCP ツールの `speaker_layout`、`estimate_use_case`、`continue_use_case` は、同じルートを呼び出します。[単一ノードの実行](https://nodaro.ai/docs/developers/api/nodes)、[SDK での編集](https://nodaro.ai/docs/developers/sdk/editing)、[MCP ツールリファレンス](https://nodaro.ai/docs/mcp/tools)を参照してください。

## よくある質問

### スピーカーレイアウトは何をしますか？

スピーカーレイアウトは、収録全体を受け取り、最初から最後まで話者ごとにフレーミングして返します。何もカットしないので、動画は収録と同じ長さになります。内部では、収録を文字起こしし、話者ビューで各話者をフレーミングします。

### スピーカーレイアウトとエピソードを引き締めるの違いは何ですか？

スピーカーレイアウトは収録全体を残し、フレーミングだけを行います。エピソードを引き締めるは、無音、フィラーワード、言い直しもカットします。収録をカットしてフレーミングもするには、フレーミングを選んだエピソードを引き締めるを使います。

### スピーカーレイアウトで複数のカメラを使えますか？

はい。1 つの会話の録音を最大 6 本接続し、必要に応じてマスターオーディオも接続します。実行は録音の時間を合わせ、各話者がどのカメラに映っているかを判定し、各話者をその人のカメラで映します。

### スピーカーレイアウトのクレジットはいくらですか？

各工程は、それぞれが代わりを務めるノードと同じ料金で課金され、さらに実行ごとに少額の手数料がかかります。ノードは実行前に見積もり全体を表示します。課金されるのは、フレーミングした動画そのものの分数です。

### フル品質でレンダリングする前に結果を確認できますか？

はい。レンダリング前に確認をオンにします。実行は簡易プレビューで止まります。最終レンダリングを選ぶと、同じ設定でフル品質の動画をレンダリングします。実行ごとの手数料は再び課金されません。
