术语表
让名字和术语前后一致——从识别器听到的拼写,到译文里的写法。
术语表是一份命名的 JSON 文件,在你的机器上只存一份——位于 $OPENBBQ_HOME/glossaries/,默认是 ~/.openbbq/glossaries/——所有工作区共用。它干三件事:
- 让识别器(负责把听到的话记下来的模型)偏向术语的标准拼写。
- 切字幕行时,把已知的误听纠正为标准拼写。
- 用标准译名和“保持原文”规则指导翻译。
创建术语表
openbbq glossary new project-name --context "关于 AI 开发工具的技术访谈"这会写入 ~/.openbbq/glossaries/project-name.json,带一个空的术语列表。context 用一句话描述素材内容,方便译者和 Agent 做判断:
{
"schema": "openbbq/glossary@1",
"name": "project-name",
"context": "关于 AI 开发工具的技术访谈",
"terms": []
}添加术语
打开文件,为每个你在乎的名字或术语加一条:
{
"source": "OpenBBQ",
"target": null,
"aliases": ["Open BBQ", "Open BQ"],
"note": "项目和 CLI 名称",
"keep": true
}| 字段 | 含义 |
|---|---|
source | 术语的标准拼写,也会提供给识别器 |
target | 需要翻译时采用的标准译名 |
aliases | 已知的误听或变体写法,会被纠正为 source |
note | 帮助译者或 Agent 判断的上下文 |
keep | 为 true 时在译文中保留原文拼写 |
有固定译名的术语设 target;品牌名、人名这类不翻的设 keep: true。两个都不设,表示怎么译还没定。
查看术语表库
openbbq glossary list
openbbq glossary show project-name绑定到工作区
初始化时绑定:
openbbq init /path/to/video.mp4 --workspace workspaces/demo --glossary project-name或者之后绑定:
openbbq glossary use project-name --workspace workspaces/demo绑定关系写入 manifest.glossary。transcribe、segment 和 translate init 都会遵循它;各命令自己的 --glossary 选项可以为单次运行覆盖。
挖掘候选术语
听写完成后,OpenBBQ 可以把值得再看一眼的词挑出来——反复出现的名字、识别器没把握的词:
openbbq glossary suggest --workspace workspaces/demo常用筛选:
openbbq glossary suggest \
--workspace workspaces/demo \
--glossary project-name \
--max-prob 0.6 \
--min-count 1 \
--max 30--glossary——排除术语表已经认识的词。--max-prob——只看识别置信度低于这个值的词。--min-count——只看至少出现这么多次的词。--max——最多列出多少条。
候选是确定性的建议,不会自动改动任何东西。人工过目之后,再把够格的词加成术语。
审校听写稿
审校命令逐页遍历每一段已解析的听写文本,并附上证据,让你结合上下文确认名字,而不是靠猜:
openbbq glossary audit --workspace workspaces/demo --offset 0 --limit 20每页包含相邻文本、词置信度、解析后和原始的原文、可用的参考字幕,以及命中的术语。跟着 next_offset 翻页,直到 remaining 归零;每页最多 20 段。
应用术语更新
用一个 terms 文件原子地新增或更新术语,每次最多 20 条:
{"terms":[{"source":"Andy Matuschak","aliases":["Annie Matushak"],"note":"researcher; confirmed ASR variant"}]}openbbq glossary apply --workspace workspaces/demo glossary-terms.json然后重跑 openbbq segment,让纠正落进字幕行。它的输出会报告 glossary_matched_terms、glossary_aliases_applied 和 glossary_no_effect。绑了术语表却一条都没命中,并不能证明术语没问题——把它当成再检查一遍的提醒。