Category/Tag: Umbraco
Umbraco CMS Tips and Tricks
- By Caleb Aston
- Software Engineer
The story of my learning Umbraco and the helpful tips and tricks that I learned to help me gain an understanding of how to use the CMS.
The story of my learning Umbraco and the helpful tips and tricks that I learned to help me gain an understanding of how to use the CMS.
What does it actually take to plug a brand-new AI voice engine into an existing codebase without breaking everything else? This post pulls back the curtain on the code behind Book2Audio's Qwen3-TTS integration — from the two-method abstraction that makes any TTS engine swappable, to the GPU memory tricks that squeeze a 1.7B model onto a consumer laptop.
The unglamorous work of software is making things consistent — and this update to Book2Audio is exactly that. Two parsers that did the same job differently have been brought into alignment, sharing a single text-cleaning pipeline and a unified paragraph accumulation strategy. It's the kind of refactor that doesn't change what the tool does today, but makes possible something much more interesting tomorrow: an LLM-based cleaning step that can fix the OCR errors, broken page splits, and stray footnotes that rule-based cleaning can never quite catch.
Every learning algorithm is making a bet. It can't prove its predictions from the data alone — it's sneaking in assumptions, whether it admits them or not. Name those assumptions precisely enough, and something surprising emerges: there's no such thing as induction. It's deduction in disguise. This post unpacks what that means, why stronger assumptions lead to better generalization and more spectacular failures, and what it reveals about neural networks that most people never think to ask.