Daily report · Thursday 14 August 2026
Today was all about how Josh sounds. Cliff passed every test we gave him — you picked well. Then we tried three ways to get him onto the phone, one at a time. The first broke Josh and we undid it within the hour. Late in the day we found out why: we had jumped two versions of software when we only needed to jump one. That is good news, and it is the last thing in this report.
Read this first No customer and no client was ever part of today's testing. Everything ran on our 888 test line. Chad's and Ted's phone numbers were never switched to anything new, not for a minute.
We did not just assume that. Afterwards we read the call records for the risky hour. Three calls happened in that window and all three were ours. No real caller ever reached the broken version.
Cliff is the right voice. We tested him on the exact words that have gone wrong on real calls before. He said every one of them correctly.
Getting him onto the phone is the problem, and it is not his fault. We tried three routes. The first broke Josh. The second was too slow. The third costs nothing and is ready to try.
And we found our own mistake. We upgraded the phone software two versions when Cliff only needed one. The version that broke Josh is the second one. The first one does not contain the change that broke him. So there is a smaller step we have not taken yet.
Josh is running tonight on the setup we know works. Dil rang the line at the end of the day and said it sounded better than anything else he heard all day.
So you can see the shape of it before the detail.
| When | What we did | Result |
|---|---|---|
| Morning | Auditioned Cliff on our own problem words | Passed everything |
| Mid-morning | Upgraded the phone software to version 1.7 | Broke Josh's speech |
| Within the hour | Put version 1.5 back and rang again | Fixed — and proved the cause |
| Midday | Tried a newer voice from our current supplier | Warmer, but too slow |
| Afternoon | Checked what else our supplier offers | Nothing better left to buy |
| Late | Found the voice settings nobody had ever changed | Built and ready to try |
| End of day | Found Cliff only needs version 1.6, not 1.7 | A smaller step, still untried |
Before spending a day on him, we made sure he was worth it.
It is easy to like a voice on a demo page. A demo is not a phone call. So instead of judging Cliff on a sample script, we gave him the exact words that have actually gone wrong on our real calls.
| What we tested | Why that word | Cliff |
|---|---|---|
| GC Home Inspection | Our current voice says "GEC" — it did that on a real call last week | Correct |
| Pearland | Chad's own town. Our voice says it wrong without help | Correct |
| Hinderer | Ted's surname | Correct |
| Hockessin | A town Ted covers | Correct |
| A full email address | Emails are where voices usually fall apart | Correct |
| A dollar amount | Prices must be clear and the same both times | Correct |
There is a detail worth knowing here. Today we use small spelling tricks to force our current voice to say certain words properly — we feed it "Pairland" so that it says Pearland correctly. Cliff got those words right both with the tricks and without them.
That means Cliff needs fewer patches than what we run now, not more.
So the question became simple Cliff is better. How do we get him onto the phone?
Three routes, tried one at a time. We never changed two things at once. If you change two things and the call goes badly, you have two suspects and you have learned nothing. That rule cost us extra phone calls today, and it is the reason we can tell you exactly what broke.
The direct route. It broke Josh, and we undid it the same hour.
Josh is not one program. He is several separate pieces working together:
the phone line that carries the call · the part that listens and turns speech into words · the part that thinks and decides what to say · the part that speaks and turns words back into a voice.
Something has to hold those four together and keep them in step — who is talking, when to stop, what happens when a caller interrupts. That thing is called Pipecat.
Cliff is new, so he needs a newer Pipecat than the one we run. We were on version 1.5. We upgraded to the newest, version 1.7.
Chad's and Ted's live phone lines run through this same software. So before changing anything we did three things.
We wrote down the exact current setup — all 63 pieces of software and their versions — so we could put it back precisely rather than from memory.
We took a copy of Josh's settings file in case it needed restoring.
We checked what the upgrade would change before running it. It came back as one single piece of software being replaced and nothing else. As it turned out, one piece was enough to cause the problem.
Dil rang and read out a normal phone number. Josh began repeating it back, stopped in the middle, went silent for nine seconds, and then finished it.
His replies were slower all through the call. Parts of his speech came out broken.
We wanted to know whether Josh had made a mistake or the new software had. So we checked our own records of what we had sent him to say. The words were perfect and complete — the whole phone number, sent in one go, in a sixth of a second.
So Josh said the right thing. The new software played it badly. That is an important difference. Nothing about Josh's thinking was wrong.
We restored version 1.5 from the notes we had taken, then checked that all 63 pieces matched what we started with. They did, exactly.
Then Dil rang again and read out the same phone number. It came back whole, in one piece, with no gap.
That is what turns a guess into a fact. Same script, same number, same person calling — only the software version different. The new version caused it.
Why would newer software be worse? A new version is not built to be better for us. It is built to be better for most people who use it.
The change they made controls the timing of when sound is played. It works fine for the high quality audio a computer or a website uses. Phone calls carry much lower quality sound — about a tenth of it — and almost nobody builds for that. So a change that helps everyone else broke us.
We did not stop at "it broke". We compared the old and new versions line by line, found the exact change responsible, and ruled out four others that looked suspicious but were not. That work is what made the discovery at the end of the day possible.
No software upgrade needed. Sounded better. Still turned down.
With Cliff blocked, we looked at what we could reach without changing any software at all. Our current supplier has a newer, richer voice called v3. It costs exactly the same as what we pay today.
It genuinely sounded better. All day Dil had been describing a thin, tinny sound — "like talking to a radio". v3 removed it.
That taught us something useful even though we did not keep it. The thin sound comes from the voice, not from the phone line. That is why route 3 exists.
It was slow. There was a noticeable pause before Josh started talking.
That is a real cost, not a small one. A caller waiting in silence is worse than a caller hearing a plainer voice. People hang up on silence. They do not hang up on ordinary.
Dil's ruling was simple: "the slowness is not acceptable." We agreed and stopped there. That voice was built to sound expressive, not to hold a fast conversation, and a booking call needs the second one more.
When we first switched v3 on, Dil rang and Josh answered and then said nothing at all. Twice.
The reason was that our supplier will not allow that particular voice over the type of connection we use. They refused it, and nothing told us until a caller was already on the line.
We had tested that voice beforehand. We tested it the wrong way — we checked one entrance while the phone call actually uses a different one. It passed the test we gave it and failed the one that mattered.
We have now added a proper check. Before any call starts, Josh quietly proves the voice really works on the exact connection the call will use. If it does not, he falls back to the voice we trust and writes a clear warning in our records. A caller can no longer be the thing that discovers a broken voice.
Dil asked the right question late in the day, and the answer was sitting in front of us.
Dil asked: apart from v3, is there anything else from this supplier we have not tried?
We checked the account properly rather than guessing. Our supplier offers two good voices, and we have now tested both. The rest are the cheaper, faster ones you turned down on 11 August for sounding poor.
So the honest answer is: there is no better voice left to buy from them. That road is finished. Which made the next discovery more important, not less.
Every voice has dials that control how it sounds — how warm it is, how much character it puts into words, how steady it stays.
We had never touched any of them. We send exactly one instruction: talk a little slower, which Beth asked for on 2 August. Nothing else.
We looked up the real settings on the account today. The dial that controls expressiveness is turned all the way down to zero. Not chosen — simply never changed since the day it was set up.
We also found we have only ever used one voice. That was not a decision either. It was the first one set up and nobody went back to it. Voices sound very different once they are squeezed down to phone quality, and a plainer voice is often clearer on a real call than a rich one.
We built two new switches. Each works on a single phone number at a time, so a test can run on the 888 line while Chad and Ted stay exactly as they are.
This is the same pattern we already use for other tests, and it is protected by automatic checks that run every time we change the system. Those checks specifically confirm that Chad's and Ted's numbers cannot pick up an experiment — even if someone sets it up wrongly, or writes the phone number in a different format.
It is built, tested and ready. It has not been tried yet — it was finished late in the day, and trying it means a phone call and a person listening. That is the first job next time.
This is the most useful thing we learned today.
We had believed Cliff needed version 1.7 of the phone software. That is the version that broke Josh.
Late in the day we checked properly, by downloading each version and looking inside it rather than trusting what we had read. Cliff works on version 1.6. We never needed 1.7 at all.
And this is the part that matters:
| Version | Has Cliff? | Has the change that broke Josh? |
|---|---|---|
| 1.5 — what we run now | No | No |
| 1.6 — never tried | Yes | No |
| 1.7 — what broke him | Yes | Yes |
The timing change that made Josh go silent for nine seconds only exists in 1.7. We checked the exact line of software, in all three versions, to be sure.
What that means in plain terms There is a smaller step we have not taken. Going from 1.5 to 1.6 gets us Cliff and avoids the change we know breaks him.
⚠️ This is not a promise that 1.6 works. Nobody has run a phone call on it. It is a smaller, better-understood step than the one that failed — not a safe one. So it gets the same care: install it, keep the voice we have, make one test call, and only then think about Cliff.
That is a much better position than this morning, when the answer was "wait for somebody else to fix their software".
Cliff is worth waiting for. He was tested against the words that have actually failed on our own calls, and he passed all of them.
The thin sound is the voice, not the phone line. We proved that when v3 removed it over the same connection. That is why the free settings are worth trying before spending anything.
There is no better voice left to buy from our current supplier.
And we only need one step, not two. That is today's real find, and it came out of taking the time to understand the failure instead of just undoing it.
One thing worth knowing before we spend money on any voice A phone call carries roughly a tenth of the sound quality of the demo page you listened to Cliff on. No voice and no amount of money changes that. It is the phone network's limit, not the supplier's.
So the goal is not "sound like the demo" — that is not available at any price. It is "be the clearest thing a phone line can carry". Which is exactly why turning our own dials may matter as much as changing supplier, and those cost nothing.
Worth having in mind, though it was never the reason to want him.
Cliff is free to use until 12 September. After that he costs less than half of what we pay for Josh's voice today.
To be clear, these are amounts we pay our suppliers to run a call — not anything a customer sees. Right now the voice is the single biggest cost in a call. It costs more than the phone line, the recording and the thinking part put together.
But the saving was never the argument, and Dil was firm about that today: "we do not mind the cost, we need quality." Cliff earns his place by saying our client's name correctly. The lower price is a bonus.
Josh is running on the setup we know works. Nothing we tried today is switched on, and we checked that rather than assuming it.
Dil rang the line at the end of the day and said it sounded better than anything else he heard today. On that call Josh got the phone number, the house number, the ZIP code, the square footage, the year and the price all correct the first time — with a dog barking in the background for the whole call.
In this order
The one deadline