Build decisions June 18, 2026 7 min read Chatterbox vs Azure Dragon HD: Choosing a Voice Agent's TTS in Production Text-to-speech is the decision that most shapes how a voice agent sounds and what it costs. At Taritas we made the same choice three times for one production agent: a managed cloud voice, then self-hosted Chatterbox for quality, then back to a managed Azure Dragon HD voice once it cleared the bar. The honest comparison is that self-hosted Chatterbox wins on control and in-region flexibility but turns a line item into a GPU operations program, while managed Azure Dragon HD wins on cost and simplicity once its quality is good enough in your region. Neither is universally right; the answer changes with your region, your scale, and how much operations load you can carry.
→ Procurement and compliance June 17, 2026 6 min read What Happens When Your Voice AI Breaks in Production The demo never shows you what happens at 2 a.m. when the agent stops answering and a real customer is on the line. Before buying voice AI, the operations questions decide more than the feature list: who is on call, how fast you hear about an outage, whether a failure degrades safely, and what the postmortem looks like. At Taritas we run production voice agents with on-call rotations, a communication discipline kept separate from the debugging, guardrails that fail open, and blameless postmortems, because in an always-on, per-minute product, how you handle the break is what the customer remembers.
→ Build decisions June 16, 2026 7 min read White-Label Voice AI for IT Services Firms: 7 Production Lessons At Taritas we build white-label voice AI that regional IT services firms resell under their own brand, and the same lessons hold on every engagement. The ones that decide whether it works are rarely about the model: who owns the customer and the IP, whether the per-minute price can carry the architecture, and the configuration and operational discipline that keeps a live agent up. The demo is never the hard part.
→ Production engineering June 12, 2026 5 min read Three Attempts at Masking a Voice Agent's Thinking Silence After a caller stops talking, a production voice agent we run at Taritas has about 2.2 to 2.5 seconds of dead air before its first audio frame. We made three serious attempts to mask it: a classifier-driven filler, a state-change-driven filler, and preemptive generation. All three are disabled in production today, each for a different structural reason, and the usable lesson is about speech queue ordering: the only filler insertion point that works is the one where the reply does not exist yet.
→ Production engineering June 12, 2026 5 min read Rate Limiting a Voice Agent With One Postgres UPDATE A real-time voice agent's daily call cap has to be checked before the greeting plays, survive concurrent calls, and roll over at midnight. At Taritas we do all three in one Postgres UPDATE: a CASE expression handles the midnight rollover, the WHERE clause enforces the cap, and RETURNING reports which case fired. One round trip, no race condition, no scheduled job.
→ Production engineering June 12, 2026 7 min read A 15-Second Default Timeout Broke Our Voice AI's Call Transfers A production voice AI agent we run at Taritas stopped transferring callers to staff. Every transfer failed with a 504 at exactly 15 seconds, Envoy Gateway's default route timeout, while the destination line had developed a 13-second post-dial delay. The failed API calls left dials ringing in the background, so staff answered ghost calls. One scoped timeouts block on the HTTPRoute fixed it.
→ Procurement and compliance June 18, 2026 4 min read Data Residency for Voice AI: Why Your Region Decides Your Voice For a regulated voice AI deployment, data residency is not only a storage rule. It quietly decides which models and voices you can use, because a managed provider's catalog is not identical in every region: the flagship voice in the demo may not exist in the region your rules require. At Taritas we hit this directly, the natural managed voice we wanted was not available in our client's required region, so we self-hosted an open model in-region to keep both residency and quality, then moved back once the managed voice reached that region. The practical rule is to pin the region first, audit what is actually available there, and treat self-hosting in-region as the escape hatch when the managed catalog is thin.
→