Dayward AI
Week 2 · D11About 6 hours

Quality Control and Compliance: Machine Review, Content Safety, Generated-Content Labeling, and Copyright Boundaries

Use a vision model to automatically catch flaws in a finished cut, put content-safety checks into the pipeline, and land the two hard lines — generated-content labeling and copyright — in the export step.

Today's goals 0/3

Sign in to tick these off and save your progress.

今日目标

  1. 能用视觉模型对生成结果做可判定的质量检查,并把不合格的镜头自动打回重做
  2. 能说清内容安全审核在流水线里该放几道、分别放在哪
  3. 能说清生成内容标识的显式与隐式要求,并在导出环节把它们做出来

昨天的审核台让人能挑毛病了,今天把其中能交给机器的那部分交出去,并且把上线前必须过的两条硬线补上。读完回到页面顶部把这三条勾掉。

小白版讲解

质检与送审:机器能审什么

剧组里有两道流程常被外行混在一起:一道叫质检,看的是「拍砸了没有」;一道叫送审,看的是「能不能播」。前者由制片和剪辑自己做,后者要过外部的规则。它们的判据完全不同——一条画面崩坏的镜头质检不过但送审无所谓,一条画面精美却出现真实明星脸的镜头质检满分但送审直接毙掉。

生成式流水线把这两道都要做,而且都得自动化,因为量太大了。五集两百个镜头,靠人逐帧看是不可能的。

先说质检。机器现在能审的东西,按「本地量得出来」和「必须让模型看图」分成两类,这个分类是今天最重要的一条:

本地量得出来的(客观项):分辨率对不对、音画差多少毫秒、字幕一屏放不放得下、配音响度落没落在合理区间。这四项用 ffprobe 和几行算术就能得出确定的数字,不需要任何模型,也不会有两次跑出不同结果。

必须让模型看图的(主观项):角色一致性、画面崩坏(多手多指、结构错乱、明显糊)。这类判断本地没有可靠的代理指标——有人试图用平均色距离来近似角色一致性,实测下来噪声大到没法用,它测不出脸,只能测出光线换了。

这个分类的价值在于账算得清:客观项的结果是确定的,出问题一定是文件真有毛病;主观项的结果带不确定性,出问题可能是模型看错了。把两类混成一个总分,事故来的时候你分不清该修文件还是该修提示词。

让评审可判定

「这一镜好不好看」是没法自动判定的,因为它不是一个可以判真假的命题。要让机器审,第一步永远是把它拆成一组能打分的检查项,每一项都满足三个条件:有明确的测量对象、有明确的阈值、有明确的修正动作

第三个条件最容易漏,但它才是关键。一项检查如果不合格却说不出「那该怎么办」,这项检查就是摆设——你只能记一行日志然后继续往下走。

拿字幕举例,把「字幕会不会出框」拆成两个可测的量:单条字幕的字数,以及每秒要读的字数。竖屏短剧一屏大概放得下二十个字,人眼一秒钟舒服地读六个字左右。这两个阈值是本课定的,不是行业标准,你该按自己的字号和目标人群调。而它对应的修正动作非常具体:裁剪台词

qc.js
// 竖屏一屏放得下的字数上限,以及一秒钟人眼读得完的字数上限。阈值按你的字号调。
const MAX_SUBTITLE_CHARS = 20
const MAX_CHARS_PER_SECOND = 6
 
// 三档给分:合格 5 分,接近 3 分,不合格 1 分。低于 3 分就打回。
const scoreOf = (ok, near) => (ok ? 5 : near ? 3 : 1)
 
function checkSubtitleFit(text, durationSec) {
  const perSecond = Number((text.length / Math.max(1, durationSec)).toFixed(2))
  const ok = text.length <= MAX_SUBTITLE_CHARS && perSecond <= MAX_CHARS_PER_SECOND
  const near = text.length <= MAX_SUBTITLE_CHARS + 4 && perSecond <= MAX_CHARS_PER_SECOND + 2
  return {
    id: 'subtitle-fit',
    score: scoreOf(ok, near),
    objective: true,
    detail: `${text.length} 字 / ${durationSec} 秒 = 每秒 ${perSecond} 字`,
  }
}

主观项交给模型的时候,有一条铁律:要求它只回一个结构化的结论,并且解析不出来时绝不当成通过

模型答不上来有很多种形态——多说了两句客套话、JSON 少了个括号、分数给成了「四到五分」。这些情况的正确处理是把这一项标成「无结论、需人工」,而不是默认放行。把「模型说没问题」和「模型没答上来」混为一谈,是自动质检里最容易埋进去的事故:你的报告上会一片绿,而真正崩坏的镜头正好是模型看糊涂的那些。

reviewer.js
async function review(shot, facts) {
  const prompt = [
    '你是短剧质检员。只输出一个 JSON,形如 {"score":1到5的整数,"detail":"一句话"}。',
    `画面描述:${shot.visual};运镜:${shot.camera}`,
    `本地已测得:${facts.map((f) => `${f.id}=${f.score}`).join(',')}`,
    '请就角色一致性与画面是否崩坏打分。',
  ].join('\n')
 
  const r = await text.complete({ user: prompt, temperature: 0 })
  try {
    const parsed = JSON.parse(r.text.slice(r.text.indexOf('{'), r.text.lastIndexOf('}') + 1))
    const score = Number(parsed.score)
    if (!Number.isInteger(score) || score < 1 || score > 5) throw new Error('分数不在 1 到 5')
    return { id: 'visual-integrity', score, objective: false, detail: String(parsed.detail ?? '') }
  } catch {
    // 关键:解析不出来 = 本项无结论,需人工复核,绝不是通过
    return { id: 'visual-integrity', score: 0, objective: false, detail: '模型没给出可解析的分数' }
  }
}

前置一道,后置一道

内容安全要放几道?答案是两道,而且它们防的是完全不同的事。

前置那道查的是你要发出去的提示词。 它省的是钱和账号:违规的提示词发过去,轻则命中厂商审核被拒(MiniMax 这边返回 1026 或 1027),白等一轮;重则触发风控。前置检查是一层本地词表加规则,几毫秒,拦住一条就省一次调用。

关键在于拦下之后要给替代方案,而不是抛个异常让整条流水线停在这儿。实验里的做法是把命中的片段替换成安全表述并打印出来,让流程继续跑,同时把这次拦截记进报告。人回头能看到「哪一句被改了、改成了什么」。

后置那道查的是厂商还给你的成片。 它比前置更重要,理由很直白:提示词干净不代表结果干净。生成模型会自己加戏,你写「便利店门口」,它可能给你摆一整面货架的品牌包装。前置只能保证你没主动要,后置才能保证观众看到的东西没问题。

后置这道要查三样:成片的字幕文本再过一遍词表、隐式标识写进去了没有、显式标识在不在。后两样是下一节的内容。

生成内容标识:显式与隐式

这是本章唯一一段有法律硬约束的内容,所以口径要严格照官方原文。

《人工智能生成合成内容标识办法》由四部门联合发布,自 2025 年 9 月 1 日起施行。它把标识分成两类,定义逐字如下:

显式标识,是指「在生成合成内容或者交互场景界面中添加的,以文字、声音、图形等方式呈现并可以被用户明显感知到的标识」。

隐式标识,是指「采取技术措施在生成合成内容文件数据中添加的,不易被用户明显感知到的标识」。

两条要点必须记住:第一,服务提供者应当在生成合成内容的文件元数据中添加隐式标识;第二,显式与隐式两者都要做,不是二选一。另外,任何组织和个人不得恶意删除、篡改、伪造、隐匿标识

配套的强制性国家标准是 GB 45438-2025《网络安全技术 人工智能生成合成内容标识方法》,与办法同日实施。

隐式标识落地起来其实很简单——写进容器元数据,-c copy 不重新编码,几十毫秒:

BashBash
ffmpeg -v error -i joined.mp4 -i episode-1.srt \
  -c copy -c:s mov_text -metadata:s:s:0 language=chi \
  -metadata "comment={\"generatedBy\":\"ai\",\"runId\":\"run-20260907-001\"}" \
  -metadata "title=AI 生成合成内容" \
  episode-1.mp4

写完必须读回来验证,写进去没读过等于没写

BashBash
ffprobe -v error -show_entries format_tags=comment \
  -of default=noprint_wrappers=1:nokey=1 episode-1.mp4

显式标识这边有个工程上的坑:最稳的做法是把「本片由 AI 生成合成」烧进画面,而烧字需要 ffmpeg 带 libfreetype,也就是 drawtext 滤镜。很多最小编译的 ffmpeg 没有它。所以程序要先探测能力再降级

BashBash
ffmpeg -hide_banner -filters | grep -w drawtext

探测到就烧录;探测不到就把标识作为字幕轨的第一条送出去,并且把降级这件事明确打印出来,而不是悄悄少做一件合规动作。字幕轨的方案在很多播放场景下能被看到,但它可以被关掉,不能算完全等价——正式发布前必须换成烧录版本。这一点跟第六天讲的能力探测是同一个套路。

顺便说一条广电的要求:网络微短剧按投资额分成重点、普通、其他三类分级审核,上线前片头须标注许可证号或备案号。这条和上面的 AI 标识是两回事,两个都要做。

版权的三个雷区

除了标识,还有三条线不能碰,每一条都足以让整部片子下架。

第一是形象权。不得生成真实人物的形象。 这条最容易在提示词里无意踩到——「让男主长得像某某某」这种写法必须在前置检查里拦掉。实验的规则表里第一条就是它。

第二是音乐。 背景音乐是短剧被投诉最多的地方,因为它太容易随手拿了。判据很简单:除非你能拿出授权凭证,否则不要用。可选的路是买正规曲库的商用授权、用明确标注可商用的素材、或者用生成模型自己做,注意后者也要看清楚服务条款里对商用的规定。

第三是素材来源。 参考图、定妆图、场景图如果来自网上随手搜的图片,你就把别人的版权问题接了过来。本课全线的素材都是生成的或者自己拍的,这不是洁癖,是把风险挡在源头。

这三条的共同点是:它们都不是技术问题,但都必须由技术手段落地——写进前置检查的规则表、写进素材库的来源字段、写进导出前的检查清单。靠人记是记不住的。

止损点:重做几次之后该叫人

最后一件事,也是自动质检最容易失控的地方:不合格就打回重做,那重做几次算够?

先说一个必须写进代码的判断:打回不等于原样再来一次。同样的输入重做十次还是同样的结果——尤其是把温度调到零或者种子固定之后。所以每一项不合格都要对应一个具体的修正动作:字幕超限就裁剪台词,音画不同步就按台词长度回写镜头时长。找不到修正动作的检查项,重做就是纯烧钱。

然后是次数上限。本课定在两次,理由是这条线上最贵的是视频,一个镜头重做三次的成本已经超过让人看一眼的成本了。超过上限之后不是继续试,也不是放行,而是把这一镜标成「需要人工」,连同分数、打回次数、每一项的具体结论一起写进报告,推到昨天那个审核台上去。

stoploss.js
const PASS_SCORE = 3
const MAX_REDO = 2
 
function summarize(shotId, scores, redo) {
  const min = Math.min(...scores.map((s) => s.score))
  const passed = min >= PASS_SCORE
  // 三种结论:过了、打回重做、重做到上限仍不达标就停手交人工
  const verdict = passed ? 'pass' : redo >= MAX_REDO ? 'needs-human' : 'redo'
  return { shotId, scores, min, passed, redo, verdict }
}
 
// 打回要带修正动作,否则重做多少次都一样
function autoFix(shot, qc) {
  for (const c of qc.scores) {
    if (c.score >= PASS_SCORE) continue
    if (c.id === 'subtitle-fit') shot.dialogue[0].text = shot.dialogue[0].text.slice(0, 20)
    if (c.id === 'av-sync') shot.durationSec = Math.round(shot.dialogue[0].text.length * 0.22)
  }
}

阈值定在几分才和人的判断一致?这就要用上昨天攒的那份结构化审核记录了:拿人打过 verdict 的那批镜头回测,看阈值定在几分时机器的结论和人的重合度最高。没有那份数据,阈值就只能拍脑袋。

源码导读

动手实验

🧪 D11 实验:自动质检与合规标识环节,含不合格镜头的自动打回

Code location: labs/ai-drama-pipeline/day-11-qc-compliance

验收标准:

  1. 三镜各打出 5 项分数(4 项本地客观测量加 1 项模型评审),报告写进 qc-report.json。
  2. 用 INJECT=lowscore 跑一遍,台词过长的那一镜被自动打回,修正后重新跑并最终通过。
  3. 同一次运行里,高崩坏风险的那一镜重做到上限仍不达标,被标成需要人工而不是无限重试。
  4. 前置检查拦下「和真人明星一模一样」这类描述,打印替代写法并改写后继续跑。
  5. 成片用 ffprobe 能读出隐式标识;显式标识按 drawtext 能力探测落地,降级时打印提示。

故障注入用全课统一的 INJECT 环境变量,本天只有一个取值:

BashBash
MOCK=1 pnpm start                    # 正常路径:三镜都合格
INJECT=lowscore MOCK=1 pnpm start    # 第二镜台词超长、第三镜构图高风险,看打回与止损

注入只改这两镜的输入,质检、打回、止损、标识这些逻辑照常执行。starter 挖了四个练习点,加上注入跑会看到七项核对里有五项是叉。跑完之后建议自己用上面那条 ffprobe 命令验一遍成片,亲手确认标识真的在文件里。

  1. 先用 INJECT=lowscore 跑 solution,看清楚三镜分别走了哪条路:一镜直接通过、一镜打回后通过、一镜到上限交人工。
  2. 实现字幕出框检查,观察那一镜从满分变成不合格并被打回。
  3. 补上止损点判定,确认高风险那一镜重做两次之后被标成需要人工而不是放行。
  4. 实现提示词前置检查,看它拦下违规描述并打印替代写法。
  5. 实现隐式标识写入,用 ffprobe 把它读回来,确认后置检查不再报缺标识。

面试题

今天三道题在下方题库区,侧重把主观质量变成可判定检查项、审核的前置与后置分工、生成内容标识的落地方式。展开后先看分析过程再看要点——照着推导练,比背要点管用。标注了国内高频与海外高频,方便按目标市场取舍。

检查清单与明日预告

  • 能用视觉模型对生成结果做可判定的质量检查,并把不合格的镜头自动打回重做
  • 能说清内容安全审核在流水线里该放几道、分别放在哪
  • 能说清生成内容标识的显式与隐式要求,并在导出环节把它们做出来
  • 能区分本地量得出来的客观项与必须让模型看图的主观项,并说出为什么要分开记账
  • 能说出打回重做必须带修正动作、以及止损点为什么必须存在
  • 实验的 5 条验收标准全部通过
  • 3 道面试题不看要点也能答出至少 2 道

明天 D12 我们把账本摊开:按环节拆成本,给每个环节配一条模型路由策略,用缓存和降级把钱压下来,再给每次运行装一个真会踩刹车的预算熔断。顺序是有意的——今天刚给流水线装上会自动重做的能力,而自动重做正是最容易把预算烧穿的机制;先有质检再谈成本,你才知道那些钱是花在哪一次重做上的。

Interview questions

  • How do you turn a subjective judgement like visual quality into an automatable check?怎么把画面质量这种主观判断变成可自动判定的检查?
    Common in ChinaCommon overseasIntermediate#quality-check#evaluation#multimodal

    How to reason about it · think before answering

    1. This tests decomposition. Answering just use a multimodal model to score it covers only the lazy half; the interviewer wants to see you turn a non-falsifiable statement into checkable ones.
    2. Step one is classification: split checks into locally measurable and must-be-seen-by-a-model. Resolution, audio-video duration delta, subtitle length and reading rate, and loudness all have deterministic answers from ffprobe plus arithmetic. Character consistency and visual breakdown have no reliable local proxy.
    3. The classification pays off in accounting: a failing objective check means the file really is wrong, while a failing subjective one might just mean the model misread. Merge them into one score and you cannot tell whether to fix the file or the prompt.
    4. Step two gives every check three things: what is measured, the threshold, and the corrective action. The third is the one people skip and the one that matters, because a check that fails without a prescribed fix is decoration.
    5. Step three handles model-side uncertainty: demand a structured verdict, and when it cannot be parsed mark the item as no-conclusion, needs-human, never as a pass. Conflating the model said fine with the model did not answer is the classic automated-QC incident.
    6. Expected follow-up: how to set thresholds. Backtest against human-reviewed samples and pick the threshold where machine and human verdicts agree most. Without that data you are guessing.

    分析过程 · 先想清楚再作答

    1. 这题在考拆解能力。直接答「让多模态模型打分」只答了一半,而且是偷懒的那一半——面试官想看你怎么把一个不可判真假的命题拆成可判定的。
    2. 第一步是分类:把检查项分成「本地量得出来的」和「必须让模型看图的」。分辨率、音画时长差、字幕字数与每秒字数、配音响度,这四类用 ffprobe 加几行算术就有确定答案;角色一致性、画面崩坏则本地没有可靠代理指标。
    3. 分类的价值是账算得清:客观项出问题一定是文件真有毛病,主观项出问题可能是模型看错了。混成一个总分,事故来的时候分不清该修文件还是修提示词。
    4. 第二步是给每一项配齐三样:测量对象、阈值、**修正动作**。第三样最容易漏也最关键——一项检查不合格却说不出该怎么办,它就是摆设,你只能记一行日志继续往下走。
    5. 第三步是处理模型那一侧的不确定性:要求它只返回结构化结论,并且**解析不出来时标成无结论、需人工,绝不当成通过**。把「模型说没问题」和「模型没答上来」混为一谈,是自动质检里最常见的事故。
    6. 可预期的追问是「阈值怎么定」。用人工审核攒下来的带结论的样本回测,看阈值定在几分时机器结论与人的重合度最高;没有这份数据就只能拍脑袋。

    Key points

    • Classify first: objective local measurements (resolution, av delta, subtitle density, loudness) versus model-only judgements (character consistency, visual breakdown).
    • Give every check a measurement, a threshold and a corrective action; a check with no action is decoration.
    • Require a structured verdict from the model, and treat unparseable output as needs-human, never as a pass.
    • Set thresholds by backtesting against human-reviewed samples.
    • An objective failure means the file is wrong; a subjective failure may mean the model misread. That split drives triage.

    答题要点

    • 先分类:本地量得出来的客观项(分辨率、音画差、字幕密度、响度)与必须看图的主观项(角色一致性、画面崩坏)分开记账。
    • 每一项配齐三样:测量对象、阈值、修正动作;没有修正动作的检查项是摆设。
    • 模型评审要求返回结构化结论,解析失败标成需人工,绝不默认通过。
    • 阈值靠人工审核样本回测确定,不拍脑袋。
    • 客观项失败说明文件有问题,主观项失败可能是模型看错——这个区分决定了排查方向。
  • Should content safety checks run before generation or after? Why both?内容安全审核放在生成前还是生成后?为什么两边都要有?
    Common in ChinaCommon overseasBasic#content-safety#moderation#pipeline-design

    How to reason about it · think before answering

    1. The answer is both, but the marks come from explaining that the two gates defend against different things. Saying defence in depth is safer earns nothing.
    2. The pre-check inspects the prompt you are about to send, and it saves money and account standing: a violating prompt gets rejected by the vendor's own moderation (1026 or 1027 at MiniMax), wasting a round trip, and repeated hits can trip risk controls. It is a local word list plus rules, milliseconds, and each catch saves a call.
    3. The post-check inspects what the vendor returned, and it matters more, because a clean prompt does not imply a clean result. Generative models improvise: you ask for a convenience store and get a shelf of branded packaging. The pre-check only proves you did not ask for it; the post-check protects the viewer.
    4. When the pre-check fires, do not just throw. Offer a replacement and keep going: swap the matched fragment for safe wording, print it, and record it so a human can see which line was changed and how.
    5. Call out the common misconception: vendor moderation does not replace yours. The vendor moderates its own risk, with different boundaries, and publishing liability sits with you.
    6. Expected follow-up: what to do when the post-check fails. Triage by severity: auto-fixable issues get fixed and only that node reruns; anything else blocks publishing and goes to a human. Never wave it through because the money is already spent.

    分析过程 · 先想清楚再作答

    1. 这题的正确答案是「两边都要」,但拿分的关键不在结论,而在你能不能说清两道关**防的是不同的事**。答成「双重保险更稳妥」就是没答。
    2. 前置那道查的是你要发出去的提示词,省的是钱和账号:违规提示词发过去会命中厂商审核被拒(MiniMax 这边返回 1026 或 1027),白等一轮,严重的会触发风控。它是一层本地词表加规则,几毫秒,拦一条省一次调用。
    3. 后置那道查的是厂商还给你的成片,它更重要,理由是**提示词干净不代表结果干净**——生成模型会自己加戏,你写便利店门口,它可能给你摆一整面货架的品牌包装。前置只保证你没主动要,后置才保证观众看到的没问题。
    4. 前置被拦下之后不能只抛异常,要给替代方案并让流程继续:把命中片段替换成安全表述、打印出来、记进报告,人回头能看到哪一句被改成了什么。
    5. 还要点破一个常见误解:**厂商的审核不能替代你的审核**。厂商审的是它自己的合规风险,边界跟你的业务不同;而且发布责任在你,出事找的是发布者。
    6. 可预期的追问是「后置发现问题怎么办」。按严重程度分流:能自动修的(比如字幕里的词)就修完重跑那一个节点,修不了的直接拦住不许发布并推给人工,绝不能因为已经花了钱就放行。

    Key points

    • Both, because they defend different things: the pre-check saves spend and account standing, the post-check protects viewers and compliance.
    • The pre-check is a local rule pass in milliseconds; on a hit, substitute safe wording instead of throwing and halting the line.
    • The post-check matters more, because a clean prompt does not guarantee a clean result.
    • Vendor moderation covers the vendor's risk, not yours; publishing liability stays with you.
    • Triage post-check failures: auto-fix and rerun that node, or hard-block and escalate.

    答题要点

    • 两道都要,因为防的事不同:前置省钱与账号,后置保护观众与合规。
    • 前置是本地词表加规则,几毫秒,拦下一条就省一次调用;命中要给替代写法而不是抛异常停线。
    • 后置更重要:提示词干净不代表结果干净,模型会自己加戏。
    • 厂商的审核只兜它自己的风险,不能替代你的,发布责任在你。
    • 后置发现问题按严重度分流:能自动修的修完重跑该节点,修不了的硬拦并推人工。
  • Before publishing AI-generated video, what compliance work is mandatory?AI 生成的视频对外发布,合规上你必须做哪几件事?
    Common in ChinaDeep dive#compliance#labeling#copyright

    How to reason about it · think before answering

    1. In China-market roles this is a hard requirement, and missing the explicit-plus-implicit labelling pair usually ends the interview. It also tests whether you read the source text rather than someone's summary.
    2. Give the legal coordinates: the Measures for Labelling AI-Generated Synthetic Content, issued jointly by four authorities, in force from 1 September 2025, with the mandatory national standard GB 45438-2025 on labelling methods taking effect the same day.
    3. Then define both labels close to the source text. An explicit label is added in the content or the interaction interface, presented as text, sound or graphics, and clearly perceivable by the user. An implicit label is added by technical means into the content file data and is not easily perceivable. Both are required, not either-or, and providers are expected to add the implicit label in file metadata.
    4. Show you can ship it: write the implicit label into container metadata with ffmpeg's metadata option and read it back with ffprobe, because writing without verifying is the same as not writing. The explicit label is safest burned into the picture, but burning text needs ffmpeg's drawtext filter, which minimal builds often lack, so detect the capability, degrade deliberately, and log the degradation.
    5. Add the three items beyond labelling: do not maliciously delete, alter, forge or hide labels; do not generate the likeness of real people; and keep licensed sources for background music and reference assets. Short-form drama additionally needs tiered review by budget, with the licence or filing number shown in the opening.
    6. Expected follow-up: which metadata fields exactly. The honest answer is to follow the GB 45438-2025 text itself rather than field names circulating in third-party summaries, and that answer scores far better than inventing a schema.

    分析过程 · 先想清楚再作答

    1. 这题在国内岗位上是硬考点,答不出「显式与隐式两类标识」基本就出局了。它同时也在考你是不是真读过原文,而不是转述别人的解读。
    2. 先给法规坐标:《人工智能生成合成内容标识办法》由四部门联合发布,自 2025 年 9 月 1 日起施行;配套的强制性国标是 GB 45438-2025《网络安全技术 人工智能生成合成内容标识方法》,同日实施。
    3. 然后给两类标识的定义,尽量贴原文:显式标识是在生成合成内容或者交互场景界面中添加的、以文字声音图形等方式呈现并可以被用户明显感知到的标识;隐式标识是采取技术措施在生成合成内容文件数据中添加的、不易被用户明显感知到的标识。**两者都要做,不是二选一**,并且服务提供者应当在文件元数据中添加隐式标识。
    4. 落地上要能说出具体做法:隐式标识写进容器元数据,用 ffmpeg 的 metadata 参数写、用 ffprobe 读回来验证,写了不读等于没写;显式标识最稳是烧进画面,但烧字依赖 ffmpeg 的 drawtext 滤镜,很多最小编译版本没有,所以要先探测能力再降级,并且把降级这件事明确打印出来。
    5. 还要补上标识之外的三条:不得恶意删除篡改伪造隐匿标识;不得生成真实人物形象;背景音乐与参考素材必须有授权来源。做微短剧还要按投资额分级审核,上线前片头标注许可证号或备案号。
    6. 可预期的追问是「元数据具体写哪些字段」。诚实的回答是以 GB 45438-2025 正式文本为准,第三方解读里流传的字段名不能直接照抄——这个回答比编一串字段名得分高得多。

    Key points

    • The labelling Measures take effect 1 September 2025, alongside mandatory national standard GB 45438-2025.
    • Explicit labels are clearly perceivable by users; implicit labels live in the file data. Both are required.
    • Providers add the implicit label into the content file metadata, and nobody may maliciously delete, alter, forge or hide labels.
    • In practice: verify metadata by reading it back, prefer burned-in explicit labels, and log any capability-driven degradation.
    • Also: no likenesses of real people, licensed music and source assets, and for short-form drama tiered review plus a licence or filing number in the opening.

    答题要点

    • 《人工智能生成合成内容标识办法》2025 年 9 月 1 日起施行,配套强制性国标 GB 45438-2025 同日实施。
    • 显式标识是用户能明显感知到的(文字声音图形),隐式标识加在文件数据里,两者都要做。
    • 服务提供者应当在生成合成内容的文件元数据中添加隐式标识;不得恶意删除篡改伪造隐匿标识。
    • 落地:元数据写入后必须读回验证;显式标识优先烧录,能力不足时降级并明确记录。
    • 另外三条:不得生成真实人物形象、背景音乐与素材要有授权、微短剧按投资额分级审核且片头标注许可证号或备案号。

Comments

Sign in to join the discussion

No comments yet — be the first.