Skip to main content

Speech recipes

A voice agent hears and speaks. Two recipes build the audio models around it; what it decides stays in the agent (an LLM or a decision model from the recipes above).

RecipeBuildsStarts fromTrained byValidation
tts_piperthe voice that speaks the replies, and fixed replies as WAV filesa Piper (VITS) checkpointPiper's own trainer, in its own environmentWhisper listens: wer against the recordings' own reference_wer, phrase_wer
wakewordthe detector that fires when it hears the agent's nameopenWakeWord's frozen speech featuresa small head, in this process, on the CPUrecall, false_accepts, scenario (the name, then a command)

Both read recordings that data_speech makes from seeds (a teacher writes lines, a Piper voice reads them, Whisper checks them), or recordings of your own.

mic -> [wake word: always on, tiny] -> "Jarvis" -> [speech to text: the command] -> agent -> [TTS: the reply]
wakeword tts_piper

A voice agent from these recipes​

The four configs below build what a voice agent says and hears; what it decides stays in the agent.

MomentWhat runsBuilt by
User: "Jarvis, wake up"the wake word detector fires as "Jarvis" ends, oncewakeword (wakeword/jarvis.yaml)
speech to text hears the command after it ("wake up"), and the agent's model picks the command wake_upthe agent (an LLM recipe can tune it)
Agent: readyplays the read-back of wake_up, phrases/wake_up.wavtts_piper validation.phrases
User: "Please search to the paper reference on the web"speech to text, then the agent's model picks web_searchthe agent
Agent: "Searching Reference.", then worksplays phrases/web_search.wav, then runs the searchtts_piper validation.phrases

tts/piper_jarvis.yaml holds nine read-backs: wake_up (At your service, sir.), web_search (Searching Reference.), horizontal_task (Processing Long Task.), remember_pattern (Checking the Pattern.), analysis (Target. Analysis.: a full stop so the voice pauses), focus_mode_enter (Activate Focus mode.), focus_mode_quit (Deactivate Focus mode.), persona_karen (Change to KAREN.) and persona_jarvis (Change to JARVIS.). The voice's training set (data/speech.yaml) reads them too. Which utterance means which command is the agent's to decide: no recipe here maps "enter the focus mode" to focus_mode_enter yet.

Source: README.md. This page is generated; edit the source and run npm run sync.