公開ページから組み立てた要件・テストのたたき台です。内部API、モデル性能、商用成果、実装の安全性を検証した記事ではありません。
なぜ一つの「生成成功」では足りないのか
広告制作では、音声が生成できたことと、広告が公開可能であることを分ける必要があります。台本の事実確認、声の利用権、商品画像、字幕、掲載比率、音声と映像の同期は、それぞれ別のレビュー対象です。
公開情報では Nextify が広告制作の流れを案内しています。AI Voiceover Generator は台本、言語、スタイル、感情、速度、安定度、avatar・商品映像との同期を説明しています。AI Ad Generator は商品画像、スクリプト、テンプレート、9:16/16:9 などの比率、複数出力を説明しています。
要件をレイヤーに分ける
| レイヤー | 入力 | 合格条件 |
|---|---|---|
| Message | 商品事実、台本、フック | 主張が確認済み |
| Voice | 言語、声、感情、速度、安定度 | 発音と利用権を確認 |
| Visual | 商品画像、avatar、テンプレート | 商品形状と構図を確認 |
| Placement | 9:16、16:9、1:1 | 実際の crop を確認 |
| Output | 候補、revision、レビュー | 承認済みだけ export |
状態モデル(設計案)
type JobStatus = "draft" | "voice_ready" | "asset_ready" | "reviewing" | "approved" | "exported";
type Job = {
scriptRevision: number;
voice: { language: string; source: "library" | "clone"; speed: number };
placement: "9:16" | "16:9" | "1:1";
outputs: string[];
status: JobStatus;
};
voice_ready は音声候補の存在を表すだけで、広告の承認を表しません。exported へ進む前に、別のレビュー状態を必須にします。
テストケース
- 台本の revision が変わったら、旧候補を stale と表示する。
- クローン音声に許諾記録がない場合、生成をブロックする。
- 9:16 から 16:9 に変えたら、crop/字幕/商品位置の再レビューを要求する。
- 複数出力を生成しても、元の商品画像とスクリプト revision を保存する。
- 音声だけが合格しても、商品表現・字幕・映像同期が未確認なら export を許可しない。
it("does not export an unreviewed ad", () => {
const job = { status: "reviewing", outputs: ["v1"] };
expect(canExport(job)).toBe(false);
});
まとめ
音声生成は広告制作の一部であり、広告全体の承認ではありません。入力、差分、revision、レビュー項目を別々に保存すれば、候補が増えても何を変えたかを追跡できます。実際の selector や API 契約は対象実装を確認してから追加してください。
