Community编程与开发github.com

发音条 (Pronunciation Strip)

在聊天回复中添加一个紧凑的、可点击播放的发音条,用于2-4个英语单词,并内联标注这些单词。当用户询问单词发音、音频按钮或会话中的词汇笔记时使用;不用于生成独立的音频文件或网页。

发音条 (Pronunciation Strip) 是什么?

该技能用于在AI聊天回复中生成一个紧凑的发音条,包含2-4个英语单词的按钮。用户点击每个按钮即可通过浏览器语音合成播放单词发音,无需打开外部链接或下载文件。同时,技能要求在内联句子里用KaTeX标注每个单词的拼写、美式IPA音标、词性和简短释义,并随机从一组无障碍色板中为每个单词分配颜色,以增强可读性。此技能支持Codex等客户端,通过生成HTML片段并嵌入私有Unicode字符引用来实现可视化渲染。如果客户端无法渲染内联可视化,则回退为使用有道词典的音频链接。该技能适用于需要教授词汇的对话场景,尤其适合帮助学习者掌握高级、易混淆或核心词汇。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add 1203124102-oss/codex-pronunciation-strip

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

发音条

在聊天回复中添加一个紧凑的单行词按钮条。每个按钮点击后通过浏览器语音合成朗读单词,不会打开、下载或离开当前对话。将发音条与内联词汇注释配对使用。

工作流程

  1. 选择2-4个值得教授的单词:高于用户当前水平、容易混淆或对回复内容至关重要的单词。避免重复注释已解释过的单词。

  2. 在正常句子中注释每个单词,切勿作为单独列表。使用KaTeX配合彩色加粗文本、美式IPA音标、词性以及用户语言的简短释义。从一个小型无障碍色板(#2563eb, #7c3aed, #059669, #b45309, #db2777, #0e7490)中为每个单词随机选取一种颜色;保持每个单词一种实色,并在同一回复中避免重复颜色。此客户端仅渲染$$...$$,因此请编写:

    保持紧凑($$\textcolor{#7c3aed}{\textbf{compact}}$$ /kəmˈpækt/,adj. 紧凑的)

  3. 生成发音条:

    python scripts/make_compact_strip.py --out <绝对路径>.html word1 word2 ...
    

    保持文件持久且易于客户端读取。优先使用会话的可视化目录,文件名使用ASCII字符,例如~/.codex/visualizations/<日期>/<线程ID>/pron-<缩写>.html。

  4. 脚本将输出路径和可视化引用。将引用逐字放在最终回复的末尾,独占一行。

渲染规则

引用的两端包裹着私有Unicode字符:开头U+E200,分隔符U+E202,结尾U+E201。从脚本输出中复制。如果您重新输入,必须使用完全相同的码点。错误的结束字符(例如U+E041)会导致整个引用静默地变为纯文本,因此不会出现发音条。

约束条件

  • 仅输出HTML片段。不要添加<!doctype>、<html>、<head>或<body>;确保CSS和JavaScript作用域限定在生成的根ID内。
  • 保持发音条有2-4个按钮,仅一行,仅在空间紧张时换行。
  • 不要链接到外部词典或TTS页面,不要嵌入大型音频播放器。按钮必须在原地播放。
  • 使用宿主主题变量(--foreground, --border, --primary, --accent, --ring, --primary-foreground)而非硬编码色板。
  • 如果客户端完全无法渲染内联可视化,则回退为在句子中使用紧凑的扬声器链接: [🔊](https://dict.youdao.com/dictvoice?audio=<单词>&type=2)。

文件

  • scripts/make_compact_strip.py — 验证2-4个单词,写入片段,并输出可视化引用。
  • assets/strip-template.html — 带__ROOT_ID__和__WORDS_JSON__占位符的片段模板。

需要Python 3.8或更高版本;无第三方包依赖。

相关技能