Repository navigation
Expand file tree
/
Copy pathconfig.yaml
More file actions
153 lines (142 loc) · 4.31 KB
/
Copy pathconfig.yaml
File metadata and controls
153 lines (142 loc) · 4.31 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
server:
host: 127.0.0.1
port: 8080
# The booth has no auth. Stay on localhost unless you set this true on purpose.
allow_remote: false
ollama:
host: http://127.0.0.1:11434
# snappy profile keeps this 3B model. quality profile switches a 3B default to the 7B below.
model: qwen2.5:3b
timeout_seconds: 120
num_ctx: 4096
num_predict_chat: 80
num_predict_voice: 160
keep_alive: 30m
# Bounds chat replies, alert replies, and the recap vibe paragraph.
chat_timeout_seconds: 20
# snappy: Whisper on CUDA + qwen2.5:3b (fits an 8 GB GPU with Whisper).
# quality: forces Whisper onto CPU and, if the model is still the 3B default, uses the 7B.
vram:
profile: snappy
warn_mb: 7000
quality_model: qwen2.5:7b-instruct-q4_K_M
whisper:
model_size: small
# auto | cuda | cpu — auto uses CUDA when ctranslate2 sees an NVIDIA GPU
device: auto
language: en
compute_type_cuda: float16
compute_type_cpu: int8
tts:
enabled: true
mute: false
# Cute US female (Amy). Other females: en_US-kristin-medium, en_US-hfc_female-medium
voice: en_US-amy-medium
length_scale: 1.05
piper_dir: models/piper
max_sentence_chars: 280
voices:
- en_US-amy-medium
- en_US-kristin-medium
- en_US-hfc_female-medium
audio:
sample_rate: 16000
mic_device: null # null = system default; override with a device index
mic_device_name: null # re-resolved at startup if the index moves
speaker_device: null
speaker_device_name: null
silence_ms: 800
min_utterance_ms: 350
energy_threshold: 0.012 # RMS; raise if it false-triggers
max_utterance_seconds: 20
# Optional per-app session ducking. Off by default. On Windows, pycaw lowers matching
# app sessions while Pixel talks. Pixel's own process is never ducked. An empty
# duck_apps list ducks every other app except duck_skip. Without pycaw, use an OBS sidechain.
duck_enabled: false
duck_gain: 0.25
duck_apps: []
duck_skip:
- obs64.exe
- Discord.exe
# Talk-over stops Pixel. Echo gate ignores speaker bleed unless PTT is held or the level is much louder.
barge_in: true
echo_gate: true
echo_gate_ratio: 2.5
# Local wake word via openwakeword. Off by default, and never the only way to talk.
wake_word: false
wake_models:
- hey_jarvis
wake_threshold: 0.5
chat:
buffer_size: 40
cooldown_seconds: 12
max_replies_per_minute: 8
scan_interval_seconds: 3
mention_boost: true
post_voice_replies_to_chat: true
chat_max_chars: 200
per_user_cooldown_seconds: 20
auto_reconnect: true
min_send_gap_seconds: 1.2
ambient_context_lines: 6
commands:
- "!so"
- "!pixel"
- "!ask"
# !so is also a mod command: viewers are dropped with skip reason "not a mod".
mod_commands:
- "!so"
shoutout_cooldown_seconds: 120
# Pending viewer lines older than this are dropped (streamer lines and commands stay).
max_age_seconds: 45
# First-time chatters get a short typed welcome instead of a spoken reply.
welcome_first_time: true
# Gap between mod !pixel mute/unmute/chill/hype/stop commands.
control_cooldown_seconds: 4
memory:
chat_context_lines: 20
events: 80
viewers: 48
thread_turns: 12
catchphrase_seconds: 600
retention_days: 14
events:
enabled: true
announce_follows: true
follow_batch_seconds: 8
speak: true
post_to_chat: true
# Each of these is off until you turn it on. Missing scopes skip that feed only.
bits: false
channel_points: false
hype_train: false
polls: false
predictions: false
channel_point_rewards:
hydrate: speak
# A reward can also be a mapping. {user} and {input} are filled in, and input is fenced.
# "roast me":
# action: speak
# prompt: "Playfully roast {user} in one line, nothing mean about looks. They wrote: {input}"
# cooldown: 120
overlay:
alert_hold_seconds: 6
safety:
# Pixel strips links from chat posts unless this is true.
allow_links: false
# Named booth presets. POST /api/profile applies one and stores the name in data/booth.json.
profiles:
"Just chatting":
mood: hype
cooldown_seconds: 8
per_user_cooldown_seconds: 12
events.speak: true
post_voice_replies_to_chat: true
max_replies_per_minute: 12
"Focus game":
mood: chill
cooldown_seconds: 30
per_user_cooldown_seconds: 45
events.speak: false
post_voice_replies_to_chat: false
max_replies_per_minute: 3