-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.toml
More file actions
79 lines (62 loc) · 2.88 KB
/
Copy pathconfig.example.toml
File metadata and controls
79 lines (62 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# voxcaster configuration
#
# Copy to ~/.config/voxcaster/config.toml (or point $SPEAKD_CONFIG at it).
# Every key is optional — the built-in defaults work out of the box on CPU.
# Environment variables (SPEAKD_*) override anything set here.
[tts]
# Kokoro voice id. A few favourites:
# af_heart, af_bella, af_nicole (American female)
# am_adam, am_michael (American male)
# bf_emma, bf_isabella (British female)
# bm_george (British male)
voice = "af_heart"
# Speech-rate multiplier (1.0 = normal).
speed = 1.0
# Kokoro language code: "a" = American English, "b" = British English, ...
lang_code = "a"
# Strip markdown (code fences, URLs, headers, bold/italic, table pipes, HTML)
# and extract an embedded <!-- TTS_SUMMARY ... TTS_SUMMARY --> before synthesis.
# Makes raw LLM/CLI output safe to pipe straight into `speak`. Default: true.
markdown_preprocess = true
[device]
# "auto" — dynamic offload (recommended): load on CPU, hop to the GPU for
# synthesis bursts, release VRAM after `keepalive_seconds` idle.
# "cpu" — never touch the GPU.
# "gpu" — move to the GPU on first use and stay there.
policy = "auto"
# Idle seconds before the model is offloaded from GPU back to CPU.
keepalive_seconds = 180
[daemon]
# Unix socket the daemon listens on.
# Default: $XDG_RUNTIME_DIR/voxcaster.sock (falls back to /tmp/voxcaster-<uid>.sock).
#socket_path = "/run/user/1000/voxcaster.sock"
# Octal permissions applied to the socket file.
socket_mode = "600"
# Treat every request as an interrupt: each new line drains the queue and cuts
# off in-flight playback, so only the latest narration is ever spoken. Handy
# for Claude Code hooks where stale lines aren't worth hearing. Default: false.
always_interrupt = false
# Where an auto-spawned daemon writes its log.
# Default: ~/.local/state/voxcaster/daemon.log
#log_file = "/home/me/.local/state/voxcaster/daemon.log"
[audio]
# Playback volume 0-130 (mpv scale; 100 = nominal, >100 = software gain).
volume = 100
# Kill playback of a single line after this many seconds (safety net).
max_playback_seconds = 120
# Audio player argv template. "{file}" is the wav path, "{volume}" the
# current volume. Swap in any player you like, e.g. ffplay:
# player = ["ffplay", "-nodisp", "-autoexit", "-volume", "{volume}", "{file}"]
player = ["mpv", "--no-terminal", "--volume={volume}", "{file}"]
[fallback]
# Spoken when Kokoro or audio playback fails (and by the client when the
# daemon cannot be reached). "{text}" is the line to speak.
# Set to [] to disable the fallback entirely.
command = ["espeak", "-s", "160", "-v", "en-us", "{text}"]
[client]
# Socket connect/send timeout (seconds). Keep small: callers should never block.
connect_timeout = 0.5
# How long `speak --blocking` waits for the spoken-ack.
ack_timeout = 300.0
# How long the client waits for an auto-spawned daemon to come up.
spawn_wait = 4.0