CMUdict(cmusphinx/cmudict,BSD-2)cmudict.dict:3,618,488 字节,sha256 81917843c7f44ce2b094ac63873c2c7a4cf802040792c455ba3ca406891c3d22,126,052 词条,ARPAbet 音素(curiosity → K Y UH2 R IY0 AA1 S AH0 T IY0)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
来源与目标
用户 2026-09-16 提出:「找个英中词典,单词有发音」,并澄清「发音」指的是音标(举例「grok 的 /gra:k/」),不是音频。用户随后确认三项决策:约 5 万词量级的常用子集、规范 IPA 音标、允许 schema v12(多本词典并存)。
目标:学习者点词时,除了现有的英英释义(WordNet),还能看到中文释义与规范 IPA 音标;两本词典可分别启用/禁用,个人释义与学习状态规则不变。
已核实的数据事实(本地下载真实发布包实测,非估计)
skywind3000/ECDICT)Release 1.0.28 的ecdict-stardict-28.zip,sha256c707d0f3ded6ec79b96466da4a1574e074703da5af9c120fbad97f9cb08c6f2c,70,415,834 字节LICENSE全文已取得);README 说明数据来自公开资料整理,再分发前需自行评估.dict118MB +.idx82MBgrok *[^rɔk]、curiosity *[.kjuәri'ɒsiti]、a *[ei]),需要规范化cmusphinx/cmudict,BSD-2)cmudict.dict:3,618,488 字节,sha25681917843c7f44ce2b094ac63873c2c7a4cf802040792c455ba3ca406891c3d22,126,052 词条,ARPAbet 音素(curiosity → K Y UH2 R IY0 AA1 S AH0 T IY0)raw.githubusercontent.com/github.comarchive 在本机时通时断,CMUdict 经 jsDelivr(cdn.jsdelivr.net/gh/...)取得 200 OK;资源以 sha256 为身份,镜像只用于传输,准备脚本按 sha256 校验,不匹配即失败音标来源规则(分层,避免把"看起来像 IPA"的字符串冒充规范 IPA):
1→ˈ、2→ˌ、0无标记;AH0→ə、IY→iː、UH→ʊ、AO→ɔː等),子集约 43% 的词得到真 IPA。'→ˈ(27,643 次)、:→ː(14,844)、ә(U+04D9)→ə(U+0259)(14,808)、空格→删除(10,913)、,→ˌ(8,373)、.→ˌ;ɡ(U+0261) 本身即 IPA 保留;-、=、;与独立大写标记字母(如[A])按编辑标记删除。不做语义猜测(例:grok的[^rɔk]里^的音值无法从数据验证,因此不复写为ʌ,只记录原记法并标注来源)。每条音标记录来源(
cmudict/ecdict);准备脚本统计规范化后仍不属于 IPA 字母表的字符并要求为 0,非 0 即拒绝产出;manifest.json记录三类计数、源文件 sha256 与许可证文件名。已确认范围
[网络]/[地名]/[医]等标注),保留多义行,按行存储,不做机器改写。lexgo_dictionaries的CHECK (id = 1)单行限制,增加provider列区分wordnet与ecdict;两本词典可分别启用,查词时合并。resource_missing行为。entries.jsonl.gz+manifest.json),再由管理员导入(HTTP 接口或 Go 子命令),导入校验 sha256、条目数、许可证文件与格式版本。非目标
发音音频(用户已明确只要音标)、整句或例句翻译、机器翻译、动态联网查询、词频统计界面、CSV 导入导出(X04)、以中文反查英文(汉英方向)。
验收标准
依赖与执行
前置:#6(词典导入与查询路径)、#7(个人释义与状态优先于词典内容)、#15(备份与恢复契约需覆盖新增资源)。状态:待实施。
设计证据
查词面板一行式改动(不新增页面),线框:
采用轻量模式:复用现有面板排版,只新增两行内容,不需要完整原型;用户已在会话中确认"音标 + 中文释义"这一目标与三项决策。
估算、风险与回退
初估 2~3 人日(准备脚本与资源 pin、v12 迁移与导入、查询合并、面板、测试与文档;是规划参考,不是排期承诺)。主要风险:ECDICT 的数据来源为公开资料整理,虽仓库为 MIT,但再分发前仍需自行评估;子集口径会漏掉 WordNet 与考试标签都未覆盖的词;音标规范化的字符校验必须为 0,否则视为数据不合格。回退:v12 只增列与放开约束,回退二进制前把
lexgo_schema.version写回 11、删除 ecdict 词典行即可,个人数据与 WordNet 不受影响。文档与证据
实施时更新 Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification、Product-Requirements-Overview、Home 与 Deployment-and-Operations(备份体积);#15 的恢复演练复跑一次并记录词典 blob 的完整性。结束评论记录准备/导入命令、实测条目数与体积、音标字符校验结果、测试与 Wiki revision。原有 WordNet 资源 pin 与 #6 的导入契约保持不变。
Gitea MCP 仍指向其他站点,沿用目标站点 API 回退;凭据仅从既有安全配置读入进程。
实施完成,待验收
交付内容
scripts/dict_prepare.py,仅工具链):从三个 sha256 pin 的源显式准备英汉归档。实测产出 82,721 条中文释义、3,003,208 字节(sha256
a4f4ab972c6e233e39909a861015c99ad7943e8db24353afc9cc9d8160dded24),条目数落在 pin 容差内、音标字符集校验通过才写出;产物不入库,仓库只保存
server/zh-dictionary-resource.json(pin)与两份许可证(ECDICT MIT、CMUdict BSD-2)。curiosity /kjˌʊɹiˈɑːsəti/、cat /kæt/、guard /ɡɑɹd/);ECDICT 记法仅做字符级规范化并标注来源 30,580 条;两个来源都不可靠就不显示 16,342 条。含
^(丢失首音,如grok [^rɔk])或其它非 IPA 字符的记法整条丢弃 1,038 条。
addDictionaryProvider增加provider(默认wordnet)、dropDictionarySingleSlotCheck从information_schema查到单行 CHECK 后删除;两步都带条件守卫,可重放、可回退。槽位 1 = WordNet、2 = 英汉词典。
resources列出全部启用词典(resource仍指 WordNet 以兼容);屈折形经 WordNet lemma 解析后回查中文词典(
dogs→ 狗),但音标不复制到屈折形;任一本停用/损坏时降级为只用另一本,都不可用时仍是
resource_missing。/音标/、每个义项显示中文释义(多行可滚动),面板底部列出词典来源;管理端可区分英英/英汉两种词典并分别启停,导入时按服务端给出的规范选择词典类型。
测试(全部真实执行)
LEXGO_TEST_DB_NAME=lexgo_test_issue40 python scripts/server.py test-integration)npx vitest --runvue-tsc --build、pnpm run build通过npx playwright testnpx pnpm test/lintpython -m unittest discover -s tests/harness.py check --strict.local/verify-issue40-api.py(lexgo_dev,虚构账号与文本)opens/cats屈折形、分别停用后降级、双双停用后resource_missing、恢复后再次可查迁移演练:
lexgo_dev已执行python scripts/server.py migrate升到 v12;迁移后旧二进制拒绝启动并提示先迁移(
/d/supervisord/lexgo-api_err.log),重新构建后恢复正常——这是有意的版本保护,不是缺陷。未验证或未包含
grok等两个来源都不可靠的词不显示音标;若需要更强覆盖,需另引数据源(例如 Wiktionary/kaikki)并重新评估许可与体积。提交、文档与镜像
b1b2e6c(实现)、a412e00(文档);分支feat/40-english-chinese-dictionary;PR #41(未合并)。8cc11b2f、Business-Rules-and-Glossaryba03226b、Local-Development-and-Verification
afcd40ee、Product-Requirements-Overview5c7b0b49、Deployment-and-Operations
2fa9c30e、Homebbea927c、Project-Profilee61817b9。docs/已按上述 revision 导出,harness.py sync --check通过。请验收;确认后我再做验收记录、镜像复核、fast-forward 合并与工单关闭。
#40 状态:待验收(2026-09-16)
契约与完整证据见评论 8232;分支 feat/40-english-chinese-dictionary,PR #41 未合并,等待用户验收。
(本条修正上一条评论因 shell 转义丢失的分支名文字,内容一致。)
#40 验收通过(2026-09-16)
用户 2026-09-16 回复「#32 #40 验收通过、#42 验收通过」,本单验收结论如下。
b1b2e6c(实现)与a412e00(文档)。schema v12(
provider列 + 放开单行约束,条件守卫、可重放);两本词典可分别启停,中文释义在前、英英释义随后;屈折形经 WordNet lemma 回查中文但不复制词目音标;音标来源可追溯(
cmudictIPA /ecdict记法),不可靠不显示。lexgo_devschema v12、两本词典在库(wordnet / ecdict 82721 条)、查词返回音标与中文释义,均通过。
8cc11b2f、Business-Rulesba03226b、Local-Developmentafcd40ee、Product-Requirements
5c7b0b49、Deployment-and-Operations2fa9c30e、Homee6e3b2a9、Project-Profilea482d5ba;镜像随验收提交
42945de导出并复核一致。grok等两来源都不可靠的词不显示音标;真机触摸与浏览器音频解码缺口沿用 #14/#21/#37。
工单关闭。