把 ASR 词级时间戳合成句子,怎样保留每句话对应的原始词

2026-10-24

把词级转写合成句子后,只留下句文本和起止时间,会丢掉句子与原词的关系。后续改标点、校对或定位跳转时,很难确认哪几个词被合并。应保留每句的原词索引范围,让合并过程可逆向追踪。

分句规则由应用明确

本文输入是手工构造的词表,每项有文本、start 和 end,单位为秒。先检查 start 不大于 end、数值有限且词序时间不倒退。分句条件是遇句末标点或相邻词停顿至少零点六秒;阈值只是演示参数,不是 ASR 官方默认行为。

索引使用半开区间:word_start 包含、word_end 不包含。句子时间取本句第一个词起点和最后一个词终点,不重新猜单词时间。最后一个词没有标点也要收尾,不能因为没触发规则而把末句丢掉。

覆盖检查比看文本更可靠

附件六个合成词按规则形成三句,每句保存原词索引、文本与时间。检查器将所有句段索引展开,必须恰好等于零到词数减一的有序列表;任何漏词、重复或交换都应失败。再检查句段时间包含其每个词区间,并核对文本来自对应原词拼接。

失败反例是相邻两句都把边界词算进去。看起来句子都完整,原词却被重复使用。另一个反例是只在遇标点时输出,最后无标点片段消失。附件单独构造无末尾标点与错误边界对照,防止完整主例碰巧掩盖收尾缺陷。

不把词表来源与合并结果混淆

这些时间戳不是模型实测,不对应真实录音;合并通过只能证明引用覆盖和时间范围一致。原词如果识别错或时间本来偏移,句段仍会继承错误。后续人工修词时应保留原词版本与修改记录,不能让新句文本继续引用已改变的旧索引。

OpenAI 官方音频文档对词级时间戳参数的模型支持有具体限制,本篇只消费已有词表,不提供旧模型新接入建议。任何 API 参数和弃用窗口都应在真实使用前重核,不能由本文的离线结构推导账号可用性。

实际多说话人或重叠语音可能不满足本例的单一时间顺序,需要按说话人或轨道建立独立合同,再决定如何展示重叠。不要为了满足线性校验把重叠词强行排序而丢失语义。本文不生成字幕文件,也不声称有语音对齐精度,交付的是从词到句的可追溯关系与明确边界。

配套文件与依据

本文的合成输入和参考结果可下载独立样本 a043.json,离线检查器 a043.py与样本放在同一目录后运行。检查器不调用模型接口。 使用 Python 3.12 或兼容版本,将上述文件下载到同一目录,执行 python a043.py。

一手资料1。资料核对日期:2026-10-24。

想系统学会用 AI?报名体系课或加入会员,照着学、照着用。

加微信,把这一页存到手机上

扫码加站长企业微信,会自动把这一页的链接发给你,方便在手机上接着看。AI 落地卡住了,也可以直接问。

去留微信

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。