使用 PaddleSpeech 将 CC-CEDICT 中英词典解析为 JSON 格式的完整指南
人工智能语音音频NLP媒体生成【免费下载链接】PaddleSpeechEasy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.项目地址https://gitcode.com/paddlepaddle/PaddleSpeech点击查看免费下载导读本文以 examples/other/cc-cedict 下的工具链为主体系统讲解如何在 PaddleSpeech 项目中下载公开领域的中英词典 CC-CEDICT并将其从原始文本格式解析为结构化的 JSON 数据。读完本文你将掌握 CC-CEDICT 的文本行格式约定、run.sh的阶段化执行方式、解析脚本local/parser.py的逐行处理逻辑以及解析产物在 PaddleSpeech 文本前端Text Frontend中的实际用途为构建中英词典、字音转换G2P等中文语音任务数据打下基础。CC-CEDICT 是什么CC-CEDICT 是 CEDICT 项目的延续。CEDICT 项目的目标是创建一份在线可下载区别于仅可在线检索的公有领域public-domain中英词典。CEDICT 由 Paul Andrew Denisowski 于 1997 年 10 月发起项目在相当程度上借鉴了 Jim Breen 非常成功的 EDICT日英词典项目模式定位为一项协作工程用户可以向主词典文件提交词条和勘误。CC-CEDICT 的主要特点依据 README.md 与 run.sh 的注释面向汉字提供完整可下载的中译英词典并附带汉字的拼音发音标注由社区持续维护用户可在其网站上提交新词条或修正已有词条提交内容经定期审核后以 CEDICT 格式发布供下载词典数据采用Creative Commons Attribution-ShareAlike 4.0 International License知识共享 署名-相同方式共享 4.0 国际许可协议发布文件头部即包含该版权声明。在 PaddleSpeech 中这份词典数据主要服务于中文文本前端paddlespeech/t2s/frontend/phonectic.py中Chinese类借助G2pM的cedict词表收集全部合法音节syllable用于构建中文音素词表详见下文解析结果的工程用途一节。解析工具链的文件构成examples/other/cc-cedict目录下包含 4 个文件构成了完整的最小工具链文件作用README.md词典简介与解析使用说明run.sh一键脚本下载、解压 CC-CEDICT并调用解析器产出 JSONpath.sh环境初始化设置MAIN_ROOT、PATH、PYTHONPATH等local/parser.py核心解析脚本将 CEDICT 文本行解析为 JSON 对象其中path.sh通过MAIN_ROOT\realpath ${PWD}/../../../定位到仓库根目录并把$MAIN_ROOT及其utils目录加入PATH从而复用 PaddleSpeech 根目录下的通用脚本如utils/parse_options.sh。同时它设置了LC_ALLC并配套PYTHONIOENCODINGUTF-8以避免在 C locale 环境下 Python 读写词典文本时出现UnicodeDecodeError——这一点对处理包含中文、拼音的词典文件至关重要。完整执行流程一键解析为 JSON第一步运行脚本在examples/other/cc-cedict目录下直接执行./run.sh脚本开头set -e保证任何一步失败即中止避免产出残缺数据。第二步下载并解压原始词典run.sh内置了官方下载地址与文件名cedict_urlhttps://www.mdbg.net/chinese/export/cedict/cedict_1_0_ts_utf-8_mdbg.zip cedictcedict_1_0_ts_utf-8_mdbg.zip下载阶段stage-1的执行逻辑mkdir -p data if [ $stage -le -1 ] [ $stop_stage -ge -1 ];then test -f data/${cedict} || wget -O data/${cedict} ${cedict_url} pushd data unzip ${cedict} popd fi要点使用test -f判断本地是否已有 zip避免重复下载解压产物为data/cedict_ts.u8这是采用 UTF-8 编码的制表符分隔 CEDICT 文本文件mkdir -p data在脚本入口处即执行确保下载目录存在。第三步解析为 JSON解析阶段stage0mkdir -p exp if [ $stage -le 0 ] [ $stop_stage -ge 0 ];then cp data/cedict_ts.u8 exp/cedict python3 local/parser.py exp/cedict exp/cedict.json fi即先把原始文件复制到exp/cedict再调用解析器python3 local/parser.py 输入文件 输出文件生成exp/cedict.json。第四步查看结果最终目录结构exp/ |-- cedict -- cedict.json 0 directories, 2 files其中exp/cedict原始 CEDICT 文本含文件头部的版权与许可信息以#开头exp/cedict.json逐行一个 JSON 对象的结构化词典数据。exp/cedict开头几行示例# CC-CEDICT # Community maintained free Chinese-English dictionary. # # Published by MDBG # # License: # Creative Commons Attribution-ShareAlike 4.0 International License # https://creativecommons.org/licenses/by-sa/4.0/exp/cedict.json中的典型数据行{traditional: 2019冠狀病毒病, simplified: 2019冠状病毒病, pinyin: er4 ling2 yi1 jiu3 guan1 zhuang4 bing4 du2 bing4, english: COVID-19, the coronavirus disease identified in 2019} {traditional: 3C, simplified: 3C, pinyin: san1 C, english: abbr. for computers, communications, and consumer electronics} {traditional: 996, simplified: 996, pinyin: jiu3 jiu3 liu4, english: 9am-9pm, six days a week (work schedule)} {traditional: 88, simplified: 88, pinyin: ba1 ba1, english: (Internet slang) bye-bye (alternative for 拜拜[bai2 bai2])}可以看到每个 JSON 对象包含 4 个字段traditional繁体、simplified简体、pinyin带声调数字的拼音、english英文释义含口语/网络用语等标签。阶段控制复用 PaddleSpeech 的 stage/stop_stage 机制run.sh采用与 PaddleSpeech 其他示例如examples/*/asr*、examples/*/tts*一致的阶段化流水线写法stage-1 stop_stage100 source ${MAIN_ROOT}/utils/parse_options.sh || exit -1parse_options.sh位于 utils/parse_options.sh允许以--stage N、--stop_stage M命令行参数覆盖默认值默认stage-1、stop_stage100表示全流程执行下载 → 解析若只想重新解析跳过下载可执行./run.sh --stage 0 --stop_stage 0若只想下载不解析则可执行./run.sh --stage -1 --stop_stage -1。这种设计使该工具既能一次性跑通也能按需复用与仓库其他示例脚本保持一致的工程习惯。解析器原理CEDICT 文本行到 JSON 对象的转换local/parser.py 是核心解析逻辑其设计来自开源社区Franki Allegra 于 2020 年 2 月编写原地址见文件头部注释并适配了本仓库的调用方式通过sys.argv[1]/sys.argv[2]接收输入输出路径规避了原脚本文件名写死的问题。CEDICT 文本行格式CEDICT 的每条词条行遵循如下约定传统字 简体字 [拼音] /英文释义1/英文释义2/.../即字符部分与拼音部分用空格分隔拼音用[ ]包裹英文释义以/分隔行尾通常还有一个/。逐行解析逻辑def parse_line(line): parsed {} if line : dict_lines.remove(line) return 0 if line.startswith(#): return 0 if line.startswith(%): return 0 line line.rstrip(/) line line.split(/) if len(line) 1: return 0 english line[1] char_and_pinyin line[0].split([) characters char_and_pinyin[0] characters characters.split() traditional characters[0] simplified characters[1] pinyin char_and_pinyin[1] pinyin pinyin.rstrip() pinyin pinyin.rstrip(]) parsed[traditional] traditional parsed[simplified] simplified parsed[pinyin] pinyin parsed[english] english list_of_dicts.append(parsed)关键处理步骤跳过非词条行空行、以#开头版权与注释信息、以%开头的行直接忽略切分释义line.rstrip(/)去掉行尾斜杠后按/切分取line[1]作为英文释义line[0]为字符与拼音部分若切分后长度不足 2视为无效行跳过拆出字符与拼音按[把 字符部分 拼音 分开再对字符部分按空格切分得到traditional与simplified清洗拼音对拼音尾部依次rstrip()去空白与rstrip(])去右方括号得到纯拼音字符串组装字典以traditional、simplified、pinyin、english四个键存入list_of_dicts。姓氏条目去重CC-CEDICT 中常用作姓氏的汉字往往有两条记录一条标注surname前缀的释义。remove_surnames()从列表末尾向前遍历若某条english含surname 且其traditional与下一条相同则删除该姓氏条目避免同一字的多音/多义干扰下游任务def remove_surnames(): for x in range(len(list_of_dicts) - 1, -1, -1): if surname in list_of_dicts[x][english]: if list_of_dicts[x][traditional] list_of_dicts[x 1][traditional]: list_of_dicts.pop(x)如需保留姓氏条目可自行注释掉main()中对remove_surnames()的调用脚本注释中也明确指出了这一点。输出 JSONL最后main()将每个字典对象序列化为一行 JSON逐行写入输出文件形成JSON LinesJSONL格式——每行一个独立 JSON 对象便于逐行流式读取with open(sys.argv[2], wt) as fout: for one_dict in list_of_dicts: json_str json.dumps(one_dict) fout.write(json_str \n)解析结果在 PaddleSpeech 中的工程用途CC-CEDICT 解析产物在 PaddleSpeech 中并非孤立存在它直接服务于中文文本前端的音素词表构建。在 paddlespeech/t2s/frontend/phonectic.py 中Chinese类通过G2pM内置的cedict词表枚举全部合法音节class Chinese(Phonetics): def __init__(self): self.backend G2pM() self.phonemes self._get_all_syllables() self.punctuations get_punctuations(cn) self.vocab Vocab(self.phonemes self.punctuations) def _get_all_syllables(self): all_syllables set([ syllable for k, v in self.backend.cedict.items() for syllable in v ]) return list(all_syllables)从源码结构可以推断G2pM拼音转音素模型依赖的cedict词表正是以 CC-CEDICT 这类中英词典为数据来源构建的。_get_all_syllables()将词表中所有词条的拼音每个音节收集为集合再与中文标点符号一起构成Vocab。这意味着词典解析得到的拼音覆盖度直接决定文本前端能正确标注的音节范围任何新增词条、修正词条都会影响最终可用的拼音词表与vocab_size中文 TTS 流程中输入文本会先经Chinese.phoneticize()转成音素序列paddlespeech/t2s/frontend/phonectic.py#L260-L275再经numericalize()映射为 id 序列供声学模型使用。因此examples/other/cc-cedict这套解析工具是 PaddleSpeech 中文语音合成TTS数据链路中的基础组件之一其产出质量会向上传导到文本前端的音素覆盖能力。使用注意事项网络依赖首次运行需要访问www.mdbg.net下载词典 zip请确保执行环境可访问外网test -f检查保证本地已有文件时不会重复下载环境变量path.sh依赖PWD计算MAIN_ROOT务必在examples/other/cc-cedict目录下执行./run.sh否则MAIN_ROOT定位错误会导致utils/parse_options.sh加载失败字符编码脚本通过LC_ALLCPYTHONIOENCODINGUTF-8的组合规避中文文本在 C locale 下的解码错误若手动执行python3 local/parser.py请保持 UTF-8 环境许可协议词典采用 CC BY-SA 4.0 发布二次分发或商用需遵循相同方式共享条款文件头部的版权注释应予以保留姓氏去重默认剔除与主词条重复的姓氏条目需要保留时请按上文说明调整local/parser.py。小结通过 run.sh 与 local/parser.pyPaddleSpeech 将 CC-CEDICT 这一社区维护的公有领域中英词典转换为一键可复用的 JSONL 结构化数据traditional/simplified/pinyin/english四个字段清晰完整既适合作为独立的离线词典查询数据也通过G2pM.cedict与文本前端Chinese类联动为中文 TTS 的拼音标注与音素词表构建提供数据支撑。该工具链充分体现了 PaddleSpeech 示例小工具、真用途的设计思路是理解中文语音合成数据准备流程的绝佳入口。赞分享人工智能语音音频NLP媒体生成【免费下载链接】PaddleSpeechEasy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.项目地址https://gitcode.com/paddlepaddle/PaddleSpeech点击查看免费下载相关推荐PaddleSpeech 中 CC-CEDICT 词典解析实战从 MDBG 原始词条到 JSON 格式词典数据PaddleSpeech 中 CC CEDICT 词典解析实战从 MDBG 原始词条到 JSON 格式词典数据 CC CEDICT 是社区维护的免费中英词典数人工智能语音音频DictionaryByGPT4终极指南JSON、EPUB、MDX词典格式全解析与使用技巧DictionaryByGPT4终极指南JSON、EPUB、MDX词典格式全解析与使用技巧 你是否正在寻找一款能够真正帮助你 快速提高英语词汇量 的智能单词本数据集教育ECDICT免费开源英中词典数据库的完整使用指南 ECDICT免费开源英中词典数据库的完整使用指南 想要一个功能强大且完全免费的英中词典数据库吗ECDICT正是这样一个开源项目它提供了完整的英语到中数据集NLP上一篇Lilishop促销引擎深度剖析12种营销玩法完整实现指南下一篇PyTorch Chamfer Distance3D深度学习的终极距离度量解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

SSM 图书管理系统

SSM 图书管理系统

🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐是作者创作的最大动力🤞💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝欢迎留言讨论🔥🔥&am…

2026/9/25 2:35:10 阅读更多 →
PHP微信支付v3迁移实战:从签名体系到回调解密全解析

PHP微信支付v3迁移实战:从签名体系到回调解密全解析

简介:一套基于PHP微信支付V3的完整接入实例,面向需要为商城、小程序或线下收银场景快速集成微信支付的PHP开发者,重点解决统一下单、回调验签、证书配置、订单查询与退款申请等实际开发难点。压缩包共16个文件,体积仅61KB&#xf…

2026/9/25 2:34:10 阅读更多 →
Amazon Data Firehose 实战指南:基于 AWS SDK for Java 2.x 的单条与批量数据写入及指标监控

Amazon Data Firehose 实战指南:基于 AWS SDK for Java 2.x 的单条与批量数据写入及指标监控

示例工程教程后端 【免费下载链接】aws-doc-sdk-examples Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below. 项目地…

2026/9/25 2:34:10 阅读更多 →

最新新闻

ng-zorro-antd Cascader 搜索功能实战:从 nzShowSearch 到自定义 filter/sorter

ng-zorro-antd Cascader 搜索功能实战:从 nzShowSearch 到自定义 filter/sorter

UI组件前端 【免费下载链接】ng-zorro-antd Angular UI Component Library based on Ant Design 项目地址: https://gitcode.com/gh_mirrors/ng/ng-zorro-antd 点击查看 免费下载 导读 本文围绕 ng-zorro-antd 级联选择组件(Cascader)的搜索…

2026/9/25 3:53:03 阅读更多 →
用 acbuild 构建 ACI 并在单 Pod 中运行:rkt 的 PostgreSQL + Play Framework 组合镜像示例深度解析

用 acbuild 构建 ACI 并在单 Pod 中运行:rkt 的 PostgreSQL + Play Framework 组合镜像示例深度解析

容器运行时云原生网络 【免费下载链接】rkt [Project ended] rkt is a pod-native container engine for Linux. It is composable, secure, and built on standards. 项目地址: https://gitcode.com/gh_mirrors/rk/rkt 点击查看 免费下载 本指南基于 rkt 仓库 Doc…

2026/9/25 3:53:03 阅读更多 →
4PAM通信仿真:MATLAB代码到Simulink模型迁移调试全记录

4PAM通信仿真:MATLAB代码到Simulink模型迁移调试全记录

做通信仿真这几年,我一直有个习惯:先拿MATLAB脚本把算法跑通,再挪到Simulink里搭模型。这次手搓4PAM的发射接收链路,本来以为就是个“搬砖活”,结果硬是从代码到模型折腾了一整天,编译报错、波形不显示、误…

2026/9/25 3:53:03 阅读更多 →
医疗器械包装验证方案全解析:密封强度、微生物屏障与加速老化避坑指南

医疗器械包装验证方案全解析:密封强度、微生物屏障与加速老化避坑指南

简介:一份面向医疗器械研发、注册与质量控制人员的包装完整性验证方案文档,对应 YY/T0681.1、YY/T0313 等标准要求,可直接用于包装系统符合性评价与试验记录整理。文档共 1 个 doc 文件,压缩包大小约 80KB,虽体量不大&…

2026/9/25 3:53:03 阅读更多 →
2026低空经济风口已至!襄阳想学无人机怎么选?星辰航空真实学员案例告诉你答案

2026低空经济风口已至!襄阳想学无人机怎么选?星辰航空真实学员案例告诉你答案

最近低空经济热度持续走高,无人机测绘、电力巡检、商业航拍、农田植保等岗位需求不断增加,不少襄阳本地朋友都在问:襄阳无人机培训哪家好?襄阳无人机培训哪家靠谱?襄阳无人机培训哪家专业?襄阳无人机培训哪…

2026/9/25 3:53:03 阅读更多 →
新疆价钱合理的石墨水泥基改性聚氨酯复合防火保温板厂家避坑挑选指南

新疆价钱合理的石墨水泥基改性聚氨酯复合防火保温板厂家避坑挑选指南

在新疆做外墙保温、墙体保温工程,挑选石墨水泥基改性聚氨酯复合防火保温板厂家,最怕遇到价格虚高、质量不稳、交付延期、检测不合格这些问题,不少施工方都踩过小厂家的坑:要么报价看着低,实际拿到的产品偷工减料厚度不…

2026/9/25 3:52:02 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →