Pronunciation
Two settings make the agent hear and say your product’s names correctly.
Hearing a name
boostedPhrases tells speech recognition how to spell names and terms:
<Agent stt={kugelaudio.stt({ language: "de", boostedPhrases: ["Curb", "Kugel Ear"] })}>
Saying a name
Brand names, product names and abbreviations that TTS says wrong are fixed with a pronunciation dictionary, not by spelling them out phonetically in the prompt: the prompt is read by the model, and a phonetic respelling there leaks into the text chat too.
import { Agent } from "curb";
import { kugelaudio } from "curb/providers";
export function App() {
return (
<Agent
tts={kugelaudio.tts({
voice: 1840,
language: "de",
projectId: 42, // the number in your dashboard URL
dictionaryIds: [7], // applied in order
})}
>
{/* the prompt, skills and tools */}
</Agent>
);
}
Dictionaries belong to a KugelAudio project, so projectId is required
whenever dictionaryIds is set; the framework refuses the unpaired
combination at startup rather than letting the service reject the first spoken
turn of a live call. Find both in the console under
/dashboard/<org>/<project>/dictionaries: the project id is in the URL.
Omitting dictionaryIds entirely applies the project’s own default selection.
Passing an empty array is a different thing: it opts out of every dictionary,
including the defaults.
Next steps
- Voice: the providers and their options.