/api/voice base path and
authenticated with your PeachDesk API key in the X-API-Key header.
Settings are persisted per workspace on PeachDesk’s servers. They act as the
defaults the Voice Studio UI loads on open — individual generation or capture
requests can still override most of these values inline.
Authentication
Every request must include your PeachDesk API key in theX-API-Key header (an interactive session token in Authorization: Bearer also works — see Authentication):
Capture settings
Defaults for the Captures flow — speech-to-text transcription and optional LLM refinement. Models referenced here (STT and refinement LLM) run on PeachDesk’s GPU infrastructure; you select them by identifier and never download or manage any model files locally.Get capture settings
GET /api/voice/settings/captures
Returns the current capture and refinement defaults for the workspace.
string
Speech-to-text model identifier —
lipi (the default), lipi-bharat or
lipi-live. The legacy size keys base, small, medium, large, and any
other pre-consolidation identifier are still accepted so older settings rows
keep loading, but they resolve to LIPI.string
Source language code, or
auto to let the engine detect it. Default auto.string
transcribe (same language) or translate (to English). Default transcribe.integer
Beam search width, 1–5. Higher is more accurate but slower. Default
1.string
Optional biasing vocabulary (up to 2000 chars) of domain terms to favour.
Default
"".boolean
Automatically run LLM refinement on a new capture’s transcript. Default
true.string
Refinement model.
BRAHMA-30B-FP8 (BRAHMA-30B) is the only accepted value —
the refinement model is pinned server-side.boolean
Remove filler words and tidy punctuation during refinement. Default
true.boolean
Resolve spoken self-corrections (“no wait, I mean…”). Default
true.boolean
Preserve code, identifiers, and technical terms verbatim. Default
true.boolean
Allow the refined transcript to flow into the active composer automatically.
Default
true.string | null
Voice profile used to read captures back aloud, if set.
boolean
Enable the in-app capture shortcut while the Voice Studio is open. Default
false.string[]
Key chord (1–6 keys) used as push-to-talk inside the Voice Studio.
string[]
Key chord (1–6 keys) used to toggle dictation on and off inside the Voice Studio.
Update capture settings
PUT /api/voice/settings/captures
Partial update — send only the fields you want to change. Every field is
optional; omitted fields keep their current value. Returns the full, updated
capture settings object.
string
lipi | lipi-bharat | lipi-live. The legacy size keys base | small |
medium | large and any other pre-consolidation identifier are accepted but
resolve to LIPI.string
Source language code, or
auto.string
transcribe | translate.integer
1–5.
string
Biasing vocabulary, up to 2000 chars.
boolean
string
BRAHMA-30B-FP8 — the only accepted value.boolean
boolean
boolean
boolean
string
boolean
string[]
1–6 keys.
string[]
1–6 keys.
Generation settings
Defaults for the Generation tab — how long text is chunked and how output audio is finished.Get generation settings
GET /api/voice/settings/generation
Returns the current text-to-speech generation defaults.
integer
Max characters per chunk when splitting long text. 100–5000. Default
800.integer
Crossfade between chunks, in milliseconds (0 for a hard cut). 0–500. Default
50.boolean
Normalize output loudness. Default
true.boolean
Automatically play the take when generation completes. Default
true.Update generation settings
PUT /api/voice/settings/generation
Partial update — send only the fields you want to change. Returns the full,
updated generation settings object.
integer
100–5000.
integer
0–500.
boolean
boolean
Voice Activity Detection (VAD) settings
Tuning for the speech-detection that trims silence around recorded audio in the Captures and Talk flows.Get VAD settings
GET /api/voice/settings/vad
Returns the current VAD preferences.
boolean
Whether VAD trimming is active. Default
false.number
Speech-probability threshold, 0.0–1.0. Higher is stricter. Default
0.5.integer
Minimum speech duration to keep a segment, in ms. 0–5000. Default
250.integer
Minimum silence to split segments, in ms. 0–5000. Default
100.integer
Padding added around detected speech, in ms. 0–1000. Default
30.integer
Audio sample rate the VAD operates at, in Hz. Default
16000.Update VAD settings
PUT /api/voice/settings/vad
Partial update — send only the fields you want to change. Returns the full,
updated VAD settings object.
boolean
number
0.0–1.0.
integer
0–5000.
integer
0–5000.
integer
0–1000.
integer
Sample rate in Hz.
Pronunciation dictionary
Pronunciation rules tell the Voice Engine how to say specific terms before synthesis. A rule is either an alias (rewrite the term to a spelled-out replacement) or a phoneme override. Rules are either global (apply to every voice) or profile-scoped (apply only to one voice profile).List pronunciation rules
GET /api/voice/pronunciation
Lists pronunciation rules, optionally filtered by scope and/or profile.
string
Filter by scope:
global or profile.string
Filter by the voice profile a rule belongs to.
string
Unique rule identifier.
string
global or profile.string | null
Voice profile the rule applies to, for profile-scoped rules.
string
The term the rule matches.
string
alias or phoneme.string | null
Spelled-out replacement, for
alias rules.string | null
Phoneme string, for
phoneme rules.boolean
Whether matching is case-sensitive. Default
false.boolean
Whether the rule is active. Default
true.string
ISO-8601 creation timestamp.
Create a pronunciation rule
POST /api/voice/pronunciation
Creates a global or profile-scoped rule. Returns the created rule object.
string
required
The term to match (1–200 chars).
string
default:"alias"
alias or phoneme.string
Spelled-out replacement for
alias rules (up to 400 chars).string
Phoneme override for
phoneme rules (up to 400 chars).string
default:"global"
global or profile.string
Required when
scope is profile — the voice profile the rule applies to.boolean
default:"false"
boolean
default:"true"
A
400 error is returned if the rule is invalid — for example, a
profile-scoped rule without a profile_id, or a rule missing the value
appropriate to its rule_type.Update a pronunciation rule
PUT /api/voice/pronunciation/
Partial update of an existing rule. Returns the updated rule object, or 404
if the rule does not exist.
string
required
The rule to update.
string
1–200 chars.
string
alias or phoneme.string
Up to 400 chars.
string
Up to 400 chars.
boolean
boolean
Delete a pronunciation rule
DELETE /api/voice/pronunciation/
Deletes a rule. Returns a confirmation message, or 404 if the rule does not
exist.
string
required
The rule to delete.

