Added Numen phrases and vosk german
This commit is contained in:
parent
136a5554a7
commit
2f390cb877
18 changed files with 864 additions and 228 deletions
|
@ -28,15 +28,6 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
# models = mkOption {
|
||||
# type = types.uniq types.listOf types.package;
|
||||
# default = [vosk-model-small-en-us];
|
||||
# example = "[vosk-model-small-en-us]";
|
||||
# description = ''
|
||||
# List of vosk models to be loaded by numen. They can be referred to using the index, eg. model0 or model1.
|
||||
# '';
|
||||
# };
|
||||
|
||||
dotoolPkg = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.kb-one.dotool;
|
||||
|
@ -49,12 +40,7 @@ in
|
|||
|
||||
phrases = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [
|
||||
./phrases/character.phrases
|
||||
./phrases/control.phrases
|
||||
./phrases/environment.phrases
|
||||
./phrases/voice.phrases
|
||||
];
|
||||
default = [ ];
|
||||
description = ''
|
||||
Phrases to be loaded by numen. If empty, the default phrases are used.
|
||||
'';
|
||||
|
@ -70,7 +56,7 @@ in
|
|||
|
||||
dotoolXkbLayout = mkOption {
|
||||
type = types.singleLineStr;
|
||||
default = "de";
|
||||
default = "en";
|
||||
description = ''
|
||||
The XKB keyboard layout that should be used by dotool.
|
||||
'';
|
||||
|
@ -78,7 +64,6 @@ in
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
# System Configuration
|
||||
environment.systemPackages = [
|
||||
cfg.numenPkg
|
||||
|
|
|
@ -1,85 +0,0 @@
|
|||
space: press space
|
||||
yes: press Return
|
||||
tab: press Tab
|
||||
scape: stick off \
|
||||
press Escape
|
||||
|
||||
# Enable a modifier for the next press
|
||||
# (The Super modifier is also known as the "Windows key")
|
||||
shy: mod shift
|
||||
troy: mod ctrl
|
||||
hype: mod alt
|
||||
shock: mod super \
|
||||
stick off
|
||||
# Clear modifiers
|
||||
cleanse: mod clear \
|
||||
caps off \
|
||||
stick off
|
||||
|
||||
# Enable Caps Lock until the end of the sentence or you say "cleanse"
|
||||
shout: caps on
|
||||
<complete>: caps off
|
||||
|
||||
# Start holding down each pressed key, and stop by saying "cleanse"
|
||||
squeeze: run notify-send STICKING & \
|
||||
stick off \
|
||||
stick on
|
||||
|
||||
hack: press BackSpace
|
||||
mince: press BackSpace BackSpace
|
||||
toss: press Delete
|
||||
smite: press Delete Delete
|
||||
raze: press BackSpace BackSpace BackSpace BackSpace
|
||||
# Delete a word (depending on the program)
|
||||
swipe: press ctrl+BackSpace
|
||||
|
||||
left: press Left
|
||||
right: press Right
|
||||
up: press Up
|
||||
down: press Down
|
||||
lunge: press Left Left
|
||||
rush: press Right Right
|
||||
leave: press Left Left Left Left
|
||||
charge: press Right Right Right Right
|
||||
|
||||
# I use these to navigate words and to complete bits of shell autosuggestions
|
||||
stretch: press ctrl+Right
|
||||
wrench: press ctrl+Left
|
||||
|
||||
# PageDown, PageUp, Home, End
|
||||
page: press Next
|
||||
reel: press Prior
|
||||
home: press Home
|
||||
end: press End
|
||||
|
||||
# Paste the clipboard (depending on the program)
|
||||
gluten: stick off \
|
||||
press XF86Paste
|
||||
|
||||
# Repeat the previous press etc.
|
||||
more: repeat 1
|
||||
bunch: repeat 2
|
||||
handful: repeat 4
|
||||
fistful: repeat 8
|
||||
plateful: repeat 12
|
||||
|
||||
frank one: press F1
|
||||
frank two: press F2
|
||||
frank three: press F3
|
||||
frank four: press F4
|
||||
frank five: press F5
|
||||
frank six: press F6
|
||||
frank sept: press F7
|
||||
frank eight: press F8
|
||||
frank nine: press F9
|
||||
frank one newt: press F10
|
||||
frank one one: press F11
|
||||
frank one two: press F12
|
||||
|
||||
# This saves your changes in vi-style programs
|
||||
save: caps off \
|
||||
press Escape colon w Return
|
||||
# This cycles round splits in Vim
|
||||
switch: caps off \
|
||||
press Escape ctrl+w w
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
# I use these for managing application windows but they just simulate keys,
|
||||
# so you'll need to configure your desktop environment, or you can use my
|
||||
# preconfigured desktop environment: https://git.sr.ht/~geb/tiles
|
||||
|
||||
# Navigate to the window in the given direction
|
||||
west: stick off \
|
||||
press super+Left
|
||||
east: stick off \
|
||||
press super+Right
|
||||
north: stick off \
|
||||
press super+Up
|
||||
south: stick off \
|
||||
press super+Down
|
||||
|
||||
# Cycle round the windows
|
||||
cycle: stick off \
|
||||
press super+c
|
||||
recycle: stick off \
|
||||
press super+C
|
||||
|
||||
# Close window
|
||||
exterminate: stick off \
|
||||
press super+q
|
||||
|
||||
# Toggle fullscreen
|
||||
screen: stick off \
|
||||
press super+f
|
||||
|
||||
|
||||
|
||||
# These two are just for --gadget mode.
|
||||
|
||||
# Switch to controlling the gadget
|
||||
@gadget shock gadget: handler uinput
|
||||
# Switch to controlling the host machine
|
||||
@gadget shock host: handler gadget
|
|
@ -1,67 +0,0 @@
|
|||
# Cancel sentence
|
||||
# For example, "four down no five down" would just do "five down".
|
||||
@cancel no:
|
||||
|
||||
# Transcribe a sentence
|
||||
# For example, "scribe please type this".
|
||||
@transcribe scribe: set numen_fmt echo normal \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# Transcribe a sentence formatted...
|
||||
|
||||
# With the first letter uppercase
|
||||
@transcribe scrub: set numen_fmt echo sentence \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# With Each First Letter Uppercase
|
||||
@transcribe tight scribe: set numen_fmt echo title \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# with_underscrores_inbetween
|
||||
@transcribe snake: set numen_fmt echo snake \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# with-dashes-inbetween
|
||||
@transcribe dash: set numen_fmt echo dash \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# with.dots.inbetween
|
||||
@transcribe dot scribe: set numen_fmt echo dot \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# with, commas, inbetween
|
||||
@transcribe roh scribe: set numen_fmt echo list \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# with/slashes/inbetween
|
||||
@transcribe path scribe: set numen_fmt echo path \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# allsmashedtogether
|
||||
@transcribe kludge: set numen_fmt echo smash \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# camelCase
|
||||
@transcribe camel: set numen_fmt echo camel \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# PascalCase
|
||||
@transcribe pascal: set numen_fmt echo pascal \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# dot.camelCase
|
||||
@transcribe dot camel: set numen_fmt echo dotcamel \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# dot.PascalCase
|
||||
@transcribe dot pascal: set numen_fmt echo dotpascal \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
# (You can also do "shout scribe" etc.)
|
||||
|
||||
# Erase the transcription
|
||||
ditch: eval /etc/numen/scripts/transcripts | sed 's/./ BackSpace/g; s/^/press/; q'
|
||||
|
||||
# Go to the start of the transcription
|
||||
trudge: eval /etc/numen/scripts/transcripts | sed 's/./ Left/g; s/^/press/; q'
|
||||
|
||||
# Menus to type or choose another transcription result
|
||||
# They use the dmenu command (only works in X11) or the command specified
|
||||
# by $NUMEN_DMENU or $DMENU (you could use wmenu if you're on Wayland).
|
||||
transcripts: run /etc/numen/scripts/menu | numenc & \
|
||||
run sleep 0.1
|
||||
change: run /etc/numen/scripts/menu change | numenc & \
|
||||
run sleep 0.1
|
||||
|
||||
|
||||
# Ignore this, vosk-model-small-en-us-0.15 can output huh after a long silence.
|
||||
huh:
|
||||
|
58
packages/numen-phrases/default.nix
Normal file
58
packages/numen-phrases/default.nix
Normal file
|
@ -0,0 +1,58 @@
|
|||
{
|
||||
stdenv,
|
||||
lib,
|
||||
pkgs,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "numen-phrases";
|
||||
version = "0.1.0";
|
||||
|
||||
src = ./phrases;
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mkdir $out/phrases
|
||||
mkdir $out/phrases/en-active
|
||||
mkdir $out/phrases/de-active
|
||||
mkdir $out/phrases/en-inactive
|
||||
mkdir $out/phrases/de-inactive
|
||||
|
||||
install -Dm644 en-active/* -t "$out/phrases/en-active"
|
||||
install -Dm644 de-active/* -t "$out/phrases/de-active"
|
||||
install -Dm644 en-inactive/* -t "$out/phrases/en-inactive"
|
||||
install -Dm644 de-inactive/* -t "$out/phrases/de-inactive"
|
||||
|
||||
sed -i "s:/etc/numen/phrases:${placeholder "out"}/phrases:g" \
|
||||
$out/phrases/en-active/* \
|
||||
$out/phrases/de-active/* \
|
||||
$out/phrases/en-inactive/* \
|
||||
$out/phrases/de-inactive/*
|
||||
sed -i "s:/etc/numen/scripts:${pkgs.kb-one.numen}/scripts:g" \
|
||||
$out/phrases/en-active/* \
|
||||
$out/phrases/de-active/* \
|
||||
$out/phrases/en-inactive/* \
|
||||
$out/phrases/de-inactive/*
|
||||
sed -i "s:/etc/numen/bin:${pkgs.kb-one.numen}/bin:g" \
|
||||
$out/phrases/en-active/* \
|
||||
$out/phrases/de-active/* \
|
||||
$out/phrases/en-inactive/* \
|
||||
$out/phrases/de-inactive/*
|
||||
sed -i "s:notify-send:${pkgs.libnotify}/bin/notify-send:g" \
|
||||
$out/phrases/en-active/* \
|
||||
$out/phrases/de-active/* \
|
||||
$out/phrases/en-inactive/* \
|
||||
$out/phrases/de-inactive/*
|
||||
sed -i "s:pkill:${pkgs.procps}/bin/pkill:g" \
|
||||
$out/phrases/en-active/* \
|
||||
$out/phrases/de-active/* \
|
||||
$out/phrases/en-inactive/* \
|
||||
$out/phrases/de-inactive/*
|
||||
sed -i "s:/usr/share/vosk-models/small-en-us:${pkgs.kb-one.vosk-model-small-en-us}/usr/share/vosk-models/small-en-us:g" \
|
||||
$out/phrases/de-active/*
|
||||
sed -i "s:/usr/share/vosk-models/small-de:${pkgs.kb-one.vosk-model-small-de}/usr/share/vosk-models/small-de:g" \
|
||||
$out/phrases/en-active/*
|
||||
|
||||
|
||||
'';
|
||||
}
|
90
packages/numen-phrases/phrases/de-active/base.phrases
Normal file
90
packages/numen-phrases/phrases/de-active/base.phrases
Normal file
|
@ -0,0 +1,90 @@
|
|||
|
||||
# Letter
|
||||
auto: press a
|
||||
ball: press b
|
||||
cello: press c
|
||||
dach: press d
|
||||
eis: press e
|
||||
fisch: press f
|
||||
glück: press g
|
||||
haus: press h
|
||||
insel: press i
|
||||
jahr: press j
|
||||
kuss: press k
|
||||
licht: press l
|
||||
mond: press m
|
||||
nacht: press n
|
||||
oma: press o
|
||||
pferd: press p
|
||||
quiz: press q
|
||||
rad: press r
|
||||
soll: press s
|
||||
tisch: press t
|
||||
um: press u
|
||||
v: press v
|
||||
wer: press w
|
||||
mix: press x
|
||||
yoga: press y
|
||||
zug: press z
|
||||
|
||||
# Number
|
||||
null: press 0
|
||||
eins: press 1
|
||||
zwei: press 2
|
||||
drei: press 3
|
||||
vier: press 4
|
||||
fünf: press 5
|
||||
sechs: press 6
|
||||
sieb: press 7
|
||||
acht: press 8
|
||||
neun: press 9
|
||||
|
||||
# Symbol
|
||||
schrei: press exclam
|
||||
frag: press question
|
||||
dollar: press dollar
|
||||
## TODO € euro: press euro
|
||||
mail: press at
|
||||
und: press ampersand
|
||||
sag: press quotedbl
|
||||
ast: press apostrophe
|
||||
zweig: press grave
|
||||
hut: press asciicircum
|
||||
## TODO ° grad: press
|
||||
stop: press comma
|
||||
steh: press period
|
||||
halt: press semicolon
|
||||
kommt: press colon
|
||||
mit: press plus
|
||||
ohne: press minus
|
||||
stern: press asterisk
|
||||
roh: press numbersign
|
||||
teil: press percent
|
||||
gleich: press equal
|
||||
toll: press asciitilde
|
||||
schwer: press slash
|
||||
wert: press backslash
|
||||
wand: press bar
|
||||
flur: press underscore
|
||||
auf: press parenleft
|
||||
zu: press parenright
|
||||
an: press bracketleft
|
||||
aus: press bracketright
|
||||
berg: press braceleft
|
||||
tal: press braceright
|
||||
klein: press less
|
||||
groß: press greater
|
||||
|
||||
# Function Keys
|
||||
funk eins: press F1
|
||||
funk zwei: press F2
|
||||
funk drei: press F3
|
||||
funk vier: press F4
|
||||
funk fünf: press F5
|
||||
funk sechs: press F6
|
||||
funk sieb: press F7
|
||||
funk acht: press F8
|
||||
funk neun: press F9
|
||||
funk eins null: press F10
|
||||
funk eins eins: press F11
|
||||
funk eins zwei: press F12
|
51
packages/numen-phrases/phrases/de-active/extend.phrases
Normal file
51
packages/numen-phrases/phrases/de-active/extend.phrases
Normal file
|
@ -0,0 +1,51 @@
|
|||
|
||||
# -----------------
|
||||
# Extend
|
||||
# -----------------
|
||||
|
||||
leer: press space
|
||||
ja: press Return
|
||||
schieb: press Tab
|
||||
geh: stick off \
|
||||
press Escape
|
||||
super: press Scroll_Lock
|
||||
sonder: press Super_L
|
||||
|
||||
links: press Left
|
||||
rechts: press Right
|
||||
hoch: press Up
|
||||
runter: press Down
|
||||
lauf: press Left Left
|
||||
renn: press Right Right
|
||||
lange: press Left Left Left Left
|
||||
runde: press Right Right Right Right
|
||||
zieh: press ctrl+Left
|
||||
streck: press ctrl+Right
|
||||
|
||||
himmel: press Prior
|
||||
hölle: press Next
|
||||
heim: press Home
|
||||
ende: press End
|
||||
|
||||
# Delete
|
||||
werf: press Delete
|
||||
wirf: press Delete Delete
|
||||
weg: press BackSpace
|
||||
weit: press BackSpace BackSpace
|
||||
fern: press BackSpace BackSpace BackSpace BackSpace
|
||||
fremd: press ctrl+BackSpace
|
||||
|
||||
# Repeat
|
||||
mehr: repeat 1
|
||||
paar: repeat 2
|
||||
oft: repeat 4
|
||||
viel: repeat 8
|
||||
ganz viel: repeat 12
|
||||
|
||||
# GUI Action
|
||||
# TODO Cut
|
||||
# TODO Copy
|
||||
platz: stick off \
|
||||
press XF86Paste
|
||||
# TODO Save
|
||||
|
88
packages/numen-phrases/phrases/de-active/function.phrases
Normal file
88
packages/numen-phrases/phrases/de-active/function.phrases
Normal file
|
@ -0,0 +1,88 @@
|
|||
|
||||
# -----------------
|
||||
# Modifier & Modes
|
||||
# -----------------
|
||||
|
||||
# Modifier
|
||||
schau: mod shift
|
||||
mein: mod ctrl
|
||||
geil: mod alt
|
||||
sau: mod super \
|
||||
stick off
|
||||
|
||||
# Mode
|
||||
laut: caps on
|
||||
#<complete>: caps off
|
||||
|
||||
zusammen: run notify-send --expire-time=3000 --urgency=low --icon=🧩 "🧩 Sticky Mode" & \
|
||||
stick off \
|
||||
stick on
|
||||
|
||||
# Cancel
|
||||
sauber: mod clear \
|
||||
caps off \
|
||||
stick off
|
||||
# Cancel sentence
|
||||
@cancel nein:
|
||||
|
||||
|
||||
# -----------------
|
||||
# Desktop
|
||||
# -----------------
|
||||
|
||||
# KDE Window
|
||||
west: stick off \
|
||||
press super+Left
|
||||
ost: stick off \
|
||||
press super+Right
|
||||
nord: stick off \
|
||||
press super+Up
|
||||
süd: stick off \
|
||||
press super+Down
|
||||
schirm: stick off \
|
||||
press super+Prior
|
||||
#???: stick off \
|
||||
# press super+Next
|
||||
zerstören: stick off \
|
||||
press alt+f4
|
||||
|
||||
# KDE Taskbar
|
||||
#sau eins: press super+1
|
||||
#sau zwei: press super+2
|
||||
#sau drei: press super+3
|
||||
|
||||
# KDE Workspace
|
||||
sicht: stick off \
|
||||
press super+w
|
||||
#mein funk eins: press ctrl+f1
|
||||
#mein funk zwei: press ctrl+f2
|
||||
#mein funk drei: press ctrl+f3
|
||||
|
||||
|
||||
# -----------------
|
||||
# Switching
|
||||
# -----------------
|
||||
|
||||
# Sleep https://lists.sr.ht/~geb/numen/%3C55fe1488feeb1cee2627d61b9b7e16a74ef5fca0.camel@dalibo.com%3E
|
||||
schlaf gut: run echo load /etc/numen/phrases/de-inactive/hibernate.phrases | /etc/numen/bin/numenc & notify-send --expire-time=3000 --urgency=low --icon=💤 "💤 Numen geht schlafen..."
|
||||
|
||||
# Language
|
||||
sprache: set LANGUAGE_WORD echo 1
|
||||
englisch: run [ "LANGUAGE_WORD" ] && { sleep .3; NUMEN_MODEL=/usr/share/vosk-models/small-en-us /etc/numen/bin/numen /etc/numen/phrases/en-active/base.phrases /etc/numen/phrases/en-active/extend.phrases /etc/numen/phrases/en-active/function.phrases /etc/numen/phrases/en-active/transcribe.phrases; } & pkill numen & notify-send --expire-time=3000 --urgency=low --icon=🌍 "🌍 Numen wechselt zu Englisch..."
|
||||
|
||||
# Reset Language Module Detection
|
||||
<complete>: caps off \
|
||||
set LANGUAGE_WORD
|
||||
|
||||
|
||||
|
||||
|
||||
# Activate Language Module
|
||||
#sprache: set LANGUAGE_WORD echo 1
|
||||
|
||||
# Commands
|
||||
#englisch: run [ "LANGUAGE_WORD" ] && { sleep .3; NUMEN_MODEL=/usr/share/vosk-models/small-en-us /etc/numen/bin/numen /etc/numen/phrases/en-active/voice.phrases /etc/numen/phrases/en-active/environment.phrases /etc/numen/phrases/en-active/control.phrases /etc/numen/phrases/en-active/character.phrases /etc/numen/phrases/en-active/language.phrases; } & pkill numen & notify-send -t 3000 -p -r ${NUMENMODE_NID:-0} -u low -i 🌍 "🌍 Switched to English" ||:
|
||||
|
||||
# Reset Language Module Detection
|
||||
#<complete>: set LANGUAGE_WORD :
|
||||
|
65
packages/numen-phrases/phrases/de-active/transcribe.phrases
Normal file
65
packages/numen-phrases/phrases/de-active/transcribe.phrases
Normal file
|
@ -0,0 +1,65 @@
|
|||
|
||||
# -----------------
|
||||
# Transcribe
|
||||
# -----------------
|
||||
|
||||
# Transcribe
|
||||
@transcribe schreib: set numen_fmt echo normal \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# Erase Transcription
|
||||
tritt: eval /etc/numen/scripts/transcripts | sed 's/./ BackSpace/g; s/^/press/; q'
|
||||
|
||||
# Cursor to Start
|
||||
start: eval /etc/numen/scripts/transcripts | sed 's/./ Left/g; s/^/press/; q'
|
||||
|
||||
|
||||
# -----------------
|
||||
# Transcription Modes
|
||||
# -----------------
|
||||
|
||||
# First letter uppercase
|
||||
@transcribe satz: set numen_fmt echo sentence \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# All Words Uppercase
|
||||
@transcribe oben: set numen_fmt echo title \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# with_snake_inbetween
|
||||
@transcribe schlange: set numen_fmt echo snake \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# with-dashes-inbetween
|
||||
@transcribe strich: set numen_fmt echo dash \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# with.dots.inbetween
|
||||
@transcribe punkt: set numen_fmt echo dot \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# as, list, items
|
||||
@transcribe auf list: set numen_fmt echo list \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# in/path/format
|
||||
@transcribe pfad: set numen_fmt echo path \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# allsmashedtogether
|
||||
@transcribe eng: set numen_fmt echo smash \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# inCamelCase
|
||||
@transcribe kamel: set numen_fmt echo camel \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# InPascalCase
|
||||
@transcribe paste: set numen_fmt echo pascal \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# ALL IN CAPS
|
||||
# laut schreib
|
||||
|
||||
# Ignore this, vosk-model-small-de-0.15 can output hmm after a long silence.
|
||||
hmm:
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
schlaf gut: run notify-send --expire-time=3000 --urgency=low --icon=💤 "💤 Numen schläft schon"
|
||||
|
||||
wach: set WAKEUP_WORD_ONE echo 1
|
||||
jetzt: eval [ "$WAKEUP_WORD_ONE" ] && echo set WAKEUP_WORD_TWO echo 1 ||:
|
||||
auf: run [ "$WAKEUP_WORD_TWO" ] && echo load /etc/numen/phrases/de-active/base.phrases /etc/numen/phrases/de-active/extend.phrases /etc/numen/phrases/de-active/function.phrases /etc/numen/phrases/de-active/transcribe.phrases | /etc/numen/bin/numenc & notify-send --expire-time=3000 --urgency=low --icon=☀️ "☀️ Numen wacht auf..." ||:
|
||||
<complete>: set WAKEUP_WORD_ONE : \
|
||||
set WAKEUP_WORD_TWO :
|
|
@ -1,3 +1,5 @@
|
|||
|
||||
# Letter
|
||||
air: press a
|
||||
bat: press b
|
||||
cap: press c
|
||||
|
@ -25,6 +27,7 @@ plex: press x
|
|||
yank: press y
|
||||
zip: press z
|
||||
|
||||
# Number
|
||||
newt: press 0
|
||||
one: press 1
|
||||
two: press 2
|
||||
|
@ -36,36 +39,52 @@ sept: press 7
|
|||
eight: press 8
|
||||
nine: press 9
|
||||
|
||||
ask: press question
|
||||
plus: press plus
|
||||
mine: press minus
|
||||
tide: press asciitilde
|
||||
# Symbol
|
||||
yell: press exclam
|
||||
ask: press question
|
||||
quid: press dollar
|
||||
score: press underscore
|
||||
clause: press colon
|
||||
same: press semicolon
|
||||
wax: press parenleft
|
||||
wane: press parenright
|
||||
curl: press braceleft
|
||||
crimp: press braceright
|
||||
bric: press bracketleft
|
||||
brac: press bracketright
|
||||
small: press less
|
||||
big: press greater
|
||||
star: press asterisk
|
||||
hash: press numbersign
|
||||
mood: press percent
|
||||
blunt: press asciicircum
|
||||
## TODO € europe: press euro
|
||||
snail: press at
|
||||
gain: press ampersand
|
||||
vert: press bar
|
||||
spoke: press quotedbl
|
||||
mark: press apostrophe
|
||||
tick: press grave
|
||||
slash: press slash
|
||||
slope: press backslash
|
||||
blunt: press asciicircum
|
||||
## TODO ° degree: press
|
||||
list: press comma
|
||||
point: press period
|
||||
same: press semicolon
|
||||
clause: press colon
|
||||
plus: press plus
|
||||
mine: press minus
|
||||
star: press asterisk
|
||||
hash: press numbersign
|
||||
mood: press percent
|
||||
match: press equal
|
||||
tide: press asciitilde
|
||||
slash: press slash
|
||||
slope: press backslash
|
||||
vert: press bar
|
||||
score: press underscore
|
||||
wax: press parenleft
|
||||
wane: press parenright
|
||||
bric: press bracketleft
|
||||
brac: press bracketright
|
||||
curl: press braceleft
|
||||
crimp: press braceright
|
||||
small: press less
|
||||
big: press greater
|
||||
|
||||
# Function Keys
|
||||
frank one: press F1
|
||||
frank two: press F2
|
||||
frank three: press F3
|
||||
frank four: press F4
|
||||
frank five: press F5
|
||||
frank six: press F6
|
||||
frank sept: press F7
|
||||
frank eight: press F8
|
||||
frank nine: press F9
|
||||
frank one newt: press F10
|
||||
frank one one: press F11
|
||||
frank one two: press F12
|
51
packages/numen-phrases/phrases/en-active/extend.phrases
Normal file
51
packages/numen-phrases/phrases/en-active/extend.phrases
Normal file
|
@ -0,0 +1,51 @@
|
|||
|
||||
# -----------------
|
||||
# Extend
|
||||
# -----------------
|
||||
|
||||
space: press space
|
||||
yes: press Return
|
||||
tab: press Tab
|
||||
scape: stick off \
|
||||
press Escape
|
||||
smock: press Scroll_Lock
|
||||
super: press Super_L
|
||||
|
||||
left: press Left
|
||||
right: press Right
|
||||
up: press Up
|
||||
down: press Down
|
||||
lunge: press Left Left
|
||||
rush: press Right Right
|
||||
leave: press Left Left Left Left
|
||||
charge: press Right Right Right Right
|
||||
wrench: press ctrl+Left
|
||||
stretch: press ctrl+Right
|
||||
|
||||
reel: press Prior
|
||||
page: press Next
|
||||
home: press Home
|
||||
end: press End
|
||||
|
||||
# Delete
|
||||
toss: press Delete
|
||||
smite: press Delete Delete
|
||||
hack: press BackSpace
|
||||
mince: press BackSpace BackSpace
|
||||
raze: press BackSpace BackSpace BackSpace BackSpace
|
||||
swipe: press ctrl+BackSpace
|
||||
|
||||
# Repeat
|
||||
more: repeat 1
|
||||
bunch: repeat 2
|
||||
handful: repeat 4
|
||||
fistful: repeat 8
|
||||
plateful: repeat 12
|
||||
|
||||
# GUI Action
|
||||
# TODO Cut
|
||||
# TODO Copy
|
||||
gluten: stick off \
|
||||
press XF86Paste
|
||||
# TODO Save
|
||||
|
75
packages/numen-phrases/phrases/en-active/function.phrases
Normal file
75
packages/numen-phrases/phrases/en-active/function.phrases
Normal file
|
@ -0,0 +1,75 @@
|
|||
|
||||
# -----------------
|
||||
# Modifier & Modes
|
||||
# -----------------
|
||||
|
||||
# Modifier
|
||||
shy: mod shift
|
||||
troy: mod ctrl
|
||||
hype: mod alt
|
||||
shock: mod super \
|
||||
stick off
|
||||
|
||||
# Mode
|
||||
shout: caps on
|
||||
#<complete>: caps off
|
||||
|
||||
squeeze: run notify-send --expire-time=3000 --urgency=low --icon=🧩 "🧩 Sticky Mode" & \
|
||||
stick off \
|
||||
stick on
|
||||
|
||||
# Cancel
|
||||
cleanse: mod clear \
|
||||
caps off \
|
||||
stick off
|
||||
# Cancel sentence
|
||||
@cancel no:
|
||||
|
||||
|
||||
# -----------------
|
||||
# Desktop
|
||||
# -----------------
|
||||
|
||||
# KDE Window
|
||||
west: stick off \
|
||||
press super+Left
|
||||
east: stick off \
|
||||
press super+Right
|
||||
north: stick off \
|
||||
press super+Up
|
||||
south: stick off \
|
||||
press super+Down
|
||||
screen: stick off \
|
||||
press super+Prior
|
||||
#???: stick off \
|
||||
# press super+Next
|
||||
exterminate: stick off \
|
||||
press alt+f4
|
||||
|
||||
# KDE Taskbar
|
||||
#shock one: press super+1
|
||||
#shock two: press super+2
|
||||
#shock three: press super+3
|
||||
|
||||
# KDE Workspace
|
||||
view: stick off \
|
||||
press super+w
|
||||
#troy frank one: press ctrl+f1
|
||||
#troy frank two: press ctrl+f2
|
||||
#troy frank three: press ctrl+f3
|
||||
|
||||
|
||||
# -----------------
|
||||
# Switching
|
||||
# -----------------
|
||||
|
||||
# Sleep https://lists.sr.ht/~geb/numen/%3C55fe1488feeb1cee2627d61b9b7e16a74ef5fca0.camel@dalibo.com%3E
|
||||
hibernate: run echo load /etc/numen/phrases/en-inactive/hibernate.phrases | /etc/numen/bin/numenc & notify-send --expire-time=3000 --urgency=low --icon=💤 "💤 Numen goes to sleep..."
|
||||
|
||||
# Language
|
||||
language: set LANGUAGE_WORD echo 1
|
||||
german: run [ "LANGUAGE_WORD" ] && { sleep .3; NUMEN_MODEL=/usr/share/vosk-models/small-de /etc/numen/bin/numen /etc/numen/phrases/de-active/base.phrases /etc/numen/phrases/de-active/extend.phrases /etc/numen/phrases/de-active/function.phrases /etc/numen/phrases/de-active/transcribe.phrases; } & pkill numen & notify-send --expire-time=3000 --urgency=low --icon=🌍 "🌍 Numen switches to German..."
|
||||
|
||||
# Reset Language Module Detection
|
||||
<complete>: caps off \
|
||||
set LANGUAGE_WORD
|
65
packages/numen-phrases/phrases/en-active/transcribe.phrases
Normal file
65
packages/numen-phrases/phrases/en-active/transcribe.phrases
Normal file
|
@ -0,0 +1,65 @@
|
|||
|
||||
# -----------------
|
||||
# Transcribe
|
||||
# -----------------
|
||||
|
||||
# Transcribe
|
||||
@transcribe scribe: set numen_fmt echo normal \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# Erase Transcription
|
||||
ditch: eval /etc/numen/scripts/transcripts | sed 's/./ BackSpace/g; s/^/press/; q'
|
||||
|
||||
# Cursor to Start
|
||||
trudge: eval /etc/numen/scripts/transcripts | sed 's/./ Left/g; s/^/press/; q'
|
||||
|
||||
|
||||
# -----------------
|
||||
# Transcription Modes
|
||||
# -----------------
|
||||
|
||||
# First letter uppercase
|
||||
@transcribe scrub: set numen_fmt echo sentence \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# All Words Uppercase
|
||||
@transcribe tight scribe: set numen_fmt echo title \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# with_snake_inbetween
|
||||
@transcribe snake: set numen_fmt echo snake \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# with-dashes-inbetween
|
||||
@transcribe dash: set numen_fmt echo dash \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# with.dots.inbetween
|
||||
@transcribe dot scribe: set numen_fmt echo dot \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# as, list, items
|
||||
@transcribe roh scribe: set numen_fmt echo list \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# in/path/format
|
||||
@transcribe path scribe: set numen_fmt echo path \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# allsmashedtogether
|
||||
@transcribe kludge: set numen_fmt echo smash \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# inCamelCase
|
||||
@transcribe camel: set numen_fmt echo camel \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# InPascalCase
|
||||
@transcribe pascal: set numen_fmt echo pascal \
|
||||
pen /etc/numen/scripts/tweak; /etc/numen/scripts/transcripts | head -n 1
|
||||
|
||||
# ALL IN CAPS
|
||||
# shout scribe
|
||||
|
||||
# Ignore this, vosk-model-small-en-us-0.15 can output huh after a long silence.
|
||||
huh:
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
# Sleep
|
||||
hibernate: run notify-send --expire-time=3000 --urgency=low --icon=💤 "💤 Numen is allready asleep"
|
||||
|
||||
wake: set WAKEUP_WORD_ONE echo 1
|
||||
up: eval [ "$WAKEUP_WORD_ONE" ] && echo set WAKEUP_WORD_TWO echo 1 ||:
|
||||
now: run [ "$WAKEUP_WORD_TWO" ] && echo load /etc/numen/phrases/en-active/base.phrases /etc/numen/phrases/en-active/extend.phrases /etc/numen/phrases/en-active/function.phrases /etc/numen/phrases/en-active/transcribe.phrases | /etc/numen/bin/numenc & notify-send --expire-time=3000 --urgency=low --icon=☀️ "☀️ Numen is waking up..." ||:
|
||||
<complete>: set WAKEUP_WORD_ONE : \
|
||||
set WAKEUP_WORD_TWO :
|
246
packages/numen-phrases/phrases/phrases.md
Normal file
246
packages/numen-phrases/phrases/phrases.md
Normal file
|
@ -0,0 +1,246 @@
|
|||
# Phrases Documentation
|
||||
|
||||
## Base
|
||||
|
||||
### Letter
|
||||
|
||||
| Letter | Phrase en | Phrase de |
|
||||
| ------ | --------- | --------- |
|
||||
| a | air | auto |
|
||||
| b | bat | ball |
|
||||
| c | cap | cello |
|
||||
| d | drum | dach |
|
||||
| e | each | eis |
|
||||
| f | fig | fisch |
|
||||
| g | gust | glück |
|
||||
| h | hoof | haus |
|
||||
| i | ice | insel |
|
||||
| j | jive | jahr |
|
||||
| k | kid | kuss |
|
||||
| l | link | licht |
|
||||
| m | made | mond |
|
||||
| n | nerd | nacht |
|
||||
| o | odd | oma |
|
||||
| p | pit | pferd |
|
||||
| q | quench | quiz |
|
||||
| r | red | rad |
|
||||
| s | sun | soll |
|
||||
| t | trap | tisch |
|
||||
| u | urge | um |
|
||||
| v | void | v |
|
||||
| w | whiz | wald |
|
||||
| x | plex | mix |
|
||||
| y | yank | yoga |
|
||||
| z | zip | zug |
|
||||
| ä | | |
|
||||
| ö | | |
|
||||
| ü | | |
|
||||
| ß | | |
|
||||
|
||||
### Number
|
||||
|
||||
| Number | Phrase en | Phrase de |
|
||||
| ------ | --------- | --------- |
|
||||
| 0 | newt | null |
|
||||
| 1 | one | eins |
|
||||
| 2 | two | zwei |
|
||||
| 3 | three | drei |
|
||||
| 4 | four | vier |
|
||||
| 5 | five | fünf |
|
||||
| 6 | six | sechs |
|
||||
| 7 | sept | sieb |
|
||||
| 8 | eight | acht |
|
||||
| 9 | nine | neun |
|
||||
|
||||
### Symbol
|
||||
|
||||
| Symbol | Phrase en | Phrase de |
|
||||
| ------ | --------- | --------- |
|
||||
| ! | yell | schrei |
|
||||
| ? | ask | frag |
|
||||
| $ | quid | dollar |
|
||||
| € todo | europe | euro |
|
||||
| @ | snail | mail |
|
||||
| & | gain | und |
|
||||
| " | spoke | sag |
|
||||
| ' | mark | ast |
|
||||
| ` | tick | zweig |
|
||||
| ^ | blunt | hut |
|
||||
| ° todo | degree | grad |
|
||||
| , | list | stop |
|
||||
| . | point | steh |
|
||||
| ; | same | halt |
|
||||
| : | clause | kommt |
|
||||
| + | plus | mit |
|
||||
| - | mine | ohne |
|
||||
| * | star | stern |
|
||||
| # | hash | roh |
|
||||
| % | mood | teil |
|
||||
| = | match | gleich |
|
||||
| ~ | tide | toll |
|
||||
| / | slash | schwer |
|
||||
| \ | slope | wert |
|
||||
| \| | vert | wand |
|
||||
| _ | score | flur |
|
||||
| ( | wax | auf |
|
||||
| ) | wane | zu |
|
||||
| [ | bric | an |
|
||||
| ] | brac | aus |
|
||||
| { | curl | berg |
|
||||
| } | crip | tal |
|
||||
| < | small | klein |
|
||||
| > | big | groß |
|
||||
|
||||
### Function Keys
|
||||
|
||||
| Key | Phrase en | Phrase de |
|
||||
| ---- | -------------- | -------------- |
|
||||
| F1 | frank one | funk eins |
|
||||
| F2 | frank two | funk zwei |
|
||||
| F3 | frank three | funk drei |
|
||||
| F4 | frank four | funk vier |
|
||||
| F5 | frank five | funk fünf |
|
||||
| F6 | frank six | funk sechs |
|
||||
| F7 | frank sept | funk sieb |
|
||||
| F8 | frank eight | funk acht |
|
||||
| F9 | frank nine | funk neun |
|
||||
| F10 | frank one newt | funk eins null |
|
||||
| F11 | frank one one | funk eins eins |
|
||||
| F12 | frank one two | funk eins zwei |
|
||||
|
||||
|
||||
## Extend
|
||||
|
||||
| Extend | Phrase en | Phrase de |
|
||||
| ------------ | --------- | --------- |
|
||||
| Space | space | leer |
|
||||
| Enter | yes | ja |
|
||||
| Tab | tab | schieb |
|
||||
| Esc | scape | geh |
|
||||
| Super Key | super | super |
|
||||
| Compose | smock | sonder |
|
||||
| | | |
|
||||
| Left | left | links |
|
||||
| Right | right | rechts |
|
||||
| Up | up | hoch |
|
||||
| Down | down | runter |
|
||||
| 2x Left | lunge | lauf |
|
||||
| 2x Right | rush | renn |
|
||||
| 4x Left | leave | lange |
|
||||
| 4x Right | charge | runde |
|
||||
| Ctrl + Left | wrench | zieh |
|
||||
| Ctrl + Right | stretch | streck |
|
||||
| | | |
|
||||
| Page Up | reel | himmel |
|
||||
| Page Down | page | hölle |
|
||||
| Home | home | heim |
|
||||
| End | end | ende |
|
||||
|
||||
| Delete | Phrase en | Phrase de |
|
||||
| ---------------- | --------- | --------- |
|
||||
| Delete | toss | werf |
|
||||
| Delete x 2 | smite | wirf |
|
||||
| Backspace | hack | weg |
|
||||
| Backspace x 2 | mince | weit |
|
||||
| Backspace x 4 | raze | fern |
|
||||
| Ctrl + Backspace | swipe | fremd |
|
||||
|
||||
| Repeat | Phrase en | Phrase de |
|
||||
| ------ | --------- | --------- |
|
||||
| + 1x | more | mehr |
|
||||
| + 2x | bunch | paar |
|
||||
| + 4x | handful | oft |
|
||||
| + 8x | fistful | viel |
|
||||
| + 12x | plateful | ganz viel |
|
||||
|
||||
| GUI Action | Phrase en | Phrase de |
|
||||
| ---------- | --------- | --------- |
|
||||
| Cut | | |
|
||||
| Copy | | |
|
||||
| Paste | gluten | platz |
|
||||
| Save | | |
|
||||
|
||||
|
||||
## Function
|
||||
|
||||
### Modifier & Modes
|
||||
|
||||
Works until end of Scentence or Cancel Keyword
|
||||
|
||||
| Modifier | Phrase en | Phrase de |
|
||||
| -------- | --------- | --------- |
|
||||
| Shift | shy | schau |
|
||||
| Control | troy | mein |
|
||||
| Alt | hype | geil |
|
||||
| Super | shock | sau |
|
||||
|
||||
| Mode | Phrase en | Phrase de |
|
||||
| --------- | --------- | --------- |
|
||||
| Capslock | shout | laut |
|
||||
| Hold Keys | squeeze | zusammen |
|
||||
|
||||
| Cancel | Phrase en | Phrase de |
|
||||
| --------------- | --------- | --------- |
|
||||
| Cancel | cleanse | sauber |
|
||||
| Cancel sentence | no | nein |
|
||||
|
||||
### Desktop
|
||||
|
||||
| KDE Window | Phrase en | Phrase de |
|
||||
| ----------- | ---------------- | --------- |
|
||||
| Tile Left | west | west |
|
||||
| Tile Right | east | ost |
|
||||
| Tile Up | north | nord |
|
||||
| Tile Down | south | süd |
|
||||
| Maximize | screen | schirm |
|
||||
| Minimize | | |
|
||||
| Close | exterminate | zerstören |
|
||||
|
||||
| KDE Taskbar | Phrase en | Phrase de |
|
||||
| ----------- | ---------------- | --------- |
|
||||
| Window 1 | shock one | sau eins |
|
||||
| Window 2 | shock two | sau zwei |
|
||||
| Window 2 | shock three | sau drei |
|
||||
|
||||
| KDE Workspace | Phrase en | Phrase de |
|
||||
| ------------- | ---------------- | -------------- |
|
||||
| Overview | view | sicht |
|
||||
| Workspace 1 | troy frank one | mein funk eins |
|
||||
| Workspace 2 | troy frank two | mein funk zwei |
|
||||
| Workspace 3 | troy frank three | mein funk drei |
|
||||
|
||||
### Switching
|
||||
|
||||
| Sleep | Phrase en | Phrase de |
|
||||
| --------- | ----------- | -------------- |
|
||||
| Numen off | hibernate | schlaf gut |
|
||||
| Numen on | wake up now | wach jetzt auf |
|
||||
|
||||
| Langauge | Phrase en | Phrase de |
|
||||
| --------- | --------------- | ---------------- |
|
||||
| german | language german | |
|
||||
| english | | sprache englisch |
|
||||
|
||||
|
||||
## Transcribe
|
||||
|
||||
| Transcribe | Phrase en | Phrase de |
|
||||
| ------------------- | --------- | --------- |
|
||||
| Transcribe | scribe | schreib |
|
||||
| Erase Transcription | ditch | tritt |
|
||||
| Cursor to Start | trudge | start |
|
||||
|
||||
| Transcription Modes | Phrase en | Phrase de |
|
||||
| ---------------------- | ------------ | -------------- |
|
||||
| First letter uppercase | scrub | satz |
|
||||
| All Words Uppercase | tight scribe | oben |
|
||||
| with_snake_inbetween | snake | schlange |
|
||||
| with-dashes-inbetween | dash | strich |
|
||||
| with.dots.inbetween | dot scribe | punkt |
|
||||
| as, list, items | roh scribe | auf list |
|
||||
| in/path/format | path scribe | pfad |
|
||||
| allsmashedtogether | kludge | eng |
|
||||
| inCamelCase | camel | kamel |
|
||||
| InPascalCase | pascal | paste |
|
||||
| ALL IN CAPS | shout scribe | laut schreib |
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{ stdenv, fetchurl, unzip }:
|
||||
# Source: https://github.com/Lykos153/numen-nix
|
||||
stdenv.mkDerivation {
|
||||
name = "vosk-model-small-en-us";
|
||||
name = "vosk-model-small-de";
|
||||
version = "0.15";
|
||||
src = fetchurl {
|
||||
url = "https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip";
|
||||
|
@ -15,3 +15,4 @@ stdenv.mkDerivation {
|
|||
cp -r . $out/usr/share/vosk-models/small-de
|
||||
'';
|
||||
}
|
||||
|
||||
|
|
|
@ -126,6 +126,16 @@
|
|||
# Tailscale
|
||||
services.tailscale.enable = true;
|
||||
|
||||
services.numen = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
phrases = [
|
||||
"${pkgs.kb-one.numen-phrases}/phrases/en-inactive/hibernate.phrases"
|
||||
];
|
||||
dotoolXkbLayout = "de";
|
||||
};
|
||||
|
||||
|
||||
# Packages installed in system profile. Search Packages: $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
|
@ -137,8 +147,11 @@
|
|||
python3
|
||||
sops
|
||||
kb-one.numen
|
||||
kb-one.numen-phrases
|
||||
libnotify
|
||||
kb-one.dotool
|
||||
kb-one.vosk-model-small-en-us
|
||||
kb-one.vosk-model-small-de
|
||||
];
|
||||
|
||||
system.stateVersion = "24.11"; # NEVER Change this!
|
||||
|
|
Loading…
Add table
Reference in a new issue