Part 2 of this series used edge-tts to generate voiceovers, and Part 5 laid out the TTS technology evolution. This is the final installment — a complete selection guide for when your project outgrows edge-tts. What are the 31 TTS engines and services on the market, and how do you choose among them?
We organize the selection landscape into three layers: free open-source engines (run locally, zero licensing cost but with GPU deployment overhead), free cloud tiers (ready out of the box with usage limits), and paid services (ready out of the box + SLA + advanced capabilities). These are not strictly hierarchical — an open-source engine on self-hosted GPU can be cheaper long-term than paid cloud, while cloud services offer convenience that self-deployment can’t match. The choice ultimately depends on your budget, team capacity, and timeline.
In Part 2, we used three lines of edge-tts code to generate voiceovers for our promo video. But edge-tts is just one entry point into the vast world of TTS — where did its neural architecture come from? And beyond calling Microsoft’s API, what else can TTS do today?
This article traces speech synthesis from VODER in 1939 to Flow Matching in 2025, covering the evolution of neural TTS and its frontier capabilities. By the end, you’ll be able to answer a few questions: why can’t free edge-tts clone voices, what modern TTS can actually do, and where it’s heading next.
Overview This is the final installment of the series. The previous three parts covered generating footage with Remotion, batch voiceover with edge-tts, and offline BGM synthesis with numpy. This part brings everything together: using ffmpeg filter_complex to mux the silent video, 7 voice clips, and one BGM into the final export — along with the end-to-end workflow, a pitfall cookbook, and the underlying principles.
ffmpeg Muxing Overall Approach The muxing stage has a simple job: pack three things into one MP4.
Offline BGM Synthesis with numpy The third challenge is background music. This project uses numpy to synthesize a 45-second ethereal BGM on the fly — zero copyright risk, fully controllable style.
Why Not a Music Library Stock music libraries have three problems:
Copyright ambiguity: Free tracks come with varying licenses; commercial use may be risky. Style mismatch: Finding a 45-second ethereal track that doesn’t compete with voiceover and can be trimmed to any length is nearly impossible. No batch tweaking: Need to adjust volume, change reverb, or switch keys? A fixed recording gives you no control. Code generation flips this: tweak a few parameters, re-run, and you get a new version instantly.
edge-tts in Practice This is Part 2 of the series, focusing on Text-to-Speech (TTS) — using edge-tts (Microsoft Azure’s free neural TTS interface) to batch-generate multilingual, multi-voice voiceover files. All code comes from a real project (MiBee NVR 45-second promo) and is ready to reuse.
Installation edge-tts is a Python async library. Install it inside a virtual environment:
bash 1 2 python -m venv .venv .venv\Scripts\pip install edge-tts numpy numpy is not a dependency of edge-tts, but it will be needed for BGM synthesis (Part 3 of this series), so installing it here saves a step.
This article is based on hands-on experience from the MiBee NVR open-source 45-second promo video project. You will learn how to generate video footage by code (Remotion), produce AI voiceovers (edge-tts), synthesize BGM offline (numpy), and mux everything into a final video with ffmpeg. All steps are ready to follow.
What This Technology Does A multilingual promo project consists of three independent production stages, finally muxed by ffmpeg:
Stage Tool Output Footage Remotion (React-based video) Silent MP4 Voiceover edge-tts (Microsoft free TTS) MP3 per clip BGM numpy offline synthesis WAV file Muxing ffmpeg filter_complex Final MP4 (video + voice + BGM) The overall pipeline looks like this:
Why Understanding These Four Stages Matters AI engineering has gone through four paradigm shifts between 2022 and 2026. If you only master Prompt Engineering, you’ve covered just one of these stages.
Learning to program with only print statements—without functions, classes, or frameworks—won’t let you write real programs; the same holds for AI engineering. These four stages form a complete capability ladder, and skipping any step will limit you in practice.
What Is Loop Engineering? Definition (Addy Osmani, June 2026): Loop engineering is replacing yourself as the person who prompts the agent. You design the system that does it instead. The loop is a recursive goal where you define a purpose and the AI iterates until complete.
Simply put: Loop Engineering = letting the system start its own workflows.
Example:
Traditional way: You discover bug → You say “fix this bug” → AI fixes it Loop Engineering: System automatically discovers bug → System says “fix this bug” → AI fixes it Origins The evolution of this concept:
Scene: The System Is Reliable, But Humans Are Still the Bottleneck Suppose you have a well-functioning Harness system, and AI can:
Analyze requirements and write code Run tests and validate outputs Fix discovered bugs Optimize performance and code quality Every step works well—reliable, predictable, controllable. But whenever a bug is found, you must say “fix this bug.” Then another bug appears, and you say “fix this too.” Then comes a new feature request, and you say “implement this feature.”
Chapter 9: Complete YOLO Tutorial with Rust With its core characteristics of memory safety, zero-cost abstractions, and high performance, Rust is well-suited for production-grade YOLO deployment. In edge computing and high-concurrency scenarios, Rust’s performance advantages are relatively pronounced.
YOLO-related Libraries in Rust Ecosystem Library Name Crates.io Maintenance Status Use Cases Recommendation Index ort (onnxruntime-rs) v2.0.0 Super Active Official ONNX binding, full platform support ⭐⭐⭐⭐⭐ ultralytics-inference v0.0.11 Official Maintenance Official Ultralytics Rust library ⭐⭐⭐⭐⭐ tract v0.21.0 Active Pure Rust inference engine, no external dependencies ⭐⭐⭐⭐ opencv-rust v0.94.0 Active OpenCV binding, DNN + image processing ⭐⭐⭐⭐ tch-rs v0.15.0 Active LibTorch binding, PyTorch models ⭐⭐⭐ candle v0.6.0 Super Active HuggingFace pure Rust ML framework ⭐⭐⭐⭐ Core Features Comparison: