{"id":"307e8466-cdd7-4d96-8bec-92e6c3184381","shortId":"dV9XCR","kind":"skill","title":"Force-align narration and transcript text into subtitle or SMIL timing maps","tagline":"Use aeneas when an agent already has audio and text, but still needs timing. The workflow aligns spoken narration against fragments of plain text or XML and emits sync maps that can be turned into subtitles, EPUB 3 media overlays, JSON timing data, or other downstream caption ass","description":"# Force-align narration and transcript text into subtitle or SMIL timing maps\n\nUse aeneas when an agent already has audio and text, but still needs timing. The workflow aligns spoken narration against fragments of plain text or XML and emits sync maps that can be turned into subtitles, EPUB 3 media overlays, JSON timing data, or other downstream caption assets.\n\n## Prerequisites\n\nPython, pip, FFmpeg, and eSpeak\n\n## Installation\n\nUse the upstream install or setup path that matches your environment:\n- pip install numpy\n- pip install aeneas\n\nRequirements and caveats from upstream:\n- **aeneas** is a Python/C library and a set of tools to automagically synchronize audio and text (aka forced alignment).\n- Quick Links: [Home](http://www.readbeyond.it/aeneas/) - [GitHub](https://github.com/readbeyond/aeneas/) - [PyPI](https://pypi.python.org/pypi/aeneas/) - [Docs](http://www.readbeyond.it/aeneas/docs/) - [Tutorial](http:...\n- [Python](https://python.org/) 2.7 (Linux, OS X, Windows) or 3.5 or later (Linux, OS X)\n\nBasic usage or getting-started notes:\n- For example, given\n- All-in-one installers are available for Mac OS X and Windows,\n- and a Bash script for deb-based Linux distributions (Debian, Ubuntu)\n\n- Source: https://github.com/readbeyond/aeneas\n- Extracted from upstream docs: https://raw.githubusercontent.com/readbeyond/aeneas/HEAD/README.md\n\n## Documentation\n\n- https://readbeyond.it/aeneas/\n\n## Source\n\n- [Agent Skill Exchange](https://agentskillexchange.com/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps/)","tags":["force","align","narration","and","transcript","text","into","subtitle","smil","timing","maps","skills"],"capabilities":["skill","source-agentskillexchange","skill-force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps","topic-agent-skills","topic-ai-agents","topic-ai-tools","topic-awesome-list","topic-claude-code","topic-codex","topic-cursor","topic-llm","topic-mcp","topic-npx-skills","topic-openclaw","topic-skills-catalog"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/agentskillexchange/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add agentskillexchange/skills","source_repo":"https://github.com/agentskillexchange/skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (1,564 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:10:29.654Z","embedding":null,"createdAt":"2026-05-18T13:16:35.668Z","updatedAt":"2026-05-18T19:10:29.654Z","lastSeenAt":"2026-05-18T19:10:29.654Z","tsv":"'/)':194 '/aeneas/':256 '/aeneas/)':176 '/aeneas/docs/)':188 '/pypi/aeneas/)':184 '/readbeyond/aeneas':245 '/readbeyond/aeneas/)':180 '/readbeyond/aeneas/head/readme.md':252 '/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps/)':263 '2.7':195 '3':51,112 '3.5':201 'aenea':15,76,146,152 'agent':18,79,258 'agentskillexchange.com':262 'agentskillexchange.com/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps/)':261 'aka':168 'align':3,30,64,91,170 'all-in-on':217 'alreadi':19,80 'ass':61 'asset':122 'audio':21,82,165 'automag':163 'avail':223 'base':237 'bash':232 'basic':207 'caption':60,121 'caveat':149 'data':56,117 'deb':236 'deb-bas':235 'debian':240 'distribut':239 'doc':185,249 'document':253 'downstream':59,120 'emit':41,102 'environ':140 'epub':50,111 'espeak':128 'exampl':215 'exchang':260 'extract':246 'ffmpeg':126 'forc':2,63,169 'force-align':1,62 'fragment':34,95 'get':211 'getting-start':210 'github':177 'github.com':179,244 'github.com/readbeyond/aeneas':243 'github.com/readbeyond/aeneas/)':178 'given':216 'home':173 'http':190 'instal':129,133,142,145,221 'json':54,115 'later':203 'librari':156 'link':172 'linux':196,204,238 'mac':225 'map':13,43,74,104 'match':138 'media':52,113 'narrat':4,32,65,93 'need':26,87 'note':213 'numpi':143 'one':220 'os':197,205,226 'overlay':53,114 'path':136 'pip':125,141,144 'plain':36,97 'prerequisit':123 'pypi':181 'pypi.python.org':183 'pypi.python.org/pypi/aeneas/)':182 'python':124,191 'python.org':193 'python.org/)':192 'python/c':155 'quick':171 'raw.githubusercontent.com':251 'raw.githubusercontent.com/readbeyond/aeneas/head/readme.md':250 'readbeyond.it':255 'readbeyond.it/aeneas/':254 'requir':147 'script':233 'set':159 'setup':135 'skill':259 'skill-force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps' 'smil':11,72 'sourc':242,257 'source-agentskillexchange' 'spoken':31,92 'start':212 'still':25,86 'subtitl':9,49,70,110 'sync':42,103 'synchron':164 'text':7,23,37,68,84,98,167 'time':12,27,55,73,88,116 'tool':161 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-tools' 'topic-awesome-list' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-llm' 'topic-mcp' 'topic-npx-skills' 'topic-openclaw' 'topic-skills-catalog' 'transcript':6,67 'turn':47,108 'tutori':189 'ubuntu':241 'upstream':132,151,248 'usag':208 'use':14,75,130 'window':199,229 'workflow':29,90 'www.readbeyond.it':175,187 'www.readbeyond.it/aeneas/)':174 'www.readbeyond.it/aeneas/docs/)':186 'x':198,206,227 'xml':39,100","prices":[{"id":"c3205973-1b3b-475d-a57e-ec0e166e40e2","listingId":"307e8466-cdd7-4d96-8bec-92e6c3184381","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"agentskillexchange","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:16:35.668Z"}],"sources":[{"listingId":"307e8466-cdd7-4d96-8bec-92e6c3184381","source":"github","sourceId":"agentskillexchange/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps","sourceUrl":"https://github.com/agentskillexchange/skills/tree/main/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps","isPrimary":false,"firstSeenAt":"2026-05-18T13:16:35.668Z","lastSeenAt":"2026-05-18T19:10:29.654Z"}],"details":{"listingId":"307e8466-cdd7-4d96-8bec-92e6c3184381","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"agentskillexchange","slug":"force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps","github":{"repo":"agentskillexchange/skills","stars":8,"topics":["agent-skills","ai-agents","ai-tools","awesome-list","claude-code","codex","cursor","llm","mcp","npx-skills","openclaw","skills-catalog"],"license":"mit","html_url":"https://github.com/agentskillexchange/skills","pushed_at":"2026-05-18T19:02:17Z","description":"The open catalog of AI agent skills — 2,000+ security-scanned skills for Claude Code, Cursor, Codex, and more.","skill_md_sha":"6f47800c061315e79e45fbe994904892678d8aaf","skill_md_path":"skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/agentskillexchange/skills/tree/main/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"Force-align narration and transcript text into subtitle or SMIL timing maps","description":"Use aeneas when an agent already has audio and text, but still needs timing. The workflow aligns spoken narration against fragments of plain text or XML and emits sync maps that can be turned into subtitles, EPUB 3 media overlays, JSON timing data, or other downstream caption assets."},"skills_sh_url":"https://skills.sh/agentskillexchange/skills/force-align-narration-and-transcript-text-into-subtitle-or-smil-timing-maps"},"updatedAt":"2026-05-18T19:10:29.654Z"}}