AI 工具

Descript Overdub:声音授权检查清单

Overdub 用你的声音修口误之前,用同意表门禁:本人或书面授权、平台验证、不用于冒充、写明用途。

BINBHO · 图文教程

Overdub 用你的声音修口误之前,用同意表门禁:本人或书面授权、平台验证、不用于冒充、写明用途。

先看清成品

  • 合规样例 APPROVED;冒充/无授权 → BLOCKED。
  • 3 项 pytest 通过。

合规提醒:Overdub / 声音克隆仅限本人或已获明确授权并完成平台验证的声音,禁止冒充他人。API token 绑定单一 Drive,可消耗 media minutes 与 AI credits;耗尽可能返回 402。导入勿用未授权媒体;YouTube URL 不作 import 源(官方限制)。本文不编造套餐价格。

运行说明:无正式 DESCRIPT_API_TOKEN。A 用 mock 导出转写;B 本地口头禅扫描;C Overdub 同意门禁。未调用真实 Descript API。2026-10-23(Asia/Shanghai)pytest 通过。

做完之后你会得到什么?

成果 说明
overdub_consent.py 同意门禁
样例 JSON ok/bad
test_110c.py 测试

需要准备哪些环境?

项目 说明
Python 3.10+

关键事实

事实 来源
平台要求声音所有者验证;不得冒充 产品重要说明
本 JSON 不能代替 Descript 官方验证流程 重要
组织可把 APPROVED 当作启用 Overdub 流水线的前置 实践

文件结构

110-descript-C-src/
├── overdub_consent.py
├── sample_ok.json
├── sample_bad.json
└── test_110c.py

第 1 步:门禁脚本

#!/usr/bin/env python3
"""Gate Overdub / voice-clone usage: only self or explicitly authorized voices."""
from __future__ import annotations
import argparse, json
from pathlib import Path


def validate(form: dict) -> list[str]:
    errs = []
    if form.get("is_own_voice") is not True and form.get("written_authorization") is not True:
        errs.append("必须是本人声音,或持有声音所有者的书面授权")
    if form.get("owner_identity_verified") is not True:
        errs.append("须完成平台要求的声音所有者验证(以 Descript 产品流程为准)")
    if form.get("impersonation_intent") is True:
        errs.append("禁止用于冒充他人")
    purpose = (form.get("purpose") or "").strip()
    if not purpose:
        errs.append("purpose 必填(说明用途)")
    if form.get("agree_terms") is not True:
        errs.append("须同意 Descript 相关条款")
    return errs


def main(argv=None) -> int:
    ap = argparse.ArgumentParser(description=__doc__)
    ap.add_argument("form_json")
    args = ap.parse_args(argv)
    form = json.loads(Path(args.form_json).read_text(encoding="utf-8"))
    errs = validate(form)
    if errs:
        print("BLOCKED")
        for e in errs: print("-", e)
        return 1
    print("APPROVED")
    return 0

if __name__ == "__main__":
    raise SystemExit(main())

第 2 步:测试

from pathlib import Path
import json, subprocess, sys
from overdub_consent import validate
HERE = Path(__file__).resolve().parent

def test_ok():
    assert validate(json.loads((HERE/"sample_ok.json").read_text())) == []

def test_bad():
    assert len(validate(json.loads((HERE/"sample_bad.json").read_text()))) >= 3

def test_cli():
    assert subprocess.run([sys.executable, str(HERE/"overdub_consent.py"), str(HERE/"sample_ok.json")]).returncode == 0

第 3 步:运行

$ overdub_consent
APPROVED

BLOCKED
- 必须是本人声音,或持有声音所有者的书面授权
- 须完成平台要求的声音所有者验证(以 Descript 产品流程为准)
- 禁止用于冒充他人
- purpose 必填(说明用途)
- 须同意 Descript 相关条款

$ pytest -q
...                                                                      [100%]
3 passed in 0.03s

怎么检查结果?

  • ok → APPROVED。
  • bad → BLOCKED 多条原因。

调试示例

「同事口头同意录一句」。 不够。需要平台验证与可审计授权;脚本要求显式布尔。

常见问题

现象 原因 处理
多音色 每个 Voice 单独表 用途写清
已离职员工 立即停用 撤授权
只要修自己的口误 is_own_voice true 仍要验证

模板规则

  • 无授权不克隆。
  • 不冒充。
  • 保留验证记录。

项目资源

用途 地址
Descript 官网 https://www.descript.com/
API Help(官方) https://help.descript.com/api-and-mcp/api
API 文档(官方) https://dev-docs.descriptapi.com/

声音权是人格权——门禁通过再 Overdub。