← Blog

Your Refund Sounds Exactly Like a Charge

We asked seventeen text-to-speech voices to read -$12.50. Seven of them said 'twelve dollars fifty cents'. Nothing errors, the audio is clean, and the caller hears the opposite of what you sent.


Send -$12.50 to a text-to-speech model and listen to what comes back.

Seven of the seventeen English voices we measure say “twelve dollars fifty cents.”

The minus is not mispronounced. It is not read aloud as “dash.” It is simply gone, and a caller has just been told they owe money they are actually owed.

It is not one bad vendor

Five of those voices get signed amounts wrong on every single clip, with two independent transcribers agreeing on all of them. One more drops the sign in two runs out of three, which is worse to operate around than always dropping it.

At least one voice gets every one right. So this is not a hard problem. It is an unowned one.

The date separator does the same thing

Strip the year off a date and the models stop seeing a date at all. 11/03 came back as a clock time in 22 of 45 clips. Put a year in the string, as in 2026-03-09, and the month gets spoken 79 to 93 percent of the time.

The separator is not what tells the model it is looking at a date. The year is. So a voice that reads “March 9, 2026” perfectly reads 11/03 as “eleven oh three.”

That is not a mispronunciation. It is a different appointment.

Nothing in your pipeline catches it

Status codes see nothing. Duration sees nothing. The audio is fluent, unhurried and the right length.

Even a round-trip check misses it. Synthesize the text, transcribe the audio, compare the two strings, and you still see nothing, because most text normalizers erase a leading minus before the comparison happens. Everybody treats it as punctuation, including the tools you would use to catch it.

Send words, not notation

The obvious fix is to shop for a better voice. That fixes one voice, and only until its next model version.

The cheap fix is on your side of the wire. Anywhere a single character flips the meaning of a number your caller will act on, spell it out before it reaches the model.

  • -$12.50 becomes “negative twelve dollars and fifty cents”
  • 11/03 becomes “November third”

A rule like that fixes every voice at once, and we measured a conservative version of it taking a set of failing dates from roughly half correct to all of them correct, on every provider, with nothing else regressing.

This defect survives in production because it sounds fine. Every other kind of voice failure announces itself, in a flat delivery, a mangled name, a pause in the wrong place. A dropped minus sign produces a clean, confident sentence that happens to be false. Those are the ones worth hunting.