Ryan Welch
  • Home
  • Blog
  • Projects
  • About
Apr 25 · in engineering

Splitting text into subtitle pages is harder than it looks

Word count limits and pause detection get you most of the way there. The rest involves linguistics, reading psychology, and a surprising amount of language-specific edge cases.

Apr 19 · in engineering

Qwen3-TTS for synthesis and audio alignment data

How to synthesize speech with Qwen3-TTS and build word-level alignment data with Qwen3-ForcedAligner.

Apr 15 · in engineering

Kokoro for TTS and word timestamps

Using Python for direct Kokoro timing data, and a simple chunk-duration approximation for JavaScript when the public API only exposes text and audio.

Feb 26 · in engineering

Automated Split DNS for a Kubernetes cluster

How I set up split DNS for my Kubernetes homelab so services get automatic internal DNS records and optional external access through a VPS and Tailscale.

Feb 06 · in engineering

Adding D2 diagrams to an Astro site

How to add D2 diagram support to an Astro site using astro-d2, with working dark mode support and Docker deployment.

Mar 13, 2025 · in engineering

Most useful markdown plugins to use with Astro

Discover my curated list of the best Markdown plugins for Astro, handpicked to enhance your blog. Learn what each plugin does, why they’re essential, and how they can improve your Markdown content.

  • Previous
  • 1
  • 2
  • Next

© 2012-2026 Ryan Welch