mcpField
R
resemble-detect

resemble-detect

github.com/davepoonセキュリティ3.7k68 回インストール1 日前に更新
リポジトリ

resemble-detect について

resemble-detectは、合成メディア、ディープフェイク、透かしを調べる人向けの、メディア真正性確認と内容分析のスキルです。真正性の判断は推測せず、完了したResemble検出結果に基づくことを求めます。

主な機能

  1. 01音声・画像・動画の合成検出
  2. 02話者・感情・文字起こし・誤情報の分析
  3. 03合成音声の生成元プラットフォーム追跡
  4. 04メディアへの透かしの適用と検出
  5. 05話者の照合とAI生成テキストの検出

活用シーン

  1. 01メディアがAI生成または改変か確認
  2. 02合成音声の生成元を特定
  3. 03メディアを分析して文字起こしを取得
  4. 04透かしの確認や話者の本人照合

MCP 対応

Resemble MCP サーバー接続時は、ドキュメント照会、検索、API エンドポイントのツールを使い、検出に関する情報やリクエスト形式を取得できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davepoon/buildwithclaude --skill resemble-detect

インストール後、Claude Code で/resemble-detectを入力して読み込まれたか確認します。

同梱ファイルLICENSE

詳細

Resemble Detect — ディープフェイク検出とメディアの安全性

Resemble AI プラットフォームを使用して、音声、画像、動画、テキストを分析し、合成による改変、AI 生成コンテンツ、電子透かし、話者の識別、メディアインテリジェンスを検出します。

基本原則 — 絶対に守るべきルール

「検出結果が完了するまでは、メディアが本物か偽物かを決して断定しないでください。」

メディアの真正性について、推測、推論、憶測をしてはいけません。真正性に関するすべての主張は、label、score、status: "completed" が返された Resemble の検出ジョブの完了結果に基づいている必要があります。検出がまだ processing の場合は、完了を待ってください。failed の場合は、その旨を伝えてください。独自の判断で代用してはいけません。

使用する場面

ユーザーのリクエストに以下のいずれかが含まれる場合は、このスキルを使用してください。

  • 音声、動画、画像、テキストが AI 生成か、改変されているかを確認する
  • あらゆる形式のメディアからディープフェイクを検出する
  • メディアの真正性や来歴を検証する
  • 音声を合成した AI プラットフォームを特定する(ソース追跡)
  • メディアに電子透かしを適用する、または検出する
  • 話者情報、感情、文字起こし、誤情報についてメディアを分析する
  • 検出結果について自然言語で質問する
  • 既知の音声プロファイルと照合して、話者の識別情報を特定または検証する
  • AI 生成または機械生成のテキストを検出する
  • 「ディープフェイク」「偽物の検出」「合成メディア」「音声の検証」「電子透かし」「メディアフォレンジック」「真正性の確認」「ソース追跡」「これは本物か」「AI が書いたテキスト」「テキスト検出」などの言及

テキスト読み上げの生成、音声クローン、音声の文字起こしには使用しないでください。これらは Resemble の別の機能です。

機能の選択フローチャート

ユーザーの要望使用する機能API エンドポイント
メディアが AI 生成/ディープフェイクか確認するディープフェイク検出POST /detect
偽の音声を作成した AI プラットフォーム を特定する音声ソース追跡フラグを指定して POST /detect
メディアから話者情報、感情、文字起こしを取得するインテリジェンスPOST /intelligence
完了した検出について質問する検出インテリジェンスPOST /detects/{uuid}/intelligence
メディアに不可視の電子透かしを適用する電子透かしの適用POST /watermark/apply
メディアに電子透かしが含まれているか確認する電子透かしの検出POST /watermark/detect
既知のプロファイルと照合して話者の識別情報を検証する識別情報の検索POST /identity/search
テキストが AI 生成か確認するテキスト検出POST /text_detect
今後の照合に使う音声識別プロファイルを作成する識別情報の作成POST /identity

複数の機能が該当する場合(例:ユーザーがディープフェイク検出とインテリジェンスの両方を求めている場合)は、個別にリクエストを送信するのではなく、intelligence: true フラグを使用して、1 回の POST /detect 呼び出しにまとめてください。

必要な設定

  • API キー:Resemble AI ダッシュボードで発行したベアラートークン
  • ベース URL:https://app.resemble.ai/api/v2
  • 認証ヘッダー:Authorization: Bearer <RESEMBLE_API_KEY>
  • メディア要件:すべてのメディアは、一般公開されている HTTPS URL に配置する必要があります。

ユーザーが URL ではなくローカルファイルパスを指定した場合は、まずそのファイルを一般公開されている HTTPS URL でホストする必要があることを伝えてください。ローカルファイルを API にアップロードしようとしてはいけません。

MCP ツール一覧

Resemble MCP サーバーに接続されている場合は、直接 API を呼び出す代わりに、以下のツールを使用してください。

ツール用途
resemble_docs_lookupdetect の任意のサブトピックに関する包括的なドキュメントを取得します
resemble_searchすべてのドキュメントを検索します
resemble_api_endpoint任意のエンドポイントの正確な OpenAPI 仕様を取得します
resemble_api_searchキーワードでエンドポイントを検索します
resemble_get_page特定のドキュメントページを読み込みます
resemble_list_topics利用可能なトピックをすべて一覧表示します

ツールの使用パターン:まず resemble_docs_lookup でトピック "detect" を指定して全体像を把握し、API を呼び出す前に resemble_api_endpoint で正確なリクエスト/レスポンスのスキーマを確認します。


フェーズ 1:ディープフェイク検出

中核となる機能です。音声、画像、動画を送信して、AI 生成コンテンツを分析します。

検出を送信する
POST /detect
Content-Type: application/json
Authorization: Bearer <API_KEY>

{
  "url": "https://example.com/media.mp4",
  "visualize": true,
  "intelligence": true,
  "audio_source_tracing": true
}

パラメーター:

パラメーター型必須説明
urlstringはい音声、画像、動画ファイルの HTTPS URL
callback_urlstringいいえ非同期処理の完了通知用 Webhook URL
visualizebooleanいいえヒートマップ/可視化アーティファクトを生成します
intelligencebooleanいいえ検出と並行してマルチモーダルインテリジェンス分析を実行します
audio_source_tracingbooleanいいえ偽の音声を合成した AI プラットフォームを特定します
frame_lengthintegerいいえ音声/動画の分析ウィンドウサイズ(秒)(1~4、デフォルトは 2)
start_regionnumberいいえ分析するセグメントの開始位置(秒)
end_regionnumberいいえ分析するセグメントの終了位置(秒)
model_typesstringいいえ"image" または "talking_head"(顔の入れ替え検出用)
use_reverse_searchbooleanいいえ逆画像検索を有効にします(画像のみ)
use_ood_detectorbooleanいいえ分布外検出を有効にします
zero_retention_modebooleanいいえ検出完了後にメディアを自動削除します

対応フォーマット:

  • 音声:WAV、MP3、OGG、M4A、FLAC
  • 動画:MP4、MOV、AVI、WMV
  • 画像:JPG、PNG、GIF、WEBP
結果をポーリングする

検出は非同期で行われます。status が "completed" または "failed" になるまで、GET /detect/{uuid} をポーリングしてください。

GET /detect/{uuid}
Authorization: Bearer <API_KEY>

ポーリングのベストプラクティス: 最初は 2 秒間隔で開始し、5 秒、次に 10 秒へと間隔を広げます。メディアの長さにもよりますが、ほとんどの検出は 10~60 秒以内に完了します。

メディアタイプ別の結果の読み方

音声の結果 — metrics 内:

{
  "label": "fake",
  "score": ["0.92", "0.88", "0.95"],
  "consistency": "0.91",
  "aggregated_score": "0.92",
  "image": "https://..."
}
  • label:"fake" または "real" — 判定結果
  • score:チャンクごとの予測スコア(配列)
  • aggregated_score:全体的な信頼度(0.0~1.0。値が高いほど合成音声の可能性が高い)
  • consistency:チャンク間での予測の一貫性
  • image:可視化ヒートマップの URL(visualize: true の場合)

画像の結果 — image_metrics 内:

{
  "type": "ImageAnalysis",
  "label": "fake",
  "score": 0.87,
  "image": "https://...",
  "ifl": { "score": 0.82, "heatmap": "https://..." },
  "reverse_image_search_sources": [
    { "url": "...", "title": "...", "verdict": "known_fake", "similarity": 0.95 }
  ]
}
  • label / score:判定結果と信頼度
  • ifl:ヒートマップ付きの不可視周波数レイヤー分析
  • reverse_image_search_sources:オンラインで見つかった既知のソース(use_reverse_search: true の場合)

動画の結果 — video_metrics 内:

{
  "label": "fake",
  "score": 0.89,
  "certainty": 0.91,
  "children": [
    {
      "type": "VideoResult",
      "conclusion": "Fake",
      "score": 0.89,
      "timestamp": 2.5,
      "children": [...]
    }
  ]
}
  • フレームレベルおよびセグメントレベルの結果を含む階層ツリー
  • 各子要素には timestamp、score、certainty があり、ネストされた children を含む場合があります
  • 音声トラック付きの動画では、metrics(音声)と video_metrics(映像)の両方が返されます
スコアの解釈
スコア範囲解釈
0.0 – 0.3真正/本物のメディアである強い兆候
0.3 – 0.5判断不能 — 追加の分析を推奨
0.5 – 0.7合成の可能性が高い — レビュー対象としてフラグを立てる
0.7 – 1.0合成/AI 生成である信頼度が高い

スコアは常に文脈とともに提示してください。「検出はスコア 0.87 を返しました。これはこの音声が AI 生成であるという高い信頼度を示しています」のように述べ、「偽物です」とだけ言ってはいけません。


フェーズ 2: インテリジェンス — メディア分析

検出とは独立して、または検出と併せて、メディアを分析して豊富で構造化されたインサイトを得ます。

スタンドアロンインテリジェンス
POST /intelligence
Content-Type: application/json
Authorization: Bearer <API_KEY>

{
  "url": "https://example.com/audio.mp3",
  "json": true
}

パラメータ:

パラメータ型必須説明
urlstringいずれかメディアファイルへの HTTPS URL
media_tokenstringいずれかセキュアアップロードからのトークン(URL の代替)
detect_idstringいいえ関連付ける既存の検出の UUID
media_typestringいいえ"audio"、"video"、または "image"(自動検出)
jsonbooleanいいえ構造化フィールドを返す(デフォルト: 音声/動画は false、画像は true)
callback_urlstringいいえ非同期モード用の Webhook

音声/動画の構造化レスポンス(json: true):

  • speaker_info — 話者の説明(年齢、性別)
  • language / dialect — 検出された言語
  • emotion — 検出された感情状態
  • speaking_style — 会話的、フォーマルなど
  • context — 発話の推定コンテキスト
  • message — 内容の要約
  • abnormalities — メディア内で検出された異常
  • transcription — 完全な文字起こし
  • translation — 英語以外の場合の翻訳
  • misinformation — 誤情報分析

画像の構造化レスポンス:

  • scene_description — 画像が示すもの
  • subjects — 識別された人物/オブジェクト
  • authenticity_analysis — 視覚的な真正性の評価
  • context_and_setting — 環境の説明
  • abnormalities — 視覚的な異常
  • misinformation — 誤情報分析
検出インテリジェンス — 結果について質問する

検出が完了した後、それについて自然言語で質問できます:

POST /detects/{detect_uuid}/intelligence
Content-Type: application/json
Authorization: Bearer <API_KEY>

{
  "query": "How confident is the model that this audio is fake?"
}

これは質問の UUID を返します。status が "completed" になるまで GET /detects/{detect_uuid}/intelligence/{question_uuid} をポーリングして、answer を取得してください。

提案するとよい質問:

  • 「検出結果をわかりやすい言葉で要約してください」
  • 「これが AI 生成であることを示す具体的な指標は何ですか?」
  • 「音声と動画の検出結果はどのように異なりますか?」
  • 「信頼度はどのくらいで、それは何を意味しますか?」
  • 「分析に矛盾点はありますか?」

ステータスの流れ: pending → processing → completed(または failed)

前提条件: 検出が status: "completed" である必要があります。処理中または失敗した検出に対して質問を送信すると、422 エラーが返されます。


フェーズ 3: 音声ソースの追跡

音声が合成(label: "fake")として検出された場合、どの AI プラットフォームがそれを生成したかを特定します。

有効にするには、POST /detect リクエストで audio_source_tracing: true を設定します。

結果は検出レスポンスの audio_source_tracing の下に表示されます:

{
  "label": "elevenlabs",
  "error_message": null
}

既知のソースラベルには以下が含まれます: resemble_ai、elevenlabs、real、およびモデルの拡張に伴いその他。

重要: ソース追跡は音声が "fake" とラベル付けされた場合にのみ実行されます。音声が "real" の場合、ソース追跡の結果は表示されません。

スタンドアロンクエリ:

  • GET /audio_source_tracings — すべてのソース追跡レポートを一覧表示
  • GET /audio_source_tracings/{uuid} — 特定のレポートを取得

フェーズ 4:電子透かし

出所を追跡するためにメディアに不可視の電子透かしを適用するか、既存の電子透かしを検出します。

電子透かしを適用する
POST /watermark/apply
Content-Type: application/json
Authorization: Bearer <API_KEY>
Prefer: wait

{
  "url": "https://example.com/image.png",
  "strength": 0.3,
  "custom_message": "my-organization"
}
パラメーター型必須説明
urlstringはいメディアファイルの HTTPS URL
strengthnumberいいえ電子透かしの強度 0.0~1.0(画像/動画のみ、デフォルト 0.2)
custom_messagestringいいえ埋め込むカスタムメッセージ(画像/動画のみ、デフォルト "resembleai")
  • 同期レスポンスを受け取るには、Prefer: wait ヘッダーを追加します
  • 追加しない場合は、GET /watermark/apply/{uuid}/result をポーリングします
  • レスポンスには、電子透かしを適用したファイルをダウンロードするための watermarked_media URL が含まれます
電子透かしを検出する
POST /watermark/detect
Content-Type: application/json
Authorization: Bearer <API_KEY>
Prefer: wait

{
  "url": "https://example.com/suspect-image.png"
}

音声の検出結果:

{ "has_watermark": true, "confidence": 0.95 }

画像/動画の検出結果:

{ "has_watermark": true }

フェーズ 5:ID — 話者認証(ベータ版)

音声 ID プロファイルを作成し、受信した音声と照合します。

ベータ機能 — プレビュー プログラムへの参加が必要です。アクセスエラーが発生した場合は、ユーザーにその旨を伝えてください。

ID プロファイルを作成する
POST /identity
Content-Type: application/json
Authorization: Bearer <API_KEY>

{
  "audio_url": "https://example.com/known-speaker.wav",
  "name": "Jane Doe"
}
登録済みの ID と照合する
POST /identity/search
Content-Type: application/json
Authorization: Bearer <API_KEY>

{
  "audio_url": "https://example.com/unknown-speaker.wav",
  "top_k": 5
}

レスポンス:

{
  "success": true,
  "item": [
    { "uuid": "...", "name": "Jane Doe", "confidence": 0.92, "distance": 0.08 }
  ]
}

distance が小さいほど一致度が高くなります。confidence が高いほど一致の確度が高くなります。


フェーズ 6:テキスト検出

テキストの内容が AI によって生成されたものか、人間が書いたものかを検出します。

ベータ機能 — detect_beta_user ロール、または dfd_text 製品を含む請求プランが必要です。

テキスト検出を送信する
POST /text_detect
Content-Type: application/json
Authorization: Bearer <API_KEY>

同期(ブロッキング)レスポンスを受け取るには、Prefer: wait ヘッダーを追加します。追加しない場合、ジョブは非同期で実行されるため、ポーリングするかコールバックを使用します。

パラメーター:

パラメーター型必須説明
textstringはい分析するテキスト(最大 100,000 文字)
thinkingstringいいえ常に "low" を使用します(デフォルト)
thresholdfloatいいえ判定しきい値 0.0~1.0(デフォルト:0.5)
callback_urlstringいいえ非同期完了通知用の Webhook URL
privacy_modebooleanいいえtrue の場合、分析後にテキストの内容は保存されません

レスポンス:

{
  "success": true,
  "item": {
    "uuid": "abc-123",
    "status": "completed",
    "prediction": "ai",
    "confidence": 0.91,
    "text_content": "This is some text to analyze.",
    "privacy_mode": false,
    "created_at": "...",
    "updated_at": "..."
  }
}
  • prediction:"ai" または "human" — 判定結果
  • confidence:0.0~1.0。高いほど予測の確度が高くなります
  • status:"processing"、"completed"、または "failed"
結果をポーリングする

Prefer: wait を使用しなかった場合は、status が "completed" または "failed" になるまでポーリングします。

GET /text_detect/{uuid}
Authorization: Bearer <API_KEY>
テキスト検出の一覧を取得する
GET /text_detect
Authorization: Bearer <API_KEY>

チームのページ分割されたテキスト検出結果を返します。

コールバック

callback_url が指定されている場合、完了時に POST が送信されます。

{ "success": true, "item": { ... } }

失敗時:

{ "success": false, "item": { ... }, "error": "Error message here" }

推奨ワークフロー

メディアの完全なフォレンジック分析(最も詳細)

包括的な分析を行うには、すべての機能を組み合わせます。

  1. すべてのフラグを有効にして検出を送信します:
    {
      "url": "https://example.com/suspect.mp4",
      "visualize": true,
      "intelligence": true,
      "audio_source_tracing": true,
      "use_reverse_search": true
    }
    
  2. status: "completed" になるまでポーリングします
  3. metrics/image_metrics/video_metrics を確認して判定します
  4. intelligence.description を確認して、メディアの構造化分析を確認します
  5. 音声に "fake" のラベルが付いている場合は、audio_source_tracing.label を確認してソースプラットフォームを特定します
  6. 不明点があれば、Detect Intelligence で追加の質問をします
  7. 出所が重要な場合は、POST /watermark/detect で電子透かしを確認します
簡易的な真正性チェック(最速)

合否を素早く判定するには:

  1. 最小限の検出を送信します:{ "url": "..." }
  2. 完了するまでポーリングします
  3. label と aggregated_score(音声)、または label と score(画像/動画)を確認します
  4. スコアの意味を添えて結果を報告します
プロベナンスの確認手順(コンテンツクリエイター向け)

コンテンツが本物であることを証明したいクリエイター向けです。

  1. オリジナルコンテンツにウォーターマークを適用します:POST /watermark/apply
  2. ウォーターマーク付きメディアを配布します
  3. 後から、任意のコピーに対してプロベナンスを確認します:POST /watermark/detect

危険信号 — 作業を中断して再評価してください

  • 検出結果なしに本物だと断定する — 視覚や聴覚による確認だけで、メディアが本物か偽物かを決して判断しないでください
  • スコアを無視してラベルだけを報告する — スコア0.51の"fake"ラベルは、スコア0.95の場合とは大きく異なる意味を持ちます
  • ローカルファイルのパスをAPIに送信する — APIには一般公開されているHTTPS URLが必要です(テキスト検出には適用されません)
  • 10万文字を超えるテキストをテキスト検出に送信する — チャンクに分割するか、上限をユーザーに伝えてください
  • 頻繁すぎる間隔でポーリングする — 2秒間隔から始め、指数関数的に間隔を延ばしてください。1秒未満の間隔でループしないでください
  • 検出の完了前にDetect Intelligenceへ質問する — 422エラーが発生します
  • 「本物」と判定された音声のソース追跡を期待する — ソース追跡は"fake"とラベル付けされた音声に対してのみ実行されます
  • ベータ機能(Identity)を本番環境向けとして扱う — ベータ版であることをユーザーに伝えてください
  • 機密性の高いメディアでzero_retention_modeを無視する — ユーザーがメディアを機密または非公開と示した場合は、必ずこのフラグを提案してください
  • フラグを組み合わせて使えるのに、APIを個別に複数回呼び出す — 個別のリクエストを送る代わりに、検出呼び出しでintelligence: trueとaudio_source_tracing: trueを使用してください

結果の提示に関するガイドライン

ユーザーに結果を提示する際は、以下の点に従ってください。

  1. 判定結果を最初に伝える — 「検出結果によると、この音声はAI生成である可能性が高いです(スコア:0.87)」
  2. スコアの意味を説明する — 上記のスコア解釈表を使用してください
  3. 制限事項を伝える — 検出は確率に基づくものであり、絶対的な証明ではありません
  4. 具体的な次のステップを提示する — 適切に、Intelligenceへの問い合わせ、ソース追跡、またはウォーターマークの確認を提案してください
  5. 結論が出ない結果(0.3~0.5)の場合 — 結論が出ない結果であることを明示し、異なるパラメーターを使った追加分析または手動レビューを推奨してください
  6. 検出結果を法的証拠として決して提示しない — 検出結果は分析ツールであり、法科学的な証明ではありません

エラー処理

エラー原因解決方法
400リクエストボディが無効、またはurlが不足しています必須パラメーターを確認してください
401APIキーが無効、または指定されていませんRESEMBLE_API_KEYを確認してください
404検出UUIDが見つかりません作成時のレスポンスに含まれるUUIDを確認してください
422検出が完了していません(Intelligenceの場合)検出がcompletedステータスになるまで待ってください
429レート制限に達しました待機時間を指数関数的に延ばして再試行してください
500サーバーエラー1回再試行してから、ユーザーに報告してください

プライバシーとコンプライアンスに関する注意事項

  • ゼロ保持モード:zero_retention_mode: trueを設定すると、分析後にメディアが自動削除されます。URLは伏せられ、処理完了後にmedia_deletedがtrueに設定されます。
  • テキストプライバシーモード:テキスト検出時にprivacy_mode: trueを設定すると、分析後にテキスト内容が保存されなくなります。
  • データの取り扱い:メディアURLとテキスト内容は、デフォルトで保存されます。GDPRやコンプライアンスへの配慮が必要なワークフローでは、ゼロ保持モード(メディア)またはプライバシーモード(テキスト)を有効にしてください。
  • コールバックのセキュリティ:callback_urlを使用する場合は、エンドポイントがHTTPSであり、受信側で認証されていることを確認してください。

コメント