mcpField
W
wjs-teaching-english

wjs-teaching-english

github.com/jianshuo创意与媒体137170 次安装今天更新
代码仓库

关于 wjs-teaching-english

这项技能将一个英文单词制作成 HLS 视频课程,适用于英语学习者和内容创作者。它把生成的开场与行动提示卡片和通过 search-app 找到的匹配片段组合起来。

主要功能

  1. 01制作单词主题 HLS 课程
  2. 02编写简短课程内容
  3. 03使用 Volcano TTS 生成语音
  4. 04查找匹配的 season2 片段
  5. 05将卡片编码为匹配片段格式

适用场景

  1. 01为目标英文单词制作视频课程
  2. 02剪辑包含指定单词的电影片段合集

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jianshuo/claude-skills --skill wjs-teaching-english

安装后在 Claude Code 中输入/wjs-teaching-english确认已加载。

详细介绍

将一个英语单词讲解成视频精选集

将一个英语单词制作成独立完整的 HLS 教学视频:

intro.ts  (word /IPA/ · 中文 gloss · usage + Volcano TTS)
   ⋯ EXT-X-DISCONTINUITY
[supercut] every season2 clip where the word is spoken  (search-app /api/playlist, COS URLs)
   ⋯ EXT-X-DISCONTINUITY
cta.ts    (关注王建硕 + Volcano TTS)
= search-app/out/<word>.m3u8

不会生成 MP4——只有两张卡片会渲染为很小的 .ts,并重新编码以匹配精选集的编解码器,从而能在任何 HLS 播放器中播放。

前置条件(检查一次即可)

  • PATH 中有 ffmpeg / ffprobe(Homebrew)。
  • Python volcengine SDK(在 mira requirements.txt 中声明,用于 TTS): python3 -c "import volcengine"。如果缺少,请征求用户同意安装 pip3 install volcengine==1.0.58(这是仓库中固定版本的依赖)。
  • 已部署的搜索应用 https://search-app-three-kappa.vercel.app (默认值)。如果在本地运行,可通过 SEARCH_APP_BASE=http://localhost:3000 覆盖(需要 Node ≥ 23.6 + npm start)。

步骤

  1. 获取单词。 一个英语单词(或短语)。如果用户给出的是句子,请选出目标单词。

  2. 编写迷你课程 JSON。 由你(Claude)撰写——无需使用词典 API。 内容要准确、简洁。保存到临时文件,例如 /tmp/lesson.json:

    {
      "word": "love",
      "ipa": "/lʌv/",
      "pos": "v. / n.",
      "gloss": "爱,热爱",
      "usage": "下面是它在真实电影里的说法",
      "tts_text": "love. 爱。"
    }
    
    • tts_text 会在片头卡片上朗读——内容仅保留单词 + 简短的中文释义(Volcano 能很好地朗读中英文混合文本)。
    • usage 是卡片上显示的一行短句(≤ ~20 个字符在低分辨率下效果最佳)。
  3. 构建:

    cd /Users/jianshuo/code/mira/search-app
    python3 scripts/build_lesson.py --word love --lesson /tmp/lesson.json
    

    实用标志:--speaker zh_female_qingxin(默认值)、--limit 300(片段数上限)、--no-tts(静音卡片)、--base <url>、--out <dir>。

  4. 报告打印出的输出路径(search-app/out/<word>.m3u8)和片段数量。交付内容为 .m3u8 及其同级文件 <word>.intro.ts / <word>.cta.ts;out/ 已加入 Git 忽略列表。

说明

  • 如果该单词没有对应片段,脚本会以 "no clips match" 退出且不会写入任何文件——请告知用户,并建议换用更常见的单词。
  • 片头/CTA 会按照精选集中第一个片段的分辨率/编解码器/帧率进行编码,因此第一次不连续处无需重新初始化解码器(可避免 bufferAppendError)。
  • 若要在本地播放:使用 ffplay search-app/out/<word>.m3u8,或通过 HTTP 提供 out/ 文件夹并在任意 HLS 播放器中打开(Safari 原生支持播放 .m3u8)。

评论

支持 Markdown