Repository navigation
Expand file tree
/
Copy pathconfig.example.env
More file actions
64 lines (56 loc) · 3.21 KB
/
Copy pathconfig.example.env
File metadata and controls
64 lines (56 loc) · 3.21 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
# jarvis configuration. Copy to ~/.config/jarvis/config.env and edit.
# Plain KEY=value, no shell expansion, no quotes needed.
# --- what a trigger does ----------------------------------------------------
# Required. Runs through sh, so pipes, && and $VARS all work.
# JARVIS_TRIGGER is set to "clap" or "voice" in its environment, so one command
# can branch on how it was called.
JARVIS_ACTION=notify-send "jarvis" "triggered by $JARVIS_TRIGGER"
# Optional. Exit status 0 means "already running, ignore this trigger".
# Hyprland example - skip if a window whose title starts with "dev-" is open:
# JARVIS_GUARD=hyprctl clients | grep -q 'initialTitle: dev-'
# Plain process example:
# JARVIS_GUARD=pgrep -x my-app
JARVIS_GUARD=
# --- wake phrase ------------------------------------------------------------
# Lowercase, no punctuation - it is compared against a stripped transcript.
JARVIS_PHRASE=wake up daddys home
# Fuzzy match threshold. Small models mishear words, so exact matching fails.
# Lower = easier to trigger and more false positives. 0.6-0.75 is the useful range.
JARVIS_MATCH=0.65
# --- spoken acknowledgement -------------------------------------------------
# Rendered once with `jarvis --say "..."`, then just played back on each trigger.
# With no wav present this falls back to a desktop notification.
JARVIS_GREETING=Welcome home sir
#JARVIS_GREET_WAV=~/.local/share/jarvis/greeting.wav
#JARVIS_TTS_VOICE=en_GB-alan-medium
# --- speech to text ---------------------------------------------------------
# Any command that prints the transcript as the last line of stdout.
# {wav} and {model} are substituted and shell-quoted.
JARVIS_STT_CMD=whisper-cli --model {model} --file {wav} --no-timestamps --language en
JARVIS_STT_MODEL=~/.local/share/jarvis/ggml-tiny.en.bin
# voxtype instead:
# JARVIS_STT_CMD=voxtype -q --model tiny.en --language en transcribe {wav}
# Leave the engine uninstalled and claps still work; the wake phrase turns off.
# --- calibration (run `jarvis --doctor` to get numbers for your mic) ---------
JARVIS_CLAP_MIN_PEAK=7000
JARVIS_CLAP_RATIO=6
JARVIS_VOICE_MIN_PEAK=3000
# Pin the capture device instead of following the default source, which some
# systems flip to a silent virtual input. `pw-record --list-targets` for names.
# Applies to the default Linux recorder below; on other platforms name the
# device inside JARVIS_REC_CMD instead.
#JARVIS_MIC=alsa_input.pci-0000_00_1f.3.analog-stereo
# --- audio tools (defaults are Linux/PipeWire) ------------------------------
# The recorder must write raw signed 16-bit mono PCM at 16000 Hz to stdout.
# The player must play {wav} and exit.
#JARVIS_REC_CMD=pw-record --rate 16000 --channels 1 --format s16 -
#JARVIS_PLAY_CMD=pw-play {wav}
#
# macOS (brew install ffmpeg; ":0" is the device index from
# `ffmpeg -f avfoundation -list_devices true -i ""`):
# JARVIS_REC_CMD=ffmpeg -hide_banner -loglevel error -f avfoundation -i :0 -ac 1 -ar 16000 -f s16le -
# JARVIS_PLAY_CMD=afplay {wav}
#
# Windows (device name from `ffmpeg -list_devices true -f dshow -i dummy`):
# JARVIS_REC_CMD=ffmpeg -hide_banner -loglevel error -f dshow -i audio="Microphone (Realtek(R) Audio)" -ac 1 -ar 16000 -f s16le -
# JARVIS_PLAY_CMD=ffplay -autoexit -nodisp -loglevel error {wav}