ASR 结束后统一转书面语
概述
接收分段 ASR 文本流,但不要实时输出字幕,而是在检测到整段结束、会话结束、录音结束或调用方显式提交结束信号后,再将累计文本一次性整理成流畅书面语。
默认不翻译。只有在显式提供 target_language 时,才对最终书面结果进行翻译。
此 Skill 适用于:
- - 会议发言结束后统一整理
- 采访录音结束后整理为可读文本
- 播客/视频整段转写后的书面化处理
- 语音输入结束后再统一润色
核心行为
采用单次最终输出模型:
- 1. 持续接收分段 ASR 文本流
- 将各分段合并到同一缓冲区
- 在结束信号到来前,不输出面向用户的临时字幕或中间结果
- 在结束时,对整段文本统一去口语化、补断句、修正重复和自我修正
- 输出一版流畅、完整的书面语结果
- 如提供
target_language,则输出目标语言结果;除非调用方明确要求,否则不同时返回原文和译文
结束判定规则
只有在满足以下任一条件时,才进入最终整理阶段:
- - 上游显式传入结束信号,例如
is_session_final、end_of_stream、 INLINECODE4 - 调用方明确表示“结束”“停止”“提交本段”
- 音频或识别流已经结束
- 上游系统给出整段 final 标记
不要仅因为一个句号、一次停顿或一句话结束,就提前输出最终结果。
输入约定
概念上可接收以下输入:
- -
chunk_text:最新 ASR 分段文本 - INLINECODE6 :可选,最近缓冲区或已累计文本
- INLINECODE7 :可选,领域词库,用于人名、产品名、术语、缩写的稳定化
- INLINECODE8 :可选,目标语言代码或语言名
- INLINECODE9 /
end_of_stream / commit:可选,结束信号 - INLINECODE12 :可选,时间戳元数据
不要要求调用方必须使用某个固定字段名。接受语义等价字段。
输出约定
默认只输出最终结果,不要输出中间过程。
未结束时
- - 不返回面向用户的正式内容
- 如调用方需要,可仅返回“继续接收中”这一类内部状态,但不要生成临时字幕
结束时
- - 输出整段整理后的书面语
- 若设置
target_language,则输出翻译后的最终结果 - 除非调用方明确要求结构化数据,否则直接返回最终文本本身
书面化改写规则
在最终整理时:
- - 改写成自然、流畅、可直接阅读的书面语
- 删除语气词、口头禅、明显重复、自我修正、断裂表达
- 保留原意、语气、问题/命令/不确定性
- 保留专有名词、数字、时间、事实信息
- 不新增原文没有的信息
- 不写成提纲、要点或总结,除非调用方明确要求
- 优先让整段逻辑顺畅,而不是逐词机械保留
翻译规则
只有在 target_language 被显式提供时才翻译。
翻译时:
- - 先基于最终书面语结果再翻译,不直接翻译原始 ASR 碎片
- 保留人名、数字、专有名词和领域术语
- 如提供领域词库,优先保持术语一致性
API 抽象层
所有外部能力都应描述为可替换职责,不要绑定具体厂商 API、SDK、认证方式或传输协议。
推荐抽象接口:
- -
ingest_asr_chunk(...) —— 接收并归一化新的 ASR 分段 - INLINECODE16 —— 将分段并入当前整段缓冲区
- INLINECODE17 —— 判断是否已到整段结束时刻
- INLINECODE18 —— 将累计口语内容统一改写为书面语
- INLINECODE19 —— 当
target_language 存在时翻译最终结果 - INLINECODE21 —— 提交最终结果并清空或归档当前缓冲区
不要假设任何固定服务商。
建议工作流
- 1. 接收新的 ASR 分段并做基础归一化。
- 将分段追加到当前缓冲区。
- 检查是否收到整段结束信号。
- 若未结束,继续累计,不输出最终文本。
- 若已结束,对整个缓冲区执行书面化改写。
- 若设置了
target_language,再对最终书面语做翻译。 - 输出最终结果。
- 提交结果并清空当前缓冲区,准备处理下一段。
领域词库处理
如果提供 domain_lexicon:
- - 优先用它稳定专有名词、缩写和术语
- 在上下文支持时,用它纠正同音误识别或 ASR 变体
- 若上下文明显不支持某个术语,不要强行替换
示例
示例 1:结束前不输出最终结果
输入分段:
- - INLINECODE24
- INLINECODE25
如果尚未收到结束信号:
示例 2:结束后统一输出
累计文本:
- - INLINECODE26
- INLINECODE27
结束后最终结果:
示例 3:结束后翻译
若同时设置
target_language: en,则输出:
资源使用
需要查看中文接入说明、可替换接口建议和结束式处理流程时,读取 references/interface-guide-zh.md。
ASR 结束后统一转书面语
概述
接收分段 ASR 文本流,但不要实时输出字幕,而是在检测到整段结束、会话结束、录音结束或调用方显式提交结束信号后,再将累计文本一次性整理成流畅书面语。
默认不翻译。只有在显式提供 target_language 时,才对最终书面结果进行翻译。
此 Skill 适用于:
- - 会议发言结束后统一整理
- 采访录音结束后整理为可读文本
- 播客/视频整段转写后的书面化处理
- 语音输入结束后再统一润色
核心行为
采用单次最终输出模型:
- 1. 持续接收分段 ASR 文本流
- 将各分段合并到同一缓冲区
- 在结束信号到来前,不输出面向用户的临时字幕或中间结果
- 在结束时,对整段文本统一去口语化、补断句、修正重复和自我修正
- 输出一版流畅、完整的书面语结果
- 如提供 target_language,则输出目标语言结果;除非调用方明确要求,否则不同时返回原文和译文
结束判定规则
只有在满足以下任一条件时,才进入最终整理阶段:
- - 上游显式传入结束信号,例如 issessionfinal、endofstream、commit=true
- 调用方明确表示“结束”“停止”“提交本段”
- 音频或识别流已经结束
- 上游系统给出整段 final 标记
不要仅因为一个句号、一次停顿或一句话结束,就提前输出最终结果。
输入约定
概念上可接收以下输入:
- - chunktext:最新 ASR 分段文本
- recentcontext:可选,最近缓冲区或已累计文本
- domainlexicon:可选,领域词库,用于人名、产品名、术语、缩写的稳定化
- targetlanguage:可选,目标语言代码或语言名
- issessionfinal / endofstream / commit:可选,结束信号
- timestamps:可选,时间戳元数据
不要要求调用方必须使用某个固定字段名。接受语义等价字段。
输出约定
默认只输出最终结果,不要输出中间过程。
未结束时
- - 不返回面向用户的正式内容
- 如调用方需要,可仅返回“继续接收中”这一类内部状态,但不要生成临时字幕
结束时
- - 输出整段整理后的书面语
- 若设置 target_language,则输出翻译后的最终结果
- 除非调用方明确要求结构化数据,否则直接返回最终文本本身
书面化改写规则
在最终整理时:
- - 改写成自然、流畅、可直接阅读的书面语
- 删除语气词、口头禅、明显重复、自我修正、断裂表达
- 保留原意、语气、问题/命令/不确定性
- 保留专有名词、数字、时间、事实信息
- 不新增原文没有的信息
- 不写成提纲、要点或总结,除非调用方明确要求
- 优先让整段逻辑顺畅,而不是逐词机械保留
翻译规则
只有在 target_language 被显式提供时才翻译。
翻译时:
- - 先基于最终书面语结果再翻译,不直接翻译原始 ASR 碎片
- 保留人名、数字、专有名词和领域术语
- 如提供领域词库,优先保持术语一致性
API 抽象层
所有外部能力都应描述为可替换职责,不要绑定具体厂商 API、SDK、认证方式或传输协议。
推荐抽象接口:
- - ingestasrchunk(...) —— 接收并归一化新的 ASR 分段
- appendtobuffer(...) —— 将分段并入当前整段缓冲区
- detectstreamend(...) —— 判断是否已到整段结束时刻
- rewritetowritten(...) —— 将累计口语内容统一改写为书面语
- translatetext(...) —— 当 targetlanguage 存在时翻译最终结果
- commitfinaloutput(...) —— 提交最终结果并清空或归档当前缓冲区
不要假设任何固定服务商。
建议工作流
- 1. 接收新的 ASR 分段并做基础归一化。
- 将分段追加到当前缓冲区。
- 检查是否收到整段结束信号。
- 若未结束,继续累计,不输出最终文本。
- 若已结束,对整个缓冲区执行书面化改写。
- 若设置了 target_language,再对最终书面语做翻译。
- 输出最终结果。
- 提交结果并清空当前缓冲区,准备处理下一段。
领域词库处理
如果提供 domain_lexicon:
- - 优先用它稳定专有名词、缩写和术语
- 在上下文支持时,用它纠正同音误识别或 ASR 变体
- 若上下文明显不支持某个术语,不要强行替换
示例
示例 1:结束前不输出最终结果
输入分段:
如果尚未收到结束信号:
示例 2:结束后统一输出
累计文本:
- - 今天我们先把登录流程跑通 然后再看支付和埋点
- 嗯如果时间够的话再把告警顺手补一下
结束后最终结果:
- - 今天先完成登录流程,再处理支付和埋点。如果时间允许,再补充告警能力。
示例 3:结束后翻译
若同时设置 target_language: en,则输出:
- - Today, we will complete the login flow first, then handle payments and tracking. If time allows, we will also add alerting.
资源使用
需要查看中文接入说明、可替换接口建议和结束式处理流程时,读取 references/interface-guide-zh.md。