[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7BVT0GSFDZSWRQ086PMNHJD":3,"skill-same:01M7BVT0GSFDZSWRQ086PMNHJD":51},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M7BVT0GSFDZSWRQ086PMNHJD","pause-detector",null,"Detect pauses and silence in audio using local dynamic thresholds. Use when you need to find natural pauses in lectures, board-writing silences, or breaks between sections. Uses local context comparison to avoid false positives from volume variation.","linyouxue\u002Fskill-repair-benchmark","linyouxue","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F216151464?v=4","01M7BJEVCXKD74KH6FG9CBVSQB","林宥学","01M7BJEVE02NP217V93BKZFC0J",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fevaluation\u002Fresults\u002FMMG2Skill-Opus47-Gold15-20260924\u002Fsubmission\u002Ftasks\u002Fvideo-silence-remover\u002Fskills\u002Fpause-detector\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: pause-detector\ndescription: Detect pauses and silence in audio using local dynamic thresholds. Use when you need to find natural pauses in lectures, board-writing silences, or breaks between sections. Uses local context comparison to avoid false positives from volume variation.\n---\n\n# Pause Detector\nDetects pauses and low-energy segments using local dynamic thresholds on pre-computed energy data. Unlike global threshold methods, this compares energy to surrounding context, avoiding false positives when speaker volume varies.\n## Use Cases\n- Detecting natural pauses in lectures\n- Finding board-writing silences\n- Identifying breaks between sections\n## Usage\n```bash\npython3 \u002Froot\u002F.claude\u002Fskills\u002Fpause-detector\u002Fscripts\u002Fdetect_pauses.py \\\n    --energies \u002Fpath\u002Fto\u002Fenergies.json \\\n    --output \u002Fpath\u002Fto\u002Fpauses.json\n```\n### Parameters\n- `--energies`: Path to energy JSON file (from energy-calculator)\n- `--output`: Path to output JSON file\n- `--start-time`: Start analyzing from this second (default: 0)\n- `--threshold-ratio`: Ratio of local average for low energy (default: 0.5)\n- `--min-duration`: Minimum pause duration in seconds (default: 2)\n- `--window-size`: Local average window size (default: 30)\n### Output Format\n```json\n{\n  \"method\": \"local_dynamic_threshold\",\n  \"segments\": [\n    {\"start\": 610, \"end\": 613, \"duration\": 3},\n    {\"start\": 720, \"end\": 724, \"duration\": 4}\n  ],\n  \"total_segments\": 11,\n  \"total_duration_seconds\": 28,\n  \"parameters\": {\n    \"threshold_ratio\": 0.5,\n    \"window_size\": 30,\n    \"min_duration\": 2\n  }\n}\n```\n## How It Works\n1. Load pre-computed energy data\n2. Calculate local average using sliding window\n3. Mark seconds where energy \u003C local_avg × threshold_ratio\n4. Group consecutive low-energy seconds into segments\n5. Filter segments by minimum duration\n## Dependencies\n- Python 3.11+\n- numpy\n- scipy\n## Example\n```bash\n# Detect pauses after opening (start at 221s)\npython3 \u002Froot\u002F.claude\u002Fskills\u002Fpause-detector\u002Fscripts\u002Fdetect_pauses.py \\\n    --energies energies.json \\\n    --start-time 221 \\\n    --output pauses.json\n# Result: Found 11 pauses totaling 28 seconds\n```\n## Parameters Tuning\n| Parameter | Lower Value | Higher Value |\n|-----------|-------------|--------------|\n| `threshold_ratio` | More aggressive | More conservative |\n| `min_duration` | Shorter pauses | Longer pauses only |\n| `window_size` | Local context | Broader context |\n## Notes\n- Requires energy data from energy-calculator skill\n- Use --start-time to skip detected opening\n- Local threshold adapts to varying speaker volume\n","# Pause Detector\nDetects pauses and low-energy segments using local dynamic thresholds on pre-computed energy data. Unlike global threshold methods, this compares energy to surrounding context, avoiding false positives when speaker volume varies.\n## Use Cases\n- Detecting natural pauses in lectures\n- Finding board-writing silences\n- Identifying breaks between sections\n## Usage\n```bash\npython3 \u002Froot\u002F.claude\u002Fskills\u002Fpause-detector\u002Fscripts\u002Fdetect_pauses.py \\\n    --energies \u002Fpath\u002Fto\u002Fenergies.json \\\n    --output \u002Fpath\u002Fto\u002Fpauses.json\n```\n### Parameters\n- `--energies`: Path to energy JSON file (from energy-calculator)\n- `--output`: Path to output JSON file\n- `--start-time`: Start analyzing from this second (default: 0)\n- `--threshold-ratio`: Ratio of local average for low energy (default: 0.5)\n- `--min-duration`: Minimum pause duration in seconds (default: 2)\n- `--window-size`: Local average window size (default: 30)\n### Output Format\n```json\n{\n  \"method\": \"local_dynamic_threshold\",\n  \"segments\": [\n    {\"start\": 610, \"end\": 613, \"duration\": 3},\n    {\"start\": 720, \"end\": 724, \"duration\": 4}\n  ],\n  \"total_segments\": 11,\n  \"total_duration_seconds\": 28,\n  \"parameters\": {\n    \"threshold_ratio\": 0.5,\n    \"window_size\": 30,\n    \"min_duration\": 2\n  }\n}\n```\n## How It Works\n1. Load pre-computed energy data\n2. Calculate local average using sliding window\n3. Mark seconds where energy \u003C local_avg × threshold_ratio\n4. Group consecutive low-energy seconds into segments\n5. Filter segments by minimum duration\n## Dependencies\n- Python 3.11+\n- numpy\n- scipy\n## Example\n```bash\n# Detect pauses after opening (start at 221s)\npython3 \u002Froot\u002F.claude\u002Fskills\u002Fpause-detector\u002Fscripts\u002Fdetect_pauses.py \\\n    --energies energies.json \\\n    --start-time 221 \\\n    --output pauses.json\n# Result: Found 11 pauses totaling 28 seconds\n```\n## Parameters Tuning\n| Parameter | Lower Value | Higher Value |\n|-----------|-------------|--------------|\n| `threshold_ratio` | More aggressive | More conservative |\n| `min_duration` | Shorter pauses | Longer pauses only |\n| `window_size` | Local context | Broader context |\n## Notes\n- Requires energy data from energy-calculator skill\n- Use --start-time to skip detected opening\n- Local threshold adapts to varying speaker volume\n",{"name":5,"description":7},"main","cdcb6d230f3b15c3c33f8a2bdd16439f43602cbe","evaluation\u002Fresults\u002FMMG2Skill-Opus47-Gold15-20260924\u002Fsubmission\u002Ftasks\u002Fvideo-silence-remover\u002Fskills\u002Fpause-detector",1,"https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark","https:\u002F\u002Fgithub.com\u002Flinyouxue","2026-11-14 20:28:35",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add linyouxue\u002Fskill-repair-benchmark --skill pause-detector",{"tool":37,"command":38},"bunx","bunx skills add linyouxue\u002Fskill-repair-benchmark --skill pause-detector",{"tool":40,"command":41},"pnpm","pnpm dlx skills add linyouxue\u002Fskill-repair-benchmark --skill pause-detector","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fevaluation\u002Fresults\u002FMMG2Skill-Opus47-Gold15-20260924\u002Fsubmission\u002Ftasks\u002Fvideo-silence-remover\u002Fskills\u002Fpause-detector\u002FSKILL.md",true,[45],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"scripts\u002Fdetect_pauses.py","SCRIPT","脚本",3372,"https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fevaluation\u002Fresults\u002FMMG2Skill-Opus47-Gold15-20260924\u002Fsubmission\u002Ftasks\u002Fvideo-silence-remover\u002Fskills\u002Fpause-detector\u002Fscripts\u002Fdetect_pauses.py",[52,59,66,73,78,83],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M7E1HGVRY73NBJ022CJG13X6","video-frame-extraction","Extract frames from video files and save them as images using OpenCV","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fvideo-frame-extraction\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":19},"01M7E1HAG5R7CJ9C8NYJS771MB","openai-vision","Analyze images and multi-frame sequences using OpenAI GPT vision models","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fopenai-vision\u002FSKILL.md",[],[],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M7E1H7DADKB6QBWKC2KQ63SZ","image-ocr","Extract text content from images using Tesseract OCR via Python, including structured field extraction from receipts and forms","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fimage-ocr\u002FSKILL.md",[],[],{"skillNo":74,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M7E1H0WBNT43TENGQY7AVZHD","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fvideo-frame-extraction\u002FSKILL.md",[],[],{"skillNo":79,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M7E1GTC7D4N4Q2EF03875J9E","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fopenai-vision\u002FSKILL.md",[],[],{"skillNo":84,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M7E1GQ92CWFMGH53KSSE4WER","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fimage-ocr\u002FSKILL.md",[],[]]