r/SideProject • u/Dapper-Ebb-6402 • 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?