VEXYL AI

Environment reference (1 of 2): core, telephony, speech

This page lists every environment variable the gateway reads. Set them in .env (or the container environment).

  • Default is the value used when the variable is unset. Booleans show as on or off; unset means the build has no default. Where a chapter states a default, this table follows the chapter.
  • <LANG> rows are families: replace <LANG> with the language code upper-cased and - changed to _, so ml-IN becomes ML_IN (for example GOOGLE_VOICE_ML_IN). A few families use the short code, such as _ML; the row says which.
  • Chapter links to the section that explains the setting.
  • The list is split in two: this is part 1 (core, telephony, speech); part 2 is Environment reference (2 of 2).

Core

Variable Default What it does Chapter
AUDIO_FORMAT pcm16 Audio encoding used by the gateway service paths: pcm16, g711_ulaw or g711_alaw. Leave it. Quick start
DEFAULT_LANGUAGE ml-IN Language used when a call or session does not name one. Quick start
LICENSE_KEY unset Licence key. Unset runs the Free tier with a small concurrent-call limit. Quick start
MAX_AUDIO_BUFFER_SIZE 100 Most audio chunks buffered before the oldest are dropped, to bound memory. Quick start
MAX_MEMORY_SESSIONS 10000 Cap on in-memory sessions when Redis is unavailable, so a Redis outage cannot grow memory without bound. Operations
MAX_PLAYBACK_QUEUE_SIZE 50 Most audio chunks waiting for playback before the oldest are dropped. Quick start
REDIS_DB unset Redis database number. Operations
REDIS_HOST localhost Redis server for sessions. Without Redis, sessions live in memory and are lost on restart. Operations
REDIS_PASSWORD unset Redis password. Operations
REDIS_PORT 6379 Redis port. Operations
SAMPLE_RATE 8000 Internal audio sample rate in Hz. Telephone audio arrives at 8000; leave it. Quick start
SESSION_TTL 3600 Seconds a stored session is kept. Operations
TELEPHONY_MODE audiosocket Which telephony paths start: audiosocket, sip_bridge or both. Quick start

SIP trunk

Variable Default What it does Chapter
PUBLIC_IP unset Fallback public address when SIP_PUBLIC_ADDRESS is empty. SIP trunk
RTP_PORT_MAX 20000 End of the call-audio range (exclusive). It must not overlap a co-hosted Asterisk range. SIP trunk
RTP_PORT_MIN 10000 Lowest UDP port in the call-audio range (even ports). SIP trunk
SIP_ALLOWED_IPS unset Comma-separated exact IP addresses allowed to send INVITEs (no CIDR). Empty accepts any source. SIP trunk
SIP_AUTH_PASSWORD unset Password for registrar and outbound authentication. SIP trunk
SIP_AUTH_USER unset Username for registrar and outbound authentication. SIP trunk
SIP_CODEC 0 Voice codec: 0 for PCMU (mu-law) or 8 for PCMA (A-law). SIP trunk
SIP_FROM_USER unset User part of the caller ID on outbound SIP calls. SIP trunk
SIP_KEEPALIVE_INTERVAL 30000 Milliseconds between SIP OPTIONS keep-alives. SIP trunk
SIP_KEEPALIVE_URI unset Where to send those keep-alives. Empty disables them. SIP trunk
SIP_MAX_CALLS 0 Concurrent SIP calls allowed; 0 is unlimited. The licence cap applies separately. SIP trunk
SIP_OUTBOUND_PROXY unset Proxy that outbound SIP calls are routed through. SIP trunk
SIP_PORT 5060 UDP port the SIP bridge listens on. This manual sets 5080; set it explicitly. SIP trunk
SIP_PUBLIC_ADDRESS unset Address written into the SDP. Falls back to PUBLIC_IP, then the loopback address. Behind NAT it must be the public IP or audio is one-way. SIP trunk
SIP_REGISTER_INTERVAL 3600 Seconds between re-registrations with the carrier. SIP trunk
SIP_REGISTER_URI unset Registrar to register with, written sip:domain. Leave unset if the carrier sends calls without registration. SIP trunk
SIP_RING_DURATION 0 Milliseconds of ringing before the gateway answers; 0 answers at once. SIP trunk
TRANSFER_SIP_URI unset SIP address to send a REFER to when a SIP call is transferred, for example sip:7000@<pbx-ip>. SIP trunk

Asterisk and AudioSocket

Variable Default What it does Chapter
AUDIOSOCKET_HOST 127.0.0.1 Address the AudioSocket listener binds to. Asterisk and AudioSocket
AUDIOSOCKET_KEEPALIVE_ENABLED on Send keep-alive frames on the AudioSocket connection. Set false to disable. Asterisk and AudioSocket
AUDIOSOCKET_KEEPALIVE_INTERVAL 500 Milliseconds between those keep-alive frames. Asterisk and AudioSocket
AUDIOSOCKET_MAX_BACKLOG 1048576 Bytes that may queue toward Asterisk before the gateway applies back-pressure. Asterisk and AudioSocket
AUDIOSOCKET_PORT 8080 TCP port Asterisk connects to with AudioSocket. Asterisk and AudioSocket
TRANSFER_ENABLED off Master switch for transfers to a person. Asterisk and AudioSocket
TRANSFER_ENDPOINT unset HTTP webhook the gateway calls to transfer an AudioSocket call. Not used for SIP calls. Asterisk and AudioSocket
TRANSFER_TIMEOUT 5000 Milliseconds to wait for that transfer webhook. Asterisk and AudioSocket

Speech recognition

Variable Default What it does Chapter
DEEPGRAM_API_KEY unset Deepgram key, for speech recognition and voices. Speech recognition
DEEPGRAM_STT_MODEL nova-2 Deepgram recognition model. Speech recognition
DEEPGRAM_STT_PUNCTUATE on Add punctuation to transcripts. Set false for plain text. Speech recognition
DEEPGRAM_STT_SMART_FORMAT on Format numbers, dates and currency. Set false to stop it. Speech recognition
GEMINI_API_KEY unset Gemini key for speech recognition. Gemini Live falls back to it. Speech recognition
GEMINI_STT_MODEL gemini-2.5-flash-lite Gemini recognition model. Speech recognition
GEMINI_STT_PROMPT unset Guidance for transcription, for example the technical terms callers use. Speech recognition
GOOGLE_STT_DEDUPE_MS 2500 Window in which a repeat of the same transcript is rejected. Speech recognition
GOOGLE_STT_INTERIM_TIMEOUT 1500 Milliseconds of silence after which the last interim result counts as final. Speech recognition
GOOGLE_STT_MODEL phone_call Google recognition model: phone_call, latest_long or chirp_2. Speech recognition
GOOGLE_STT_REGION unset Regional endpoint (for example us or eu) for data residency. Speech recognition
GOOGLE_STT_USE_ENHANCED on Use Google's telephony-enhanced models, which are billed at a higher rate. Set false to turn off. Speech recognition
GROQ_API_KEY unset Groq key for speech recognition. Speech recognition
GROQ_MODEL whisper-large-v3-turbo Groq recognition model. whisper-large-v3 is slower and more accurate. Speech recognition
MAX_BUFFER_DURATION 10000 (Gemini 3000) Longest audio, in milliseconds, collected before a batch recogniser is called. Applies to batch recognisers only. Speech recognition
OPENAI_API_KEY unset OpenAI key for speech recognition. Speech recognition
OPENAI_STT_MODEL whisper-1 OpenAI recognition model, for example gpt-4o-transcribe. Speech recognition
SARVAM_API_KEY unset Sarvam key. Needed for Sarvam speech recognition and voices, and for auto. Speech recognition
SARVAM_STT_FIRST_TURN_MIN_SPEECH_FRAMES 2 Speech frames needed for the first utterance of a call. 0 restores Sarvam's own stricter gate. Speech recognition
SARVAM_STT_MODEL saarika:v2.5 Model for the Sarvam batch recogniser. Separate from SARVAM_STT_WS_MODEL. Speech recognition
SARVAM_STT_NATIVE_8K on Send telephone audio to Sarvam as it arrives, without upsampling. Set false for the older upsampled path. Speech recognition
SARVAM_STT_VAD_SIGNALS on Use Sarvam's speech start and end markers to time each turn. Leave on. Speech recognition
SARVAM_STT_WS_MODE transcribe Only with saaras:v3: transcribe, verbatim, codemix or translit. Speech recognition
SARVAM_STT_WS_MODEL unset Streaming model; empty uses Sarvam's current default. saaras:v3 pins it. Speech recognition
STT_GATE_CARRIER_MARKERS unset Comma-separated phrases that identify a hold or carrier announcement. Replaces the built-in list. Speech recognition
STT_GATE_CARRIER_MIN_HITS 2 Markers that must appear before a turn is treated as carrier audio. Speech recognition
STT_GATE_DOMINANCE_MIN_TOKENS 8 Words needed before the dominance check applies. Speech recognition
STT_GATE_DOMINANCE_RATIO 0.6 Share of one word, after collapsing, that marks a turn as junk. Speech recognition
STT_GATE_DROP_FILLER off Drop turns made only of fillers. Off because a bare "yes" sound is a valid answer. Speech recognition
STT_GATE_LOOP_MIN_TOKENS 5 Words needed before one repeated word counts as a recogniser loop. Speech recognition
STT_GATE_MAX_CYCLE_LENGTH 4 Longest repeating block of words the gate detects. Speech recognition
STT_GATE_MIN_RUN 3 Repeated-word run length before it is collapsed. Keep it at 3 or more. Speech recognition
STT_HOLD_DURING_LLM on Hold speech heard while the bot is busy and replay it afterwards. Off drops it silently. Speech recognition
STT_HOLD_MAX 3 Held pieces kept per turn; older ones fall off first. Speech recognition
STT_INBOUND_CONTINUOUS on Fill gaps in handset audio with silence so the recogniser can end short turns. Off feeds only real packets. Speech recognition
STT_INBOUND_GAP_MS 60 Milliseconds without a real frame before the fill starts. Speech recognition
STT_INBOUND_TRANSPORTS sip Which call paths get the fill: sip, audiosocket or all. Speech recognition
STT_INGRESS_FLUSH_MS 40 Backstop timer that pushes trailing frames to Sarvam streaming. Speech recognition
STT_INGRESS_MAX_CHUNKS 2 How many 20 ms frames are pushed to Sarvam at once. Speech recognition
STT_PROVIDER auto Speech recogniser: auto, sarvam, groq, gemini, openai, deepgram, google, vexyl-stt or sarvam-r. Speech recognition
STT_SANITY_GATE on Master switch for the transcript sanity gate. Off passes every transcript through. Speech recognition
VEXYL_STT_API_KEY unset Key sent as X-API-Key when your Vexyl STT server requires one. Speech recognition
VEXYL_STT_URL unset WebSocket address of your Vexyl STT server. The provider counts as configured only when set; ws://localhost:8091 is the fallback. Speech recognition

Text to speech

Variable Default What it does Chapter
AZURE_TTS_API_KEY unset Azure Speech key. Text to speech
AZURE_TTS_PITCH 0% Pitch shift. Text to speech
AZURE_TTS_PITCH_<LANG> unset Speaking pitch for one language, for example AZURE_TTS_PITCH_ML_IN (full code, ML_IN form). Text to speech
AZURE_TTS_RATE 1.2 Speaking speed; 1.0 is normal. Text to speech
AZURE_TTS_RATE_<LANG> unset Speaking speed for one language, for example AZURE_TTS_RATE_ML_IN. Text to speech
AZURE_TTS_REGION centralindia Region of your Speech resource. Text to speech
AZURE_TTS_STREAMING on Stream audio. Off uses REST batch, resampled from 24 kHz. Text to speech
AZURE_TTS_STYLE_<LANG> unset Speaking style for one language, for example AZURE_TTS_STYLE_EN_US. Text to speech
AZURE_TTS_TIMEOUT unset Cap on a request. Text to speech
AZURE_TTS_VOICE_NAME en-US-JennyNeural Voice for every language. Text to speech
AZURE_TTS_VOICE_STYLE unset Speaking style such as friendly or cheerful. Text to speech
AZURE_TTS_VOICE_<LANG> unset Voice for one language, for example AZURE_TTS_VOICE_ML_IN. Beats the global voice. Text to speech
DEEPGRAM_API_URL https://api.deepgram.com API endpoint, for routing through a proxy. Text to speech
DEEPGRAM_MODEL aura-asteria-en Deepgram voice used when no language-specific voice applies. Text to speech
DEEPGRAM_TIMEOUT unset Cap on a request. Text to speech
DEEPGRAM_VOICE_DE_DE built-in Deepgram voice for de-DE. Text to speech
DEEPGRAM_VOICE_EN_GB built-in Deepgram voice for en-GB. Text to speech
DEEPGRAM_VOICE_EN_IN built-in Deepgram voice for en-IN. Text to speech
DEEPGRAM_VOICE_EN_US built-in Deepgram voice for en-US. Text to speech
DEEPGRAM_VOICE_ES_ES built-in Deepgram voice for es-ES. Text to speech
DEEPGRAM_VOICE_ES_MX built-in Deepgram voice for es-MX. Text to speech
DEEPGRAM_VOICE_FR_FR built-in Deepgram voice for fr-FR. Text to speech
DEEPGRAM_VOICE_IT_IT built-in Deepgram voice for it-IT. Text to speech
DEEPGRAM_VOICE_JA_JP built-in Deepgram voice for ja-JP. Text to speech
DEEPGRAM_VOICE_KO_KR built-in Deepgram voice for ko-KR. Text to speech
DEEPGRAM_VOICE_NL_NL built-in Deepgram voice for nl-NL. Text to speech
DEEPGRAM_VOICE_PL_PL built-in Deepgram voice for pl-PL. Text to speech
DEEPGRAM_VOICE_PT_BR built-in Deepgram voice for pt-BR. Text to speech
DEEPGRAM_VOICE_RU_RU built-in Deepgram voice for ru-RU. Text to speech
DEEPGRAM_VOICE_ZH_CN built-in Deepgram voice for zh-CN. Text to speech
DEEPGRAM_VOICE_<LANG> per-language built-ins Voice for one language, for example DEEPGRAM_VOICE_EN_IN (full code, EN_IN form). Built-in voices apply to the languages listed below. Text to speech
ELEVENLABS_API_KEY unset ElevenLabs key. Text to speech
ELEVENLABS_API_URL https://api.elevenlabs.io REST endpoint, for routing through a proxy. Text to speech
ELEVENLABS_AUTO_MODE on Skip chunk-schedule buffering on the socket, since input is whole sentences. Text to speech
ELEVENLABS_FORCE_V3 unset Send every language to v3: best quality, slower first audio. Text to speech
ELEVENLABS_INACTIVITY_TIMEOUT unset Idle timeout of the socket in seconds (the API caps it). Text to speech
ELEVENLABS_MODEL eleven_flash_v2_5 Realtime voice model. Text to speech
ELEVENLABS_OPTIMIZE_LATENCY unset Latency optimisation level on the realtime socket. v3 rejects it. Text to speech
ELEVENLABS_OUTPUT_FORMAT pcm_22050 REST fallback output format. Text to speech
ELEVENLABS_SIMILARITY_BOOST 0.75 Clarity, 0.0 to 1.0. Text to speech
ELEVENLABS_STABILITY 0.5 Consistency of delivery, 0.0 to 1.0. Text to speech
ELEVENLABS_STREAMING on Stream audio over the realtime socket. Off uses REST batch only. Text to speech
ELEVENLABS_STREAM_FORMAT ulaw_8000 Streaming output format, decoded locally to 8 kHz. Text to speech
ELEVENLABS_STYLE 0.0 Style exaggeration, 0.0 to 1.0. Text to speech
ELEVENLABS_TIMEOUT unset Cap on a request. Text to speech
ELEVENLABS_USE_SPEAKER_BOOST on Speaker boost. Set false to disable. Text to speech
ELEVENLABS_V3_ENABLED on Route languages the flash model cannot speak to v3. Off throws instead, and another provider takes over. Text to speech
ELEVENLABS_V3_MODEL eleven_v3 Model used for those languages. Text to speech
ELEVENLABS_VOICE_ID built-in voice Voice for every language. Text to speech
ELEVENLABS_VOICE_ML_IN unset Voice id for ml-IN. Beats the global voice. Text to speech
ELEVENLABS_VOICE_<LANG> unset Voice id for one language, for example ELEVENLABS_VOICE_ML_IN. Beats the global voice. Text to speech
ELEVENLABS_WSS_URL wss://api.elevenlabs.io WebSocket endpoint, for routing through a proxy. Text to speech
ELEVENLABS_WS_REUSE on Persistent socket so warm turns skip the handshake. Off opens a socket per request. Text to speech
ENABLE_TTS_SPLITTING unset Split long replies into chunks for faster first audio. Text to speech
GCLOUD_PROJECT unset Alternative name for the Google project id. Text to speech
GEMINI_TTS_BACKEND auto auto, cloud-tts or vertex. Auto sends 3.8 models to Vertex AI and the rest to Cloud TTS. Text to speech
GEMINI_TTS_MODEL gemini-2.5-flash-tts Gemini voice model, for example gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts. Text to speech
GEMINI_TTS_PROMPT unset Style prompt for the Cloud TTS backend. Ignored on Vertex. Text to speech
GEMINI_TTS_REGION unset Cloud TTS backend only: us, eu or northamerica-northeast1. Text to speech
GEMINI_TTS_STREAMING on Stream sentences on Vertex. Cloud TTS models are never streamed. Text to speech
GEMINI_TTS_TEMPERATURE 1.0 Delivery variation. Text to speech
GEMINI_TTS_VERTEX_LOCATION global Vertex location. Only global has the 3.8 models. Text to speech
GEMINI_TTS_VERTEX_MODELS unset Pattern of model names that auto routes to Vertex. Text to speech
GEMINI_TTS_VERTEX_PROJECT unset Vertex project when it differs from the credentials' project. Text to speech
GEMINI_TTS_VERTEX_PROMPT off Prepend the style prompt on Vertex anyway. The 3.8 models read it aloud, so leave it off. Text to speech
GEMINI_TTS_VOICE_NAME Kore Gemini voice for every language, or a custom voice_<id>. Text to speech
GEMINI_TTS_VOICE_<LANG> unset Voice for one language, for example GEMINI_TTS_VOICE_ML_IN. Text to speech
GOOGLE_APPLICATION_CREDENTIALS unset Path to the Google service-account JSON file. Used by Google speech recognition, Google voices and Gemini voices. Text to speech
GOOGLE_CLOUD_PROJECT unset Google project id, for credentials that carry none. Text to speech
GOOGLE_TTS_REGION unset Regional endpoint: asia, us or eu. Unset uses the global endpoint. Text to speech
GOOGLE_TTS_STREAMING on Stream Chirp3-HD voices. Off uses REST batch only. Text to speech
GOOGLE_TTS_TIMEOUT unset Cap on a request, so a stalled one fails over sooner. Text to speech
GOOGLE_TTS_VOICE_NAME unset One Google voice for every language. Suits single-language bots only. Text to speech
GOOGLE_VOICE_ML_IN built-in Chirp3-HD voice Voice for ml-IN. Beats the global voice name. Text to speech
GOOGLE_VOICE_<LANG> built-in Chirp3-HD voice Voice for one language, for example GOOGLE_VOICE_ML_IN. Beats the global voice name. Text to speech
LITEBOT_SENTENCE_PREBUFFER_MS 600 Audio buffered before a streamed sentence starts playing. Text to speech
LITEBOT_SENTENCE_STREAMING on Play each sentence as it arrives. Off renders each reply whole. Text to speech
LITEBOT_STREAM_MIN_SENTENCE_CHARS 12 Shorter pieces are merged into the next sentence. Text to speech
LITEBOT_TTS_SYNTH_CONCURRENCY 1 Sentences rendered at once. Keep 1. Text to speech
MURF_API_KEY unset Murf key. Text to speech
MURF_MODEL GEN2 Murf model. Text to speech
MURF_SAMPLE_RATE 24000 Output sample rate. The audio is converted to the call's rate either way. Text to speech
MURF_STYLE Conversational Speaking style. Text to speech
MURF_VOICE_ID en-US-natalie Voice for every language. Text to speech
MURF_VOICE_<LANG> built-in per language Voice for one language, for example MURF_VOICE_HI_IN. Beats the global voice. Text to speech
OPENROUTER_API_KEY unset OpenRouter key. Use a normal key; a management key fails. Text to speech
OPENROUTER_TTS_INSTRUCTIONS unset Delivery directions. Some models honour them, others ignore them. Text to speech
OPENROUTER_TTS_MAX_CHARS 3000 Longer text is cut with a warning. Text to speech
OPENROUTER_TTS_MODEL mistralai/voxtral-mini-tts-3-0 Voice model, written vendor/name. Text to speech
OPENROUTER_TTS_SPEED unset Speaking speed. Sent only when set, because some models reject a non-default value. Text to speech
OPENROUTER_TTS_TIMEOUT 30000 Cap on a request. Text to speech
OPENROUTER_TTS_URL unset Override the endpoint, for example a regional one. Text to speech
OPENROUTER_TTS_VOICE unset Voice id. Ids are specific to the model. Text to speech
OPENROUTER_TTS_VOICE_<LANG> unset Voice id for one language, for example OPENROUTER_TTS_VOICE_ML_IN. Text to speech
SARVAM_TTS_MAX_CONCURRENT unset Limit on simultaneous Sarvam requests. Text to speech
SARVAM_TTS_MODEL bulbul:v3 Sarvam voice model: bulbul:v3, bulbul:v4-flash or bulbul:v2. Text to speech
SARVAM_TTS_PACE 1.0 Speaking speed, clamped to 0.5 to 2.0 (v2 allows 0.3 to 3.0). Text to speech
SARVAM_TTS_PREPROCESSING on Text normalisation of numbers and abbreviations. Set false to disable. Text to speech
SARVAM_TTS_QUEUE_TIMEOUT unset How long a request waits in that limit before failing. Text to speech
SARVAM_TTS_SPEAKER built-in: kavya (bulbul:v3), kavya_hi_conversational (bulbul:v4-flash) Sarvam voice. v3 takes a bare name; v4-flash takes a persona id. Text to speech
SARVAM_TTS_SPEAKER_<LANG> unset Speaker for one language, for example SARVAM_TTS_SPEAKER_ML_IN. Beats the global speaker. Text to speech
SARVAM_TTS_STREAMING on Stream each sentence as it is made. Off uses REST batch only. Text to speech
SARVAM_TTS_STREAM_TRANSPORT ws Streaming transport: ws or http. Use http with bulbul:v4-flash. Text to speech
SARVAM_TTS_STREAM_URL https://api.sarvam.ai/text-to-speech/stream HTTP stream endpoint, for routing through your own proxy. Text to speech
SARVAM_TTS_TEMPERATURE unset Delivery variation, 0.01 to 1.0 (v3 and v4-flash). Unset uses Sarvam's default. Text to speech
SARVAM_TTS_WS_CONNECT_TIMEOUT_MS unset Cap on opening a socket. Text to speech
SARVAM_TTS_WS_IDLE_MAX unset Idle pooled sockets kept per configuration. Text to speech
SARVAM_TTS_WS_IDLE_TTL_MS unset How long an idle pooled socket lives. Text to speech
SARVAM_TTS_WS_PING_MS unset Keep-alive interval for pooled sockets. Text to speech
SARVAM_TTS_WS_REUSE on Keep pooled sockets open between sentences. Off opens a fresh socket per sentence. Text to speech
SARVAM_TTS_WS_TIMEOUT unset Cap on a streaming request, both transports. Text to speech
SARVAM_TTS_WS_URL wss://api.sarvam.ai/text-to-speech/ws WebSocket endpoint, for routing through your own proxy. Text to speech
SMALLEST_API_KEY unset Smallest.ai key. Text to speech
SMALLEST_TTS_COMPLETE_BACKOFF_MS 0 Delay before the end-of-text frame. Keep 0; the API default adds seconds to every sentence. Text to speech
SMALLEST_TTS_MAX_CHARS 5000 Longest text sent; longer text is cut with a warning. Text to speech
SMALLEST_TTS_MODEL lightning_v3.1 Voice model. Text to speech
SMALLEST_TTS_REST_URL https://api.smallest.ai/waves/v1/tts REST endpoint, for routing through a proxy. Text to speech
SMALLEST_TTS_SAMPLE_RATE 8000 Output sample rate. 8000 is native for telephony, so nothing is resampled. Text to speech
SMALLEST_TTS_SPEED 1.0 Speaking speed. Text to speech
SMALLEST_TTS_STREAMING on WebSocket streaming. Off uses REST batch. Text to speech
SMALLEST_TTS_TIMEOUT 30000 Cap on a request, both transports. Text to speech
SMALLEST_TTS_VOICE_ID avni Voice for every language. Avoid divya, which truncates long text. Text to speech
SMALLEST_TTS_WS_URL wss://api.smallest.ai/waves/v1/tts/live WebSocket endpoint, for routing through a proxy. Text to speech
SMALLEST_VOICE_<LANG> unset Voice for one language, for example SMALLEST_VOICE_ML_IN. Beats the global voice. Text to speech
TTS_CACHE_CLEANUP_STRATEGY lru What is deleted when the cache is full: lru, size, ttl or none. Text to speech
TTS_CACHE_DIR unset Cache folder; unset uses cache/tts under the working directory. Text to speech
TTS_CACHE_ENABLED off Cache rendered speech on disk and reuse it. Text to speech
TTS_CACHE_MAX_AGE_DAYS 90 Entries not read for this long are removed. Text to speech
TTS_CACHE_MAX_SIZE_MB 5000 Largest cache size before clean-up runs. Text to speech
TTS_CACHE_STATS_LOGGING unset Log the cache hit rate periodically. Text to speech
TTS_CACHE_WARMUP_FILE unset Phrase file used for the boot warm-up. Text to speech
TTS_CACHE_WARMUP_ON_START unset Pre-render the phrase file at boot. Text to speech
TTS_CHUNK_SIZE unset Most characters in one speech request. Text to speech
TTS_CROSSFADE_MS 5 Fade between consecutive chunks of one reply. Text to speech
TTS_FORCE_SPLIT_DELIMITERS unset Characters that always split text regardless of chunk size. Text to speech
TTS_GENERATION_TIMEOUT_MS 60000 Longest a whole reply may take to render. Text to speech
TTS_MAX_PARALLEL unset Most speech requests rendered at once. ElevenLabs allows only one. Text to speech
TTS_PHRASE_DELIMITERS ,;: Characters used to split a sentence that is still too long. Text to speech
TTS_PROVIDER sarvam Voice provider: sarvam, google, gemini, elevenlabs, deepgram, azure, murf, vexyl, smallest or openrouter. Text to speech
TTS_QUEUE_PREBUFFER_MS 80 Wait that lets chunks arriving together merge into one continuous segment. Text to speech
TTS_SENTENCE_EDGE_FADE_MS 5 Short fade where a sentence starts or ends mid-waveform, to remove clicks. 0 disables. Text to speech
TTS_SENTENCE_MIN_GAP_MS 200 Silence padded between sentences when the audio has too little. 0 disables. Text to speech
TTS_SPLIT_DELIMITERS .!?ред Characters that end a sentence when splitting text. Text to speech
TTS_TAIL_DELAY_MS 40 Pause after playback ends so the last audio drains before listening resumes. Text to speech
TTS_TX_DUMP unset Write outbound speech audio to a temporary file for diagnosis. Never leave on. Text to speech
VEXYL_TTS_API_KEY unset Key, when the engine requires one. Text to speech
VEXYL_TTS_SPEAKER unset Named speaker, for example Anjali or Harish. Beats style selection. Text to speech
VEXYL_TTS_SPEAKER_<LANG> unset Speaker for one language, for example VEXYL_TTS_SPEAKER_ML_IN. Beats the global speaker. Text to speech
VEXYL_TTS_STYLE default default, warm or formal. Default and warm pick a female speaker, formal a male one. Text to speech
VEXYL_TTS_STYLE_AS_IN default Vexyl voice style for as-IN. Text to speech
VEXYL_TTS_STYLE_BN_IN default Vexyl voice style for bn-IN. Text to speech
VEXYL_TTS_STYLE_EN_IN default Vexyl voice style for en-IN. Text to speech
VEXYL_TTS_STYLE_EN_US default Vexyl voice style for en-US. Text to speech
VEXYL_TTS_STYLE_GU_IN default Vexyl voice style for gu-IN. Text to speech
VEXYL_TTS_STYLE_HI_IN default Vexyl voice style for hi-IN. Text to speech
VEXYL_TTS_STYLE_KN_IN default Vexyl voice style for kn-IN. Text to speech
VEXYL_TTS_STYLE_ML_IN default Vexyl voice style for ml-IN. Text to speech
VEXYL_TTS_STYLE_MR_IN default Vexyl voice style for mr-IN. Text to speech
VEXYL_TTS_STYLE_OR_IN default Vexyl voice style for or-IN. Text to speech
VEXYL_TTS_STYLE_PA_IN default Vexyl voice style for pa-IN. Text to speech
VEXYL_TTS_STYLE_TA_IN default Vexyl voice style for ta-IN. Text to speech
VEXYL_TTS_STYLE_TE_IN default Vexyl voice style for te-IN. Text to speech
VEXYL_TTS_STYLE_UR_IN default Vexyl voice style for ur-IN. Text to speech
VEXYL_TTS_STYLE_<LANG> default Style for one language, for example VEXYL_TTS_STYLE_ML_IN. Listed languages below. Text to speech
VEXYL_TTS_TIMEOUT unset Cap on a request. Text to speech
VEXYL_TTS_URL ws://localhost:8092 WebSocket address of your Vexyl TTS engine. Text to speech