# 話者フレーム

> マルチカメラ編集の各カメラで、各話者の顔の位置を時間に沿って見つけます。話者ビューの追跡フレーミングが読み込む顔トラックのファイルを作ります。

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

**話者フレーム**ノードは、編集の各カメラで、各話者の顔の位置を時間に沿って見つけます。結果は保存される顔トラックのファイルに書き込まれ、各カメラ自体の時間軸で、顔ごとのボックスが記録されます。**顔のトラック**出力は、そのファイルの概要を渡します。それを[**話者ビュー**](https://nodaro.ai/docs/nodes/video/speaker-view#face-tracking)の**顔のトラック**入力に接続するか、話者ビューで**顔トラッキングを追加**をクリックすると、各話者のクロップがその顔を追うようになります。

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

話者フレームには現在クレジットの価格が設定されていません。すべての実行は、料金がかかる前に「Speaker Frames はまだ価格が設定されていません。」というメッセージで拒否されます。ノード、設定パネル、**実行**ボタンにもそのことが表示されます。ノードの配置、接続、設定はできます。

話者フレームは Nodaro Cloud で動作します。セルフホスティング環境では、[環境を Nodaro Cloud に接続](https://nodaro.ai/docs/self-hosting/cloud-connect)してください。接続した環境は、サンプリングするカメラの小さな検出用コピーを作り、それだけを送ります。元のファイルは送りません。マスター音声と、チェックを外したカメラは一切送られません。現在、接続した環境からの実行は、「Speaker Frames is not available on a connected install yet」（接続した環境では、話者フレームはまだ使えません）というメッセージで拒否されます。

## 使いどころ
- ポッドキャストやインタビューのレンダリングで、フレーミングを各話者の顔に追従させたい。
- [**編集プラン**](https://nodaro.ai/docs/nodes/video/edit-plan)や[**カメラ切り替え**](https://nodaro.ai/docs/nodes/video/camera-switch)によるマルチカメラの編集があり、各カメラで各人がどこにいるかを知りたい。
- 編集なしで、1 本の動画の顔の位置を知りたい。

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

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

### カメラを選ぶ
設定パネルを開きます。**追跡するカメラ**で、追跡が不要なカメラのチェックを外します。たとえば、レンダリングでフルフレーム表示するクローズアップです。

Workflow: 編集プランが編集を書き、カメラ切り替えが各カットのカメラを選び、話者フレームが編集に映る各カメラで各話者の顔を見つけます。

- 編集プラン → カメラ切り替え (EDL)
- カメラ切り替え → 話者フレーム (EDL)

## 入力
| 入力 | 必須 | 接続するもの |
| --- | --- | --- |
| **EDL** | **EDL** と**動画**のどちらか一方 | [**編集プラン**](https://nodaro.ai/docs/nodes/video/edit-plan)か[**カメラ切り替え**](https://nodaro.ai/docs/nodes/video/camera-switch)の編集。クリップのセットは 1 回だけ実行されます。編集プランの**クリップ**出力を接続すると、すべてのクリップが、クリップで残る映像全体を対象にした 1 回の実行にまとめられます。クリップごとに実行されることはありません。 |
| **動画** | **EDL** と**動画**のどちらか一方 | 1 本の動画。全体がサンプリングされます。最大 180 分です。 |
| **文字起こし** | いいえ | カメラ切り替えの**文字起こし（名前付き）**出力と、その話者名。トラックには、編集で使われている名前のラベルが付きます。カメラ切り替えが出力するものと同じ文字起こしを接続してください。 |

**EDL** と**動画**のどちらか一方だけを接続してください。両方を接続すると、料金がかかる前に実行が拒否されます。

## 出力
| 出力 | 内容 |
| --- | --- |
| **顔のトラック** | 保存された顔トラックのファイルの概要：そのアドレス、SHA-256 ハッシュとサイズ、サンプリングレート、そしてカメラごとのサンプリングした区間、シーンのカット、トラック。各トラックには、ID、わかっている場合は話者、ボックスの数があります。ボックス自体は保存されたファイルにあります。 |

接続したセルフホスティング環境では、実行後に顔トラックのファイルが環境自体のストレージにコピーされ、ハッシュがもう一度確認されます。出力は、そのコピーを指します。

## 設定
| 設定 | 内容 |
| --- | --- |
| **追跡するカメラ** | 接続した編集がサンプリングするすべてのカメラと、それぞれのフレーム数。追跡が不要なカメラのチェックを外すと、そのカメラはサンプリングされません。チェックを外したカメラが編集にもうない場合、ノードの実行時には無視されます。 |

ノードは、編集で残るものだけをサンプリングします。残る各区間と、その前後 2 秒ずつを、編集に映るすべての動画カメラで、毎秒 2 フレームでサンプリングします。サンプリングレートは固定です。残る映像が 180 分を超えるカメラは、料金がかかる前に拒否されます。

### 話者ラベルの修正
ノードは、各トラックの話者の修正を、トラック ID ごとに保持します。修正では、トラックのラベルを消すこともできます。修正は、[**話者ビュー**](https://nodaro.ai/docs/nodes/video/speaker-view#face-tracking)の**フレーミングを編集…**で設定します。そこでは各カメラの上に追跡した顔が描かれ、顔が誰かを選ぶと、その修正がこのノードに保存されます。設定パネル、キャンバス上の概要、話者ビューには、修正が反映されます。修正は文字起こし自体のラベルを保持するため、カメラ切り替えで話者の名前を変えると、修正も新しい名前に従います。**顔のトラック**出力は、修正を含まない、実行が書き込んだままの結果を渡します。新しい実行では、まだ見つかるトラックの修正が保持されます。新しい結果にトラックがなくなった修正はパネルに一覧表示されるため、修正が知らないうちに失われることはありません。

## クレジット
話者フレームには現在クレジットの価格が設定されていません。すべての実行は「Speaker Frames はまだ価格が設定されていません。」というメッセージで拒否され、料金はかかりません。

## ヒント
- マルチカメラの撮影では、**先にカメラ切り替えを実行し**、その名前付きの文字起こしを接続してください。トラックに、編集で使われている話者名が付きます。
- **不要なカメラのチェックを外す。** レンダリングでフルフレーム表示するクローズアップには追跡は不要です。カメラが少ないほど、サンプリングするフレームも少なくなります。
- **追跡の前に編集をカットする。** ノードは編集で残る映像だけをサンプリングするため、編集を詰めるほどサンプリングが速くなります。

## トラブルシューティング
| メッセージまたは問題 | 原因と対処 |
| --- | --- |
| 「Speaker Frames はまだ価格が設定されていません。」 | 話者フレームには現在クレジットの価格が設定されていないため、すべての実行が拒否されます。 |
| 「「EDL」に EDL を、または「動画」に動画を接続」 | 何も接続されていません。編集か動画を接続してください。 |
| 両方の入力を接続すると実行が拒否される。 | **EDL** と**動画**のどちらか一方だけを接続してください。 |
| カメラが長すぎるとして拒否される。 | そのカメラの残る映像が 180 分を超えています。残す映像を減らすか、そのカメラのチェックを外してください。 |
| トラックに正しい名前のラベルが付かない。 | 文字起こしノードの文字起こしではなく、カメラ切り替えの**文字起こし（名前付き）**出力を接続してください。 |

## API から
`POST /v1/speaker-frames` は、`edl` または `videoUrl` のどちらか一方を受け取り、任意で `transcript` と `excludeSourceIds` を受け取ります。`edl` は、1 つの EDL、クリップのセット（EDL の配列）、またはクリップセットで、オブジェクトまたは JSON 文字列です。`excludeSourceIds` には、チェックを外したカメラを並べます。完了したジョブの `output_data.json` が、顔トラックのファイルの概要です。

次のリクエストは、料金がかかる前に拒否されます。

| エラー | 原因 |
| --- | --- |
| `400 invalid_edl` | リクエストの形式が正しくないか、編集が収録の時間軸にありません。 |
| `400 invalid_input` | `edl` と `videoUrl` の両方が送られたか、どちらも送られていません。または、`excludeSourceIds` が編集のカメラを 1 つも指定していません。 |
| `400 too_long` | 180 分を超えるカメラがあります。 |
| `503 not_priced` | 話者フレームには現在クレジットの価格が設定されていません。 |

セルフホスティング環境では、Nodaro Cloud に接続していない場合、または Nodaro Cloud が環境の接続を拒否した場合、このルートは `503 nodaro_connection_required` を返します。**連携**から接続し直してください。Nodaro Cloud が接続した環境からの実行を受け付けていない間、または Nodaro Cloud に到達できない間は、`503 speaker_frames_relay_unavailable` を返します。環境が作った検出用コピーが、中継で送れる 500 MB を超える場合、ジョブは失敗し、そのカメラを示します。残す映像を減らすか、そのカメラのチェックを外してください。

`GET /v1/speaker-frames/capabilities` は `{ relay, source }` を返します。このサーバーが、接続したセルフホスティング環境から中継された話者フレームのジョブを実行するかどうかを示します。`source` は `server`、`nodaro.ai`、`nodaro.ai-unreachable`、`nodaro.ai-rejected`、`not-connected` のいずれかです。[単体のノードを実行する](https://nodaro.ai/docs/developers/api/nodes)と[ジョブ](https://nodaro.ai/docs/developers/api/jobs)を参照してください。

## よくある質問

### 話者フレームノードは何をしますか？

話者フレームは、編集の各カメラで、各話者の顔の位置を時間に沿って見つけます。ボックスを顔トラックのファイルに保存し、「顔のトラック」出力は、話者ビューの追跡フレーミングのために、そのファイルの概要を渡します。

### 話者フレームは今すぐ実行できますか？

まだできません。話者フレームには現在クレジットの価格が設定されていないため、すべての実行は、料金がかかる前に「Speaker Frames はまだ価格が設定されていません。」というメッセージで拒否されます。ノードの配置と設定はできます。

### 話者フレームは収録全体を解析しますか？

いいえ。EDL を接続している場合は、編集で残る映像と、その前後 2 秒ずつだけを、毎秒 2 フレームでサンプリングします。90 分のエピソードを 60 分に編集した場合、サンプリングされるのは約 60 分です。

### クリップのセットでは、話者フレームはクリップごとに実行されますか？

いいえ。編集プランの「クリップ」出力を接続すると、すべてのクリップが、クリップで残る映像全体を対象にした 1 回の実行にまとめられます。

### どの文字起こしを接続すればよいですか？

カメラ切り替えの「文字起こし（名前付き）」出力を接続します。これはカメラ切り替えが出力するものと同じ文字起こしです。顔トラックには、編集で使われている話者名のラベルが付きます。
