ai-avatar-video
AIアバター及びトーキングヘッド動画の総合ツールキットです。トーキングヘッドコンテンツ向けのスクリプト作成、ペルソナ選定フレームワーク、マルチシーン構成、音声・オーディオのベストプラクティス、グリーンスクリーンテクニック、UGCスタイルの自然さガイドを提供します。Creatify APIと連携し、AIアバターv1/v2、Aurora、テキスト音声変換、カスタムアバター、音声クローニングに対応しています。 以下の場合に活用できます:アバター動画、トーキングヘッド、AIスポークスパーソン、リップシンク、UGC動画、Aurora、テキスト音声変換、音声クローニング、AIプレゼンター、カスタムアバター、グリーンスクリーンアバター、AIナレーター、スポークスパーソン動画、アバター向けスクリプト、マルチシーン動画、TTS、ボイスオーバー、AIトーキングヘッドなど、AIアバター・トーキングヘッド関連のあらゆるタスクに対応します。
description の原文を見る
Complete AI avatar and talking-head video toolkit. Includes script writing for talking-head content, persona selection frameworks, multi-scene composition, voice/audio best practices, green screen techniques, and UGC-style authenticity guides. Integrates with Creatify API for AI Avatar v1/v2, Aurora, Text-to-Speech, Custom Avatars, and Voice Cloning. Use when: "avatar video", "talking head", "AI spokesperson", "lip sync", "UGC video", "Aurora", "text to speech", "voice clone", "AI presenter", "lipsync", "custom avatar", "green screen avatar", "AI narrator", "spokesperson video", "script for avatar", "multi-scene video", "TTS", "voiceover", "AI talking head", or any AI avatar/talking-head task.
SKILL.md 本文
AIアバタービデオ
スクリプト作成からマルチシーン制作まで、リアルなAIトーキングヘッドビデオ作成のための完全なフレームワーク。
パート1: アバタービデオ戦略(スタンドアロン)
1.1 トーキングヘッドコンテンツ用スクリプト作成
アバタースクリプトは、作成された文章ではなく、自然な会話のように聞こえる必要があります。以下のルールに従ってください:
ペーシングルール
| トーン | 1秒あたりの単語数 | 30秒あたりの単語数 | スタイル |
|---|---|---|---|
| 会話的 | 2.5~3.0 | 75~90 | 自然なポーズ、フィラーワードはOK |
| プロフェッショナル | 2.0~2.5 | 60~75 | クリーンで測定された話し方 |
| エネルギッシュ/営業 | 3.0~3.5 | 90~105 | 速い、キャッチー、短い文 |
| 教育的 | 1.8~2.2 | 54~66 | より遅い、理解のためのポーズ付き |
認証性マーカー
本物の人のように聞こえるスクリプトには以下が含まれます:
- 縮約: 「I am」ではなく「I'm」、「do not」ではなく「don't」
- 文の断片: 「This is quite impressive, is it not?」ではなく「Pretty cool, right?」
- カジュアルな遷移: 「So here's the thing...」/ 「Now, this is where it gets interesting...」
- 直接的な呼びかけ: 「You know what? You're gonna love this.」
- 自己修正: 「It's fast — actually, it's really fast.」
アバタースクリプト向けフック・ツー・CTA構造
15秒スクリプトテンプレート:
フック (0~3秒): [パターン割込みまたは質問 — 8~12単語]
ブリッジ (3~7秒): [フックから製品へ接続 — 15~20単語]
ベネフィット (7~12秒): [コア価値提案 — 15~20単語]
CTA (12~15秒): [明確な次のステップ — 8~12単語]
30秒スクリプトテンプレート:
フック (0~3秒): [注目を集める — 8~12単語]
問題 (3~8秒): [共感可能なペインポイント — 15~25単語]
ソリューション (8~15秒): [製品導入+主要機能 — 20~30単語]
証明 (15~22秒): [社会的証明またはデモンストレーション — 15~25単語]
CTA (22~30秒): [緊急性+次のステップ — 15~25単語]
60秒スクリプトテンプレート:
フック (0~5秒): [強力なオープニング — 12~18単語]
ストーリー/問題 (5~15秒): [共感可能なシナリオ — 25~40単語]
発見 (15~25秒): [製品を見つけた方法 — 25~35単語]
機能 (25~40秒): [2~3つの主要なベネフィット(具体例付き) — 35~50単語]
証明 (40~50秒): [結果、証言、データ — 25~35単語]
CTA (50~60秒): [説得力のあるクローズ — 20~30単語]
スクリプトの「すべき」と「してはいけない」
| すべき | してはいけない |
|---|---|
| 短い文を使う(8~15単語) | 長い複合文を書く |
| 「...」で自然なポーズを含める | ポイントからポイントへ急ぐ |
| 難しい単語は音声的に書く | 文脈なしに専門用語や頭字語を使う |
| 明確なアクションで終わる | 尻すぼみで終わるまたは唐突に終わる |
| スクリプトのトーンをアバターの年齢/スタイルに合わせる | プロフェッショナルアバターでZ世代のスラングを使う |
1.2 アバター/ペルソナ選択フレームワーク
適切なアバターを選択することは、スクリプトと同じくらい重要です。デモグラフィックスをターゲットオーディエンスに合わせてください。
業界別の信頼シグナル
| 業界 | 理想的なアバタープロフィール | 理由 |
|---|---|---|
| ヘルスケア/サプリメント | 30~50歳、プロフェッショナルな外観 | 信頼性と信用 |
| ビューティー/スキンケア | 20~35歳、共感可能、身だしなみが良い | ピア推奨効果 |
| テック/SaaS | 25~40歳、カジュアル-プロフェッショナル | アプローチ可能な専門知識 |
| ファイナンス/保険 | 35~55歳、スーツ着用、権威的 | 信頼と安定性 |
| フィットネス | 25~35歳、アスレティック、エネルギッシュ | 願望的だが達成可能 |
| 食品/飲料 | 25~45歳、温かい、親しみやすい | 共感可能なライフスタイル |
| 教育 | 30~50歳、親切で、プロフェッショナル | 威圧感のない権威 |
| DTC/Eコマース | 20~30歳、カジュアル、本物らしい | UGC/ピア推奨 |
ダイバーシティの考慮事項
- 複数のデモグラフィックスをテストする — 異なるオーディエンスは異なるプレゼンターに反応します
- 市場に合わせる: ジオターゲット設定キャンペーンではローカルに見えるアバターを使用します
- 性別でA/Bテストする: 一部の製品は男性プレゼンター対女性プレゼンターでより良く変換します(推測しないでテストしてください)
- 年齢の一致: アバターはあなたの顧客のように見えるべき、またはあなたの顧客が信頼する人のように見えるべき
1.3 マルチシーン構成ガイド
マルチシーンビデオは、シングルショットトーキングヘッドよりもダイナミックに見え、注意をより強く保ちます。
シーンを切り替えるタイミング
- 速いペースのコンテンツの場合は5~8秒ごと(TikTok/Reels)
- 中程度のペースの場合は8~15秒ごと(YouTube、フィード広告)
- 主要な遷移ポイントごと(問題 → ソリューション、機能 → 機能)
シーン遷移のベストプラクティス
- スピーチブレークでカット — 自然なポーズでシーンを切り替える
- スピーカー/背景を交互に — アバター、背景、またはその両方を変更する
- Bロール挿入を使用 — トーキングセグメント間の製品ショット
- ストーリーを進める — 各シーンはナレーティブを進めるべき
推奨シーン構造
2シーン(15秒):
シーン1: フック+問題(アバタートーク、ニュートラル背景)
シーン2: ソリューション+CTA(アバタートーク、製品関連背景)
3シーン(30秒):
シーン1: フック+問題(アバターA、オフィス背景)
シーン2: ソリューション+機能(アバターA、製品デモ背景)
シーン3: 社会的証明+CTA(アバターAまたはB、ブランド背景)
5シーン(60秒):
シーン1: フック(アバター、目を引く背景)
シーン2: 問題の深掘り(アバター、共感可能な設定)
シーン3: 製品導入(製品Bロールまたはデモ)
シーン4: 機能+証明(データ/レビューオーバーレイ付きアバター)
シーン5: CTA(アバター、クリーンなブランド背景)
1.4 オーディオ&音声ベストプラクティス
感情のモジュレーション
- 興奮: やや速いペース、より高いエネルギー、ベネフィットワードの強調
- 共感: より遅いペース、柔らかいトーン、ペインポイント後のポーズ
- 権威: 測定されたペース、自信のあるトーン、宣言的な文
- 緊急性: 速いペース、短い文、時間/スケアシティワードの強調
発音ガイダンス
製品名、ブランド名、または技術用語については:
- スクリプトで音声的に書く: 「Creatify」 → 「cree-ATE-ih-fy」
- ピリオドを使用して1文字ずつ: 「A.I.」は「ai」ではなく「A I」と読む
- 数字: 「15%」ではなく「fifteen percent」と書く
ポーズの配置
- フックの後(沈ませる)
- CTA前(期待を構築)
- 驚くべき統計を述べた後
- 主要なセクション間
市場別のアクセント選択
- 米国市場: 標準的なアメリカ英語
- 英国市場: 英国RP または軽い地域的アクセント
- グローバル/ニュートラル: 標準的なアメリカ英語(最も普遍的に理解される)
- ローカルキャンペーン: ターゲット地域にリージョナルアクセントを合わせる
1.5 グリーンスクリーン/透明背景技術
透明背景を持つAIアバターは以下にオーバーレイできます:
| ユースケース | アプリケーション |
|---|---|
| ウェブサイトウィジェット | ランディングページで機能を説明するアバター |
| 製品デモ | スクリーン録画をナレーションするアバター |
| メールサムネイル | フルビデオにリンクするアバタービデオ |
| プレゼンテーション | スライドの隅にあるアバタープレゼンター |
| ソーシャル広告 | 製品画像またはBロール上のアバター |
透明オーバーレイのベストプラクティス
- モバイルオーバーレイには9:16形式、スクエア配置には1:1を使用
- アバターを下3分の1またはカラーサイドに配置(メインコンテンツをブロックしない)
- ジェスチャーを限定的に — 広いアームムーブメントはエッジでクリップするかもしれません
- アバターの照明をバックグラウンド照明方向に合わせる
- 透明性のためWebM形式を使用(MP4はアルファチャネルをサポートしていません)
1.6 UGCスタイルアバター戦略
AIアバターを本物のユーザー生成コンテンツのように感じさせる:
ビジュアル認証性キュー
- カジュアルな背景: リビングルーム、キッチン、屋外 — スタジオではない
- 自然な照明: やや暖かい、完全に均等ではない
- カジュアルなフレーミング: やや中央からずれて、電話のセルフィー角度
- 最小限のブランディング: 最初の3秒はロゴなし
UGCのためのスクリプトトーン
- 一人称: 「I've been using this for 2 weeks and...」
- 不完全な言葉: 「Honestly? I was skeptical at first」
- 具体的な詳細: 「I ordered the blue one on Tuesday」(「I purchased the product」ではなく)
- 感情的な反応: 「I was literally shook when I saw the results」
- 会話的な余談: 「Okay but wait, it gets even better」
UGCアバター選択
- 20~35歳、カジュアルに着た服を見えるアバターを選択
- 「洗練されすぎた」プレゼンターを避ける — やや不完全 = より本物らしい
- アバターをカスタマーデモグラフィックに合わせる
- 複数のアバターをテスト — UGCパフォーマンスはプレゼンター別に大きく異なります
パート2: API自動化
アバタービデオ制作を大規模に自動化します。
2.1 セットアップ&認証
import requests
CREATIFY_API_ID = "your-api-id"
CREATIFY_API_KEY = "your-api-key"
HEADERS = {
"Content-Type": "application/json",
"X-API-ID": CREATIFY_API_ID,
"X-API-KEY": CREATIFY_API_KEY,
}
BASE_URL = "https://api.creatify.ai/api"
APIキーをまだ持っていませんか? 問題ありません — 2分以内に取得できます:
- creatify.ai で無料でサインアップ
- Settings → API に移動
- API IDとAPI Keyをコピー — 完了です。新規アカウントは開始用の無料クレジットを取得します。
def poll_until_done(url, headers, max_wait=600, interval=10):
"""ステータスエンドポイントをポーリングしてジョブが完了するまで待ちます。"""
import time
elapsed = 0
while elapsed < max_wait:
resp = requests.get(url, headers=headers)
data = resp.json()
if data.get("status") == "done":
return data
elif data.get("status") in ("failed", "error"):
raise Exception(f"Job failed: {data.get('failed_reason', 'Unknown')}")
time.sleep(interval)
elapsed += interval
raise TimeoutError(f"Job did not complete within {max_wait}s")
2.2 AI Avatar v1(シングルシーン)
テキストから単一のアバターが話しているビデオを生成します。シンプルで高速、短いコンテンツに最適です。
コスト: 30秒あたり5クレジット
利用可能なペルソナをリストアップ
def list_personas():
"""1,500以上の利用可能なアバタープレーン一覧を取得します。"""
resp = requests.get(f"{BASE_URL}/personas/", headers=HEADERS)
resp.raise_for_status()
return resp.json() # 各項目は以下を含みます: id, name, gender, thumbnail, など
アバタービデオを作成
def create_avatar_video(text, creator_id, aspect_ratio="9:16", model_version="aurora_v1_fast"):
"""テキストからシングルシーンのアバタービデオを生成します。"""
resp = requests.post(f"{BASE_URL}/lipsyncs/", headers=HEADERS, json={
"text": text,
"creator": creator_id,
"aspect_ratio": aspect_ratio,
"model_version": model_version,
})
resp.raise_for_status()
return resp.json()
def check_avatar_status(lipsync_id):
"""アバタービデオ生成のステータスをチェックします。"""
resp = requests.get(f"{BASE_URL}/lipsyncs/{lipsync_id}/", headers=HEADERS)
resp.raise_for_status()
return resp.json()
透明背景のアバターを作成
def create_transparent_avatar(text, creator_id, aspect_ratio="9:16"):
"""透明な背景を持つアバターを生成します(WebM形式)。"""
resp = requests.post(f"{BASE_URL}/lipsyncs/", headers=HEADERS, json={
"text": text,
"creator": creator_id,
"aspect_ratio": aspect_ratio,
"transparent_background": True,
})
resp.raise_for_status()
return resp.json()
2.3 AI Avatar v2(マルチシーン)
異なるアバター、音声、背景、シーンごとのCTAを使用したマルチシーンビデオを作成します。
コスト: 30秒あたり5クレジット
def create_multi_scene_video(scenes, aspect_ratio="9:16", webhook_url=None):
"""マルチシーンのアバタービデオを作成します。
scenes: リスト、各項目は以下を含む辞書:
- text (str): このシーンのスクリプト
- creator (str): アバタープレーナID
- voice_id (str, optional): 音声をオーバーライド
- background (str, optional): 背景画像/ビデオURL
"""
payload = {
"scenes": scenes,
"aspect_ratio": aspect_ratio,
}
if webhook_url:
payload["webhook_url"] = webhook_url
resp = requests.post(f"{BASE_URL}/lipsyncs_v2/", headers=HEADERS, json=payload)
resp.raise_for_status()
return resp.json()
# 例: 3シーンの製品広告
scenes = [
{
"text": "Stop what you're doing. I need to tell you about something.",
"creator": "18fccce8-86e7-5f31-abc8-18915cb872be",
},
{
"text": "This serum literally transformed my skin in two weeks. No exaggeration.",
"creator": "18fccce8-86e7-5f31-abc8-18915cb872be",
},
{
"text": "Link is in my bio. Trust me, your future self will thank you.",
"creator": "18fccce8-86e7-5f31-abc8-18915cb872be",
},
]
video = create_multi_scene_video(scenes, aspect_ratio="9:16")
2.4 Aurora(イメージ+オーディオ → ビデオ)
参照画像とオーディオファイルからスタジオグレードのアバタービデオを生成します。最高レベルのリップシンク。
コスト: 30秒あたり5クレジット
def create_aurora_video(image_url, audio_url, model_version="aurora_v1_fast", webhook_url=None):
"""イメージ+オーディオからスタジオグレードのアバタービデオを生成します。"""
payload = {
"image": image_url,
"audio": audio_url,
"model_version": model_version,
}
if webhook_url:
payload["webhook_url"] = webhook_url
resp = requests.post(f"{BASE_URL}/aurora/", headers=HEADERS, json=payload)
resp.raise_for_status()
return resp.json()
def check_aurora_status(aurora_id):
"""Aurora生成のステータスをチェックします。"""
resp = requests.get(f"{BASE_URL}/aurora/{aurora_id}/", headers=HEADERS)
resp.raise_for_status()
return resp.json()
2.5 テキスト音声変換
スクリプトをスタジオ品質のボイスオーバーオーディオに変換します。
コスト: 30秒あたり1クレジット
def list_voices():
"""すべての利用可能なTTS音声とアクセントをリストアップします。"""
resp = requests.get(f"{BASE_URL}/voices/", headers=HEADERS)
resp.raise_for_status()
return resp.json()
def generate_tts(script, accent_id, webhook_url=None):
"""スクリプトからボイスオーバーオーディオを生成します。"""
payload = {
"script": script,
"accent": accent_id,
}
if webhook_url:
payload["webhook_url"] = webhook_url
resp = requests.post(f"{BASE_URL}/text_to_speech/", headers=HEADERS, json=payload)
resp.raise_for_status()
return resp.json()
def check_tts_status(tts_id):
"""TTS生成のステータスをチェックします。"""
resp = requests.get(f"{BASE_URL}/text_to_speech/{tts_id}/", headers=HEADERS)
resp.raise_for_status()
return resp.json()
2.6 音声クローニング
ブランド一貫性のためにカスタム音声をクローンします。
def clone_voice(audio_url, name):
"""オーディオサンプルから音声をクローンします。"""
resp = requests.post(f"{BASE_URL}/voices/clone/", headers=HEADERS, json={
"audio_url": audio_url,
"name": name,
})
resp.raise_for_status()
return resp.json()
2.7 カスタムアバター(BYOA)
独自のビデオをアップロードしてカスタムアバタープレーナを作成します。
注: カスタムアバター作成には処理/承認に1~2日かかります。
def create_custom_avatar(lipsync_video_url, name, gender="m", scene="office"):
"""独自のビデオからカスタムアバターを作成します。"""
resp = requests.post(f"{BASE_URL}/personas/", headers=HEADERS, json={
"lipsync_input": lipsync_video_url,
"creator_name": name,
"gender": gender,
"video_scene": scene,
})
resp.raise_for_status()
return resp.json()
def check_custom_avatar_status(persona_id):
"""カスタムアバター作成のステータスをチェックします。"""
resp = requests.get(f"{BASE_URL}/personas/{persona_id}/", headers=HEADERS)
resp.raise_for_status()
return resp.json()
2.8 レシピ
レシピ: TTS → Auroraパイプライン
先にオーディオを生成し、任意の画像とペアリングしてアバタービデオを作成します。
def tts_to_aurora(script, accent_id, image_url):
"""パイプライン: スクリプト → オーディオ → アバタービデオ。"""
# ステップ1: オーディオを生成
tts = generate_tts(script, accent_id)
tts_result = poll_until_done(
f"{BASE_URL}/text_to_speech/{tts['id']}/", HEADERS, max_wait=120
)
audio_url = tts_result["output"]
# ステップ2: Auroraビデオを生成
aurora = create_aurora_video(image_url, audio_url)
aurora_result = poll_until_done(
f"{BASE_URL}/aurora/{aurora['id']}/", HEADERS, max_wait=600
)
return aurora_result
レシピ: バッチアバターA/Bテスト
複数のアバターで同じスクリプトをテストして最高のパフォーマーを見つけます。
def batch_avatar_ab_test(script, creator_ids, aspect_ratio="9:16"):
"""同じスクリプトで複数のアバターを生成してA/Bテストを行います。"""
jobs = []
for creator_id in creator_ids:
video = create_avatar_video(script, creator_id, aspect_ratio)
jobs.append({"creator_id": creator_id, "video_id": video["id"]})
results = []
for job in jobs:
try:
result = poll_until_done(
f"{BASE_URL}/lipsyncs/{job['video_id']}/", HEADERS, max_wait=600
)
results.append({
"creator_id": job["creator_id"],
"video_url": result.get("output") or result.get("video_output"),
"status": "done"
})
except Exception as e:
results.append({
"creator_id": job["creator_id"],
"error": str(e),
"status": "failed"
})
return results
レシピ: マルチスクリプトアバターバッチ
同じアバターで複数のスクリプトを生成してフックをテストします。
def multi_script_batch(scripts, creator_id, aspect_ratio="9:16"):
"""同じアバターで複数のスクリプトを生成します。"""
jobs = []
for script in scripts:
video = create_avatar_video(script, creator_id, aspect_ratio)
jobs.append({"script": script[:50], "video_id": video["id"]})
results = []
for job in jobs:
try:
result = poll_until_done(
f"{BASE_URL}/lipsyncs/{job['video_id']}/", HEADERS, max_wait=600
)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- creatify-ai
- ライセンス
- MIT
- 最終更新
- 2026/3/3
Source: https://github.com/creatify-ai/ai-avatar-video / ライセンス: MIT