[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XEEBTFY4AHVREASKNRP2DX":3,"skill-same:01M6XEEBTFY4AHVREASKNRP2DX":57},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":13,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M6XEEBTFY4AHVREASKNRP2DX","TTS Audio Mastering",null,"Practical mastering steps for TTS audio: cleanup, loudness normalization, alignment, and delivery specs.","Waaaalnut\u002Fskillsbench","Waaaalnut","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103995656?v=4","01M6XCS9K1V51EY3JMB7DGMX24","01M6XCS9Q4WPW88W62C55G1H44",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fmultilingual-video-dubbing\u002Fenvironment\u002Fskills\u002Ftext-to-speech\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,5,25,26,27,28,29,30],"Audio","tts","cleanup","normalization","alignment","practical","delivery","for","2026-11-10 10:12:30",false,"---\n\nname: \"TTS Audio Mastering\"\ndescription: \"Practical mastering steps for TTS audio: cleanup, loudness normalization, alignment, and delivery specs.\"\n---\n\n# SKILL: TTS Audio Mastering\n\nThis skill focuses on producing clean, consistent, and delivery-ready TTS audio for video tasks. It covers speech cleanup, loudness normalization, segment boundaries, and export specs.\n\n## 1. TTS Engine & Output Basics\n\nChoose a TTS engine based on deployment constraints and quality needs:\n\n* **Neural offline** (e.g., Kokoro): stable, high quality, no network dependency.\n* **Cloud TTS** (e.g., Edge-TTS \u002F OpenAI TTS): convenient, higher naturalness but network-dependent.\n* **Formant TTS** (e.g., espeak-ng): for prototyping only; often less natural.\n\n**Key rule:** Always confirm the **native sample rate** of the generated audio before resampling for video delivery.\n\n---\n\n## 2. Speech Cleanup (Per Segment)\n\nApply lightweight processing to avoid common artifacts:\n\n* **Rumble\u002FDC removal:** high-pass filter around **20 Hz**\n* **Harshness control:** optional low-pass around **16 kHz** (helps remove digital fizz)\n* **Click\u002Fpop prevention:** short fades at boundaries (e.g., **50 ms** fade-in and fade-out)\n\nRecommended FFmpeg pattern (example):\n\n* Add filters in a single chain, and keep them consistent across segments.\n\n---\n\n## 3. Loudness Normalization\n\nTarget loudness depends on the benchmark\u002Ftask spec. A common target is ITU-R BS.1770 loudness measurement:\n\n* **Integrated loudness:** **-23 LUFS**\n* **True peak:** around **-1.5 dBTP**\n* **LRA:** around **11** (optional)\n\nRecommended workflow:\n\n1. **Measure loudness** using FFmpeg `ebur128` (or equivalent meter).\n2. **Apply normalization** (e.g., `loudnorm`) as the final step after cleanup and timing edits.\n3. If you adjust tempo\u002Fduration after normalization, re-normalize again.\n\n---\n\n## 4. Timing & Segment Boundary Handling\n\nWhen stitching segment-level TTS into a full track:\n\n* Match each segment to its target window as closely as possible.\n* If a segment is shorter than its window, pad with silence.\n* If a segment is longer, use gentle duration control (small speed change) or truncate carefully.\n* Always apply boundary fades after padding\u002Ftrimming to avoid clicks.\n\n**Sync guideline:** keep end-to-end drift small (e.g., **\u003C= 0.2s**) unless the task states otherwise.\n","# SKILL: TTS Audio Mastering\n\nThis skill focuses on producing clean, consistent, and delivery-ready TTS audio for video tasks. It covers speech cleanup, loudness normalization, segment boundaries, and export specs.\n\n## 1. TTS Engine & Output Basics\n\nChoose a TTS engine based on deployment constraints and quality needs:\n\n* **Neural offline** (e.g., Kokoro): stable, high quality, no network dependency.\n* **Cloud TTS** (e.g., Edge-TTS \u002F OpenAI TTS): convenient, higher naturalness but network-dependent.\n* **Formant TTS** (e.g., espeak-ng): for prototyping only; often less natural.\n\n**Key rule:** Always confirm the **native sample rate** of the generated audio before resampling for video delivery.\n\n---\n\n## 2. Speech Cleanup (Per Segment)\n\nApply lightweight processing to avoid common artifacts:\n\n* **Rumble\u002FDC removal:** high-pass filter around **20 Hz**\n* **Harshness control:** optional low-pass around **16 kHz** (helps remove digital fizz)\n* **Click\u002Fpop prevention:** short fades at boundaries (e.g., **50 ms** fade-in and fade-out)\n\nRecommended FFmpeg pattern (example):\n\n* Add filters in a single chain, and keep them consistent across segments.\n\n---\n\n## 3. Loudness Normalization\n\nTarget loudness depends on the benchmark\u002Ftask spec. A common target is ITU-R BS.1770 loudness measurement:\n\n* **Integrated loudness:** **-23 LUFS**\n* **True peak:** around **-1.5 dBTP**\n* **LRA:** around **11** (optional)\n\nRecommended workflow:\n\n1. **Measure loudness** using FFmpeg `ebur128` (or equivalent meter).\n2. **Apply normalization** (e.g., `loudnorm`) as the final step after cleanup and timing edits.\n3. If you adjust tempo\u002Fduration after normalization, re-normalize again.\n\n---\n\n## 4. Timing & Segment Boundary Handling\n\nWhen stitching segment-level TTS into a full track:\n\n* Match each segment to its target window as closely as possible.\n* If a segment is shorter than its window, pad with silence.\n* If a segment is longer, use gentle duration control (small speed change) or truncate carefully.\n* Always apply boundary fades after padding\u002Ftrimming to avoid clicks.\n\n**Sync guideline:** keep end-to-end drift small (e.g., **\u003C= 0.2s**) unless the task states otherwise.\n",{"name":5,"description":7},"main","7eeb258ada72b7f58119b0e7a2c00ea89d9beedd","tasks\u002Fmultilingual-video-dubbing\u002Fenvironment\u002Fskills\u002Ftext-to-speech","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench","https:\u002F\u002Fgithub.com\u002FWaaaalnut","student of Zhejiang University","2026-04-21 23:16:23",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add Waaaalnut\u002Fskillsbench --skill \"TTS Audio Mastering\"",{"tool":49,"command":50},"bunx","bunx skills add Waaaalnut\u002Fskillsbench --skill \"TTS Audio Mastering\"",{"tool":52,"command":53},"pnpm","pnpm dlx skills add Waaaalnut\u002Fskillsbench --skill \"TTS Audio Mastering\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fmultilingual-video-dubbing\u002Fenvironment\u002Fskills\u002Ftext-to-speech\u002FSKILL.md",true,[],[58,72,87,111,132,150],{"skillNo":59,"name":60,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":68,"publishedAt":31},"01M6XEWMJ6VY3ZC53MPDCPG3GH","data-reconciliation","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fxlsx-recover-data\u002Fenvironment\u002Fskills\u002Fdata-reconciliation\u002FSKILL.md",[63],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[69,70,71],"data reconciliation","reconciliation","data",{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":31},"01M6XEW8MNPMF1KRXV6ATGFRQF","speech-to-text","Transcribe video to timestamped text using Whisper tiny model (pre-installed).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-tutorial-indexer\u002Fenvironment\u002Fskills\u002Fspeech-to-text\u002FSKILL.md",[],[79,80,81,82,83,84,85,86],"speech","text","speech to text","transcribe video","whisper","model","Video","transcribe",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":31},"01M6XEW3FQZP0T1RKQQJFXVY9T","video-processor","Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses\u002Fopenings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fvideo-processor\u002FSKILL.md",[93],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[85,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110],"processor","video processor","batch","create","reels","when","parts","segments","process","videos","you","segment","filter","ffmpeg","use","remove",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":118,"publishedAt":31},"01M6XEVXJ5KZ0NTY3XZKRY4AS1","silence-detector","Detect initial silence segments in audio\u002Fvideo using energy-based analysis. Use when you need to find low-energy periods at the start of recordings (title slides, setup time, pre-roll silence).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsilence-detector\u002FSKILL.md",[117],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[119,120,121,122,100,105,123,124,125,126,127,102,128,23,85,129,130,131,109],"detector","silence detector","title","slides","time","energy","at","recordings","detect","find","analysis","start","setup",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":31},"01M6XEVT3NGRN1FT7JPMAPXS6M","segment-combiner","Combine multiple segment detection results into a unified list. Use when you need to merge segments from different detectors, prepare removal lists for video processing, or consolidate detection outputs.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsegment-combiner\u002FSKILL.md",[],[106,139,85,140,141,142,143,30,100,144,145,102,105,146,147,109,148,149],"segment combiner","detection","prepare","merge","video processing","outputs","combine","processing","consolidate","results","list",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":159,"publishedAt":31},"01M6XEVMPVASGS2KX86QK4FMT7","report-generator","Generate compression reports for video processing. Use when you need to create structured JSON reports with duration statistics, compression ratios, and segment details after video processing.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Freport-generator\u002FSKILL.md",[156],{"categoryNo":157,"categoryName":158,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000034","行政与办公人员",[160,161,162,106,100,30,105,163,146,164,165,166,109,143,167,85,168,169,98],"generator","report generator","report","with","statistics","structured","reports","json","compression","generate"]