You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How to deliver the line, for example "Speak urgently and clearly". Ignored by older models such as tts-1.
speed
number
no
at least 0.25, at most 4
tts.provider.speed
TGPAGER_TTS_PROVIDER_SPEED
Playback multiplier. Unset leaves it to the provider.
dialect
string
no
"openai"
"openai", "openrouter"
tts.provider.dialect
TGPAGER_TTS_PROVIDER_DIALECT
Where instructions go on the wire: top level for openai, nested for openrouter.
tts.provider.api_key
Bearer token for the speech endpoint.
Name
Type
Required
yaml
env
Description
env
string
no
tts.provider.api_key.env
TGPAGER_TTS_PROVIDER_API_KEY_ENV
Name of the environment variable holding the value.
file
string
no
tts.provider.api_key.file
TGPAGER_TTS_PROVIDER_API_KEY_FILE
Path to a file holding the value, relative to the config file.
tts.provider (type: command)
Speech provider. Omit to page with the audio file alone.
Selected by type: command.
Name
Type
Required
Default
Values
Constraints
yaml
env
Description
type
string
yes
command
tts.provider.type
TGPAGER_TTS_PROVIDER_TYPE
Selects this variant.
name
string
yes
non-empty
tts.provider.name
TGPAGER_TTS_PROVIDER_NAME
Executable to run, for example piper.
args
list of string
no
tts.provider.args
TGPAGER_TTS_PROVIDER_ARGS
Arguments. {{text}} is replaced by the text to speak, otherwise it is written to stdin; {{output}} is replaced by a temporary file to write, otherwise audio is read from stdout.
output_format
string
no
"wav"
non-empty
tts.provider.output_format
TGPAGER_TTS_PROVIDER_OUTPUT_FORMAT
Audio format the command produces.
tts.cache
Name
Type
Required
Default
Constraints
yaml
env
Description
dir
string
no
"tts-cache"
non-empty
tts.cache.dir
TGPAGER_TTS_CACHE_DIR
Directory holding synthesized audio, reused across resends.
ttl
duration
no
720h0m0s
at least 0s
tts.cache.ttl
TGPAGER_TTS_CACHE_TTL
How long unused audio is kept. Zero keeps it forever.
max_bytes
integer
no
268435456
at least 0
tts.cache.max_bytes
TGPAGER_TTS_CACHE_MAX_BYTES
Size the cache is trimmed to, dropping least recently used audio. Zero is unbounded.
voice
Name
Type
Required
Default
Values
Constraints
yaml
env
Description
mode
string
no
"off"
"off", "fallback", "always", "only"
voice.mode
TGPAGER_VOICE_MODE
When to leave the page in the chat as a voice message: never, only after every call attempt failed, on every page, or instead of calling.
text
string
no
"fallback"
"off", "fallback", "always"
voice.text
TGPAGER_VOICE_TEXT
When to also send the alert as a plain text message: never, only when the voice message could not be delivered, or every time. Text needs no privacy permission, so the fallback still records a page the peer forbids voice for.
timeout
duration
no
1m0s
at least 1s
voice.timeout
TGPAGER_VOICE_TIMEOUT
How long to spend rendering and uploading before giving up.
attempts
integer
no
3
at least 1, at most 100
voice.attempts
TGPAGER_VOICE_ATTEMPTS
How many times to try sending.
retry_delay
duration
no
2s
at least 0s
voice.retry_delay
TGPAGER_VOICE_RETRY_DELAY
Delay between send attempts. A FLOOD_WAIT from Telegram wins over this when it asks for longer.