用途与实际影响
这项功能怎样使用
为什么需要它
重新识别可能把已经确认的名字和措辞改掉,按字数平均分配时间又会错过停顿和语速变化。这里把“说了什么”的确认与“这句话在哪一秒”分开,只处理后一个问题。
举个实际例子
“这段旁白已经满意,请给确认过的稿子标词语时间,别重新配音。”项目将原音与文案对齐,交回每个词从哪一秒到哪一秒;单段超过五分钟就按真实声音拆分,不能按文字长度猜时间。
最后我会得到什么
得到每个词在现成音频中的起止时间,附音频与文案的版本依据。覆盖不全或输入中途变化时保留旧结果;对齐成功仍不证明文案本身说得对。
正常时
原音和文案对应、时间顺序与覆盖都核对后,交回完整词语时间轴。
发现问题时
词语漏对、秒数异常或输入变了时不覆盖旧成果,说明具体缺口。
入口不可用或证据不足时
模型或显卡不可用、任务取消或超时,只停本次对齐;不下载、不上传或改走听写。
从哪里开始
给已有音频和确认文案,要求标出逐词起止时间。
需要准备什么
- 现成音频
- 对应且已确认的文案
从开始到拿到结果
- 1
系统核对并处理
核对输入对应后只按声音找词语时间,检查覆盖、顺序与输入是否变化,不重新判断文案真假。
- 2
交付与接续
交回词语秒数及原件身份;超长、覆盖不全或模型不可用时保留旧输出。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
固定对齐器与共享入口已实现,来源有公开音频验收;本轮只读确认工件存在,未运行模型关键规则与设计选择
这个入口接收已给出的文字,不负责证明声音逐字对应;重要内容仍要另行识别或人工核听。
单场最长 300 秒,超长按已审阅分镜拆分,不能按字符比例猜时间。
默认 cuda:0 与既有GPU协调器;CPU必须显式 --device cpu,仍有子进程期限和清理。
输出不能指向音频或文案原件;失败与取消不覆盖上份成功结果。
本模块用到的名词
- forced alignment(强制对齐)
- 给模型声音和已知文字,找文字的位置;不是重新识别,更不认证文字真伪。
- lexical_truth_verified=false
- 这份结果没有证明词汇本身正确,哪怕覆盖完整、哈希一致、时间单调。
- 原子交付
- 完整结果先核对,最后一次替换目标;半成品、超时或被修改的输入不能覆盖旧成功文件。
专业定义
视频已经配好旁白,或手头已有确认文本时,只借用一个共享对齐器找踩点。它找位置,不证明稿子真的说对了。
解决什么
解决视频重复安装语音模型、只改时间却重新付费配音、按字数猜踩点,以及半份或错误来源时间轴覆盖已接受成果的问题。
当前怎样实现
- 命令 python -B -m zh_asr alignment-info 只读配置与路径,不加载模型;align 接收一个音频、UTF-8 --text-file、--output 与 --timeout-sec。
- 当前 Qwen/Qwen3-ForcedAligner-0.6B 固定 revision=c7cbfc2048c462b0d63a45797104fc9db3ad62b7,模型位于 models/aligner 对应版本目录,artifact_lock=configs/model-locks/qwen3-forced-aligner-0.6b.json,runtime(运行环境) qwen-asr=0.0.6。
- 现有音频前处理在本任务临时目录转 PCM,沿用受监督可终止 worker 和 GPU 短租约,不建立新监听口、后台服务或双模型转写任务。
- 先核验模型及对齐覆盖/时间范围,写入前重新核对音频与文本 SHA-256;只有完整成功才原子替换输出。
- fetch-aligner/verify-aligner 由既有 model_lifecycle 明确执行:只从不可变锁恢复缺文件,异常已安装字节不被重新生成哈希批准。
执行流程
- 1
确认已经接受的文案和对应音频,单场不超过 300 秒。
- 2
用 alignment-info 查看当前适配和工件;文件存在不等于此次推理通过。
- 3
明确调用 align,取得原件指纹并在独立临时目录准备 PCM。
- 4
核验固定模型,取得合法进程租约,执行有期限的对齐。
- 5
核对覆盖、秒数和两份原件仍未变化,再原子交回 JSON。
- 6
消费者按词轴做预览、动画或字幕,重要词句仍听音验收;失败保留旧成果。
边界
- 不重新生成配音、不启动双模型或桌面听写,不增加另一套模型清单。
- 不自动下载或升级权重、不上传音频,不把CPU当GPU失败后的静默退路。
- 对齐不替代Paraformer的匿名说话人分离,也不构成人物身份确认。
- 模型锁不是权重备份,完整新机恢复仍需相应依赖与模型工件。
失败与恢复
- 模型或权重缺失
- 本次对齐不可用,按现有固定锁恢复流程处理;原音频、文案和旧词轴保持不变。
- 单场超过300秒
- 明确拒绝,按审阅后的分镜切成真实音频段,不从文字长度伪造分段位置。
- 输入改变、覆盖不全或时间异常
- 不替换输出,报告具体覆盖/身份问题并保留上次成功成果。
- 取消、超时或租约丢失
- 终止本次受管worker与相关临时物,不自动重试或占用他人资源。
真实入口
E:\Projects\Tools\ChineseASR\docs\known-text-alignment.md输入、原子输出、词汇真值与300秒边界的当前产品合同
E:\Projects\Tools\ChineseASR\docs\quality-and-model-maintenance.md对齐模型生命周期、固定锁、质量与实际验收分层
E:\Projects\Tools\ChineseASR\configs\models.yaml唯一模型、运行时、对齐目录和时长配置
如何验证
- 2026-09-18 13:30:47 UTC 本轮 alignment-info 为 read_only=true,返回固定Qwen对齐器目录、weights_present=true、max_audio_sec=300;未加载或重哈希权重。
- 9月17日来源收尾记录真实公开音频Qwen3-ForcedAligner和文件流程验收通过;本轮没有重跑,也不把该短样例视作任意旁白零误差保证。
- 取消、输入变化、覆盖检查和进程清理的源码合同与真实音频证据分别成立,最终消费者仍需听音预览。
与其他模块的关系
本模块让 video-scaffold 等已有音频与确认文案的调用方复用 ChineseASR 对齐能力;模型、原件与时间证据留在此处,画面编排和最终成片验收仍归视频工程。
