📑 每日商务英语学习推送机器人 – 第二辑
第一辑我们完成了学习/复习闭环,并稳定地实现了每日推送。
在使用过程中,用户反馈了一个不足之处:
虽然我们能看到中文解释和例句,但缺少音标和发音音频,对于英语学习体验不够完整。
数据库扩展
CREATE TABLE `business_vocab` ( `id` int NOT NULL AUTO_INCREMENT, `term` varchar(255) NOT NULL COMMENT '英文单词或短语', `part_of_speech` varchar(50) DEFAULT NULL COMMENT '词性(如n.、v.、adj.)', `translation` text NOT NULL COMMENT '中文解释', `example_sentence` text NOT NULL COMMENT '英文例句', `example_chinese` text COMMENT '(可选)中文例句翻译', `learned` tinyint(1) DEFAULT '0' COMMENT '是否已学习', `needs_review` tinyint(1) DEFAULT '0' COMMENT '是否标记为待复习', `learn_date` date DEFAULT NULL COMMENT '首次学习日期', `review_count` int DEFAULT '0' COMMENT '复习次数', `last_review_date` date DEFAULT NULL COMMENT '上次复习日期', `phonetic` varchar(100) DEFAULT NULL COMMENT '国际音标', `audio_url` varchar(255) DEFAULT NULL COMMENT '单词发音音频链接', PRIMARY KEY (`id`), UNIQUE KEY `unique_term` (`term`) ) ENGINE=InnoDB AUTO_INCREMENT=512 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
在原有表结构上,增加了两个关键字段:
- phonetic 字段:存储国际音标,方便后续发音学习。
- audio_url 字段:更新注释为「单词发音音频链接」,增强可读性。
音标与读音清洗脚本
数据来源
- 使用开源 Free Dictionary API (dictionaryapi.dev) 获取词汇详情。
https://api.dictionaryapi.dev/api/v2/entries/en
- 响应中包含 phonetics 字段,既有国际音标(如 /hɛd/),也有音频文件链接(mp3)。
清洗逻辑
核心脚本实现步骤:
- 查询数据库中缺失音标或音频的词条。
- 调用 Dictionary API 获取 phonetic & audio。
- 优先使用英式音标与英式发音(符合学习需求)。
- 写回 MySQL:
- phonetic 填写 IPA 格式音标
- audio_url 填写 mp3 直链
- 日志输出区分成功与失败:
- ✅ 成功补全音标与发音
- ℹ️ 仅获取到音标 / 仅获取到音频
- ❌ 未找到该单词

飞书卡片效果
新的飞书卡片格式:

- /hɛd/ → 来自 phonetic 字段
- 🔊 → 实际是一个可点击的超链接,链接到 audio_url,点击即可播放发音
主循环脚本在逻辑上保持一致,生成卡片时会优先读取 phonetic 和 audio_url。
若字段为空,不影响推送(自动省略音标与喇叭按钮)。
刷库参考语句
在测试或数据初始化时,可以用下面 SQL 将所有词条重置
UPDATE business_vocab SET learned = 0, needs_review = 1, learn_date = NULL, review_count = 0, last_review_date = NULL, phonetic = NULL, audio_url = NULL;
在对于已经学习过的单词,可以用下面 SQL 将指定词语刷成已学习态
UPDATE business_vocab SET learned = 1, needs_review = 1, learn_date = CURDATE(), review_count = 0, last_review_date = NULL WHERE term IN ('reposition', 'sick', 'prototype', 'conflict', 'vision');
数据库备份
mysqldump -h 127.0.0.1 -u root -p --databases english_study > english_study_backup_$(date +%F).sql
数据库恢复
mysql -h 127.0.0.1 -u root -p < english_study_backup_2025-09-08.sql