14 — 知识库与 RAG
Vocal10n 在三处使用领域知识:
- STT 术语文件:将术语注入 Whisper
initial_prompt,提升领域词识别率。 - 翻译词汇表 / Corrector:在翻译前替换或规范源文本术语。
- 幻觉过滤列表:丢弃已知错误的 Whisper 输出。
三者都可在 KB 页(vocal10n.ui.tabs.kb_tab)统一管理。
STT 术语文件
来源:vocal10n.stt.filters + 组件 term_file_list.py。
- 文件位于
stt_terms/(如context_gaming.txt)。 - 每行一个术语,
#可写注释。 - 可同时选择多个文件,取并集后注入
initial_prompt,并受stt.initial_prompt_capacity(默认 200)限制。 - KB 页支持拖拽添加、当前文件内联编辑、容量占用显示(提交
6a45a0c)。
另有音素索引文件(也在 stt_terms/)供识别后音素纠错使用。
翻译词汇表
来源:vocal10n.llm.corrector + vocal10n.llm.rag。
- 默认文件:
knowledge_base/glossary_general.txt。 - 格式:每行一项,
key = canonical translation或key -> canonical(两种都支持)。 - 行为:
- 小词表(条目数 ≤
translation.rag_threshold,默认 100):完整词表直接内嵌到 prompt。 - 大词表:
rag.py用本地 embedding 建索引,每次只检索 top-K 相关词条注入(提交d34045f)。
- 小词表(条目数 ≤
可从 Translation 页挂载多个知识库,合并后会去重。
过滤列表
config/filters.txt 是 regex/字面短语列表,供幻觉过滤器丢弃命中项。可通过 vocal10n.ui.widgets.filter_list_editor 在应用内编辑(提交 890b782)。常见条目覆盖静音场景 Whisper 的模板幻觉文本。
为什么分开管理
STT 术语与翻译词汇表目标不同:
- STT 列表用于声学解码偏置,确保术语先被识别出来。列表应保持较短,避免 prompt 污染。
- 翻译词汇表用于目标语规范化,可更大规模,这也是引入 RAG 的主要场景。
将两者分离可独立调参互不干扰,KB 页负责统一展示和操作入口。