本稿は公開ページを基にした要件・テストのたたき台です。Nextify の内部API、音声モデル、性能、セキュリティ実装を検証したものではありません。
問題設定
音声制作フローで「音が出た」を成功条件にすると、台本の誤り、声の利用許諾、設定差分、アバターとの口パクずれが承認前に埋もれます。生成処理と、人が公開を許可する処理を別状態にします。
公開情報では Nextify が、音声生成と動画制作の組み合わせを案内しています。AI Speech Generator の説明には台本、声、話速、安定度、感情、アバター同期があり、AI Voice Cloning の説明には録音・音声ファイルのアップロード、カスタム音声、速度・安定度、テキスト入力があります。
要件を分解する
| 区分 | 最低限の記録 | 受け入れ境界 |
|---|---|---|
| 台本 | 本文、言語、確認者 | 事実・商品表現は人が確認 |
| 読み上げ | 声、速度、安定度、感情 | 生成成功は承認ではない |
| クローン | サンプルID、許諾記録、利用目的 | 許諾なしでは選択不可 |
| 映像同期 | アバターID、候補ID、レビュー結果 | 目視・試聴を省略しない |
| 出力 | 承認者、日時、用途 | 権利判断を自動化しない |
状態と型(設計案)
type Status = "draft" | "generated" | "reviewing" | "approved" | "exported";
type VoiceInput =
| { mode: "library"; id: string }
| { mode: "clone"; sampleId: string; consentId: string };
type VoiceJob = {
script: string;
input: VoiceInput;
speed: number;
stability: "creative" | "natural" | "robust";
status: Status;
};
テストケース
- クローンを選び、
consentIdが空なら生成ボタンを無効にする。 - 台本・話速・安定度を変えて再生成したとき、元候補と差分を残す。
- 生成成功後の状態は必ず
reviewingとし、直接exportedへ遷移させない。 - アバター同期を行う候補では、音声候補とアバター候補の両方をレビュー対象に表示する。
- 承認処理では、台本、固有名詞の発音、商品表現、声の許諾、映像との一致を確認項目にする。
it("blocks an unapproved cloned voice", () => {
const job: VoiceJob = {
script: "Draft", input: { mode: "clone", sampleId: "s-1", consentId: "" },
speed: 1, stability: "natural", status: "draft"
};
expect(canGenerate(job)).toBe(false);
});
まとめ
音声生成は、候補を素早く作る入口になり得ます。しかしクローン音声は特に、設定値だけでは足りません。許諾、出所、レビュー、最終承認をデータとして分離すれば、再生成が増えても制作判断を追跡できます。実際の画面仕様やAPI契約は、対象実装を確認してから追加してください。
