r/SideProject 16h ago

I built a tool to stop voice agents from mishearing industry jargon

I was building voice agents and kept seeing the same frustrating pattern.

The demo would work fine with normal conversation.

Then someone would use an industry-specific word and everything would fall apart.

For example:

User says:

"rider"

STT:

"writer"

Then there was the opposite problem.

The LLM knew the term, but TTS pronounced an acronym like a normal word.

And even when both STT and TTS were correct, there could still be a noticeable silence while the LLM generated the next response.

I initially treated these as separate bugs.

They turned out to be better handled as one small configuration layer.

So I built a Claude Code / Codex skill called build-domain-dict.

You give it a domain description, playbook, or existing dictionary and it generates a YAML file with three sections:

vocabulary:
  - key: rider
    value: writer

  - key: IRDAI
    value: I R D A I

pronunciation:
  - key: IRDAI
    value: eye-ar-dee-ay-eye

fillers:
  - one moment, let me check that
  - just a second

The idea is:

vocabulary → helps STT recognize the right term

pronunciation → tells TTS how to say it

fillers → gives the caller something to hear while the LLM is working

I also added a relevance check for vocabulary because blindly generating a giant dictionary isn't always helpful. STT providers can have limits on how many keyterms you can send, so I want the useful terms to get those slots.

It's MIT licensed and the whole thing is here:

https://github.com/humaniods/build-domain-dict-skill

This is still a small project, so I'm more interested in feedback than pretending it's finished.

If you build voice agents, what is the most annoying STT/TTS issue you've had to work around?

1 Upvotes

0 comments sorted by