固定更新的口播栏目,分工线通常按段落类型画,而不是按整期节目画。把文本不变、读法无争议、停顿只由标点决定的段落交给 Aunio 生成,把语气落点、停顿补丁、专有名词纠错和需要现场感的补录留给人,这样交接后你只需要终审少数段落,而不是整期重听。判断这条线画得对不对,可以看两个可验证的现象:返工是否集中在同一类段落,以及终审时你是否有明确要听的时间点。
Aunio 适合承担重复性配音段落,前提是文本稳定、读法无争议、停顿能用标点描述清楚。交接时随素材一起交脚本版本、音色口径、语速与停顿要求、必须保留的原声片段,人工终审只压到语气、停顿、内容准确性三件事。同一段两次返工仍不通过,先停止调参,改人工录或重写断句。这个分工不替代脚本打磨,也不解决写出来不像口播的问题。
按段落类型统计一期节目里的重复劳动占比
先统计再决定交什么。做法是把最近一期或最近三期的时间轴导出成段落表,每段打一个类型标签,用类别总时长除以全期时长。不要套用外部数字,同一个栏目不同期的结构差别可能很大,自己统计出来的比例才对应你自己的交接线。下面的表先留空,让你用自己节目填。
| 段落类型 | 典型内容 | 是否适合交出去 | 本期耗时占比 | 统计口径 |
|---|---|---|---|---|
| 口播 | 固定开场、每周固定的结论句、数据通报 | 通常适合 | __% | 时间轴上连续、无剪辑点的配音轨 |
| 串词 | 段落之间的承接句 | 通常适合,但先确认当期没有临时改动 | __% | 两段原声之间的过渡句 |
| 转场 | 音效前后的短句、片头片尾固定语 | 通常适合 | __% | 带固定音效的短段 |
| 需补录 | 现场原声、带情绪追问、读法有争议的专有名词 | 不建议交出去 | __% | 必须保留真人声的片段 |
段落表可以用剪辑工程导出,也可以手工整理成一份 CSV。下面这段脚本只做一件事:按时长把四类段落汇总,输出每类的绝对时长和占比,方便你填上面的表。
# segments.csv 字段: id,start,end,type,时间单位为秒
python3 - <<'EOF'
import csv, collections
total = 0.0
by_type = collections.Counter()
for row in csv.DictReader(open('segments.csv', encoding='utf-8')):
duration = float(row['end']) - float(row['start'])
by_type[row['type']] += duration
total += duration
for name, seconds in by_type.most_common():
print(name, round(seconds, 1), str(round(seconds / total * 100, 1)) + '%')
print('total', round(total, 1))
EOF
验证方式是拿脚本输出的总时长和剪辑软件里显示的全期时长对照,差值应当来自被排除的静音段,而不是漏标的段落。如果口播、串词、转场合起来占了大头,而且文本重复度高,可以先批量交出去试一期;如果需补录的段落偏多,说明问题更可能在脚本或录制流程,先修那边,继续调参数通常不会改善。
写一份随素材一起交出去的说明
交接文档的作用是把确认次数压到最低。建议放在素材目录的同一层,文件名带期号,字段名按你实际使用的工具替换。下面的骨架是通用的,不依赖具体接口。
handoff:
project: weekly-voice-w24
script_version: script_v7.md # 建议附文件哈希或版本号
voice_profile: host_default # 音色口径:哪个音色、什么语种口音
rate: 1.0 # 相对基准,先小批量试听再定
pause_policy: punctuation_only # 停顿由标点决定,人工只改标点
keep_original:
- seg_012
- seg_031
glossary: terms.txt # 专有名词读法,一行一条
output: 48k wav, mono, no music
reject_rules:
- 段落首尾被截断
- 数字或专有名词读法与 glossary 不一致
脚本改过就要重发整包,并更新 script_version;只改音色或语速也要记一行变更,否则返工时无法判断是参数变了还是文本变了。交接前可以做一次自查:keep_original 里的段落 id 是否都还在脚本中;glossary 是否覆盖了本期出现的缩写和单位。拿到音频后抽查这几段是否仍是原声,用播放器或 ffprobe 核对输出规格。
ffprobe -v error -show_entries format=duration -show_entries stream=sample_rate,channels -of default=nw=1 out/seg_012.wav
把人工终审压到三件事上
终审不要从头听到尾,只在段落级别做三类核对。语气看的是意图是否对上,停顿看的是断句位置,内容准确性看的是数字和专有名词。三项里任何一项不过,都只打回该段,不要整期重录。
| 核对项 | 核对动作 | 打回条件 |
|---|---|---|
| 语气 | 对照脚本里的意图标记,听该段前两秒和后两秒是否落在同一情绪上 | 重音落在虚词上,或句尾上扬与脚本意图相反 |
| 停顿 | 只核对标点处和专有名词前后,其余不逐字听 | 断在词中间,或列表项之间没有间隔 |
| 内容准确性 | 逐字对稿,重点看数字、人名、单位 | 任何一处数字或专有名词读错 |
打回信息建议固定成一行:段落 id、时间码、听到的现象、期望的结果。这样返工的人不用重听整期,也方便你在下一期交接时把同类段落标出来。如果某类段落连续几期都在这三项上被打回,优先检查脚本写法,而不是继续加终审环节。
区分改设置和重录两类返工
返工最容易出的错,是把文本问题当参数问题处理。判断依据可以先看日志和交接单:如果实际使用的音色、语速、词典与交接单一致,听感仍然不对,那问题通常在文本或语义层面,改参数只是把错误换个说法重复一遍。
| 现象 | 归因 | 处理动作 |
|---|---|---|
| 同一段多音字或数字读法错 | 设置或词典 | 改 glossary 或替换写法后重生成该段,不动其他段 |
| 整体语速与全期不一致 | 设置 | 改 rate 或音色参数,只重生成该段 |
| 断句位置不对但文本没错 | 设置或文本 | 先把标点改成想要的停顿,再重生成 |
| 语气偏平,与脚本意图对不上 | 内容或文本 | 重写该句或改人工录,不建议继续调参 |
| 脚本信息更新或口径改变 | 内容 | 重录该段,并更新脚本版本与交接包 |
止损线要提前定:同一段两次返工后仍不通过,就停止调参,改为人工录该段,或者把长句拆成短句重写后再试。同时在交接清单里记一条,把该段标成人工保留,下一期不再重复交给自动生成。这样处理的依据是可核对的,不是感觉:参数与交接单一致、脚本版本也一致,仍然不通过,就说明这一段落在人负责的那一半里。